AppsFlyer analytics gives mobile marketers the tools to measure user acquisition, track in-app events, and calculate lifetime value across 2,900 subscription apps and 1.7 billion paid installs. But most teams only use a fraction of AppsFlyer's capabilities—and the data stays isolated in the platform instead of flowing into dashboards where it can inform budget decisions.
This guide walks performance marketing managers through every layer of AppsFlyer analytics: from setting up attribution links to building custom cohort reports to connecting AppsFlyer data with your broader marketing warehouse. You'll learn which metrics matter most, how to avoid common measurement mistakes, and how to operationalize AppsFlyer insights across your team.
✓ How to configure AppsFlyer attribution for accurate iOS and Android tracking
✓ Key metrics to monitor in AppsFlyer dashboards (install-to-event rate, LTV, ROAS by channel)
✓ How to build custom cohort reports that reveal which channels drive retention
✓ Steps to export AppsFlyer data to your data warehouse for cross-platform analysis
✓ Common AppsFlyer analytics mistakes and how to prevent them
✓ Tools that automate AppsFlyer reporting and connect it with your marketing stack
What Is AppsFlyer Analytics and Why It Matters
AppsFlyer is a mobile attribution and analytics platform that tracks how users discover your app, what they do after installing, and how much revenue they generate over time. It works by assigning unique tracking links to each marketing channel—Google Ads, Meta, TikTok, influencer partnerships—and recording which link each user clicked before installing.
Once a user installs, AppsFlyer tracks in-app events: purchases, sign-ups, level completions, subscriptions. These events feed into cohort reports, LTV calculations, and ROAS dashboards. For performance marketers managing six-figure monthly budgets across a dozen channels, AppsFlyer analytics is the system of record for mobile campaign performance.
The challenge: AppsFlyer is powerful but complex. Teams often set up basic install tracking, then never graduate to event-level analysis or LTV modeling. Data stays locked in AppsFlyer's UI, disconnected from CRM data, ad spend tables, and revenue dashboards. Marketing leaders end up making budget decisions with incomplete visibility.
Step 1: Set Up Attribution Links for Each Channel
Attribution starts with OneLink—AppsFlyer's universal deep linking technology. A OneLink URL contains parameters that tell AppsFlyer which campaign, ad set, and creative generated each install. You create one OneLink template, then append campaign-specific parameters for each channel.
Create Your OneLink Template
In the AppsFlyer dashboard, navigate to Integrated Partners > OneLink. Click Create New Link and name your template (e.g., "UA_Campaigns_2026"). AppsFlyer generates a base URL like yourapp.onelink.me/AbCd.
This template is your foundation. Every campaign link will start with this URL and add parameters to identify the traffic source.
Add Campaign Parameters
AppsFlyer reads standard UTM parameters plus its own macros. For a Facebook campaign, your link structure looks like:
yourapp.onelink.me/AbCd?pid=facebook_int&c=Spring_Sale&af_adset={{adset.name}}&af_ad={{ad.name}}
Key parameters:
• pid (media source): the channel name—facebook_int, google_ads, tiktokglobal_int
• c (campaign): your internal campaign name
• af_adset: ad set identifier (use platform macros like {{adset.name}})
• af_ad: creative identifier
Platform macros dynamically populate these fields. Facebook uses {{adset.name}}, Google Ads uses {campaignid}, TikTok uses __AID__. Check AppsFlyer's integration guides for each network's macro syntax.
Configure Postbacks to Send Event Data Back to Ad Networks
Attribution is bidirectional. AppsFlyer sends install and in-app event data back to ad platforms so their algorithms can optimize for high-value users. In AppsFlyer, go to Integrated Partners, select your ad network, and enable postbacks for key events: install, purchase, subscription, registration.
Without postbacks, Facebook's algorithm treats every install equally. With postbacks, it learns which audiences generate paying users and shifts budget accordingly.
Step 2: Track In-App Events That Matter
Installs are a vanity metric. What matters is what users do after installing: subscribe, purchase, complete onboarding, reach a paywall. AppsFlyer tracks these actions as in-app events.
Define Your Event Taxonomy
Start with 5–10 critical events that map to business outcomes:
• af_purchase — completed transaction with revenue value
• af_subscribe — started a paid subscription
• af_trial_start — began free trial
• af_complete_registration — finished account setup
• af_level_achieved — reached milestone (gaming apps)
• af_add_to_cart — added item (e-commerce apps)
Use AppsFlyer's predefined event names (prefix af_) so the platform automatically maps them to industry benchmarks.
Implement the AppsFlyer SDK
Your dev team integrates the AppsFlyer SDK into your iOS and Android codebases. The SDK sends event data to AppsFlyer servers whenever a tracked action occurs.
Example iOS Swift code for tracking a purchase:
AppsFlyerLib.shared().logEvent("af_purchase", withValues: ["af_revenue": 9.99, "af_currency": "USD"])
Critical: always include af_revenue and af_currency parameters for purchase events. Without these, AppsFlyer cannot calculate ROAS.
Validate Event Tracking Before Launch
AppsFlyer's Test Console (under SDK Integration) shows real-time event data from test devices. Install your app on a test phone, trigger each event (make a purchase, start a trial), and confirm the event appears in the console with correct parameter values.
Common mistake: developers hard-code test values (e.g., af_revenue: 1.00 for every purchase). Always pass dynamic values from your transaction system.
Step 3: Build Cohort Reports to Measure Retention and LTV
Cohort analysis groups users by install date and tracks their behavior over time. A cohort report answers: "Of the 10,000 users who installed from Facebook on March 1, how many were still active on Day 7? Day 30? How much revenue did they generate?"
Create a Cohort Report in AppsFlyer
Navigate to Analytics > Cohort Analysis. Select:
• Cohort by: Install Date
• Group by: Media Source (to compare channels)
• Metrics: Retention Rate, Revenue per User, Event Rate (e.g., purchase rate)
• Time frame: Days 1, 7, 14, 30
The resulting table shows each channel's Day-7 retention and cumulative revenue per user. If TikTok drives 50% Day-7 retention but Google UAC drives only 30%, you know TikTok users are higher quality—even if Google delivers more installs.
Calculate LTV by Channel
AppsFlyer's LTV report predicts lifetime value using historical cohort data. Go to Analytics > LTV, select a lookback window (e.g., 90 days), and choose your grouping (media source, campaign, country).
The platform extrapolates long-term value from early behavior. If Day-30 revenue per user is $4.50 and your retention curve suggests 20% of users remain active at Day 180, AppsFlyer models total LTV at $12–15.
Use LTV to set target CPAs. If your LTV is $20 and you need 3x ROAS, your max CPA is $6.67.
Segment Cohorts by Geography
Not all markets perform equally. AppsFlyer's data shows emerging markets like India contributing 49% of subscription growth, with LATAM adding 18%. Build separate cohort reports for high-value regions (US, UK, Germany) versus growth markets (India, Brazil, Indonesia).
A user acquired in the US for $12 CPA might generate $30 LTV. The same app might see $2 CPA in India but only $6 LTV. Both are profitable, but budget allocation and creative strategy differ.
- →You export CSV files from AppsFlyer manually every week because your dashboards don't update automatically
- →Your ROAS calculations differ between AppsFlyer and your ad platforms by more than 15%, and you don't know why
- →You can't answer "Which channels drive the highest Day-30 LTV?" without pulling three separate reports and joining them in a spreadsheet
- →Your data team spends hours every month fixing broken AppsFlyer API connections after the platform updates its schema
- →You make budget allocation decisions without seeing mobile attribution data alongside web analytics, CRM records, and revenue data in one place
Step 4: Analyze ROAS by Channel and Campaign
Return on ad spend (ROAS) is the ratio of revenue generated to ad spend invested. AppsFlyer calculates ROAS automatically if you import cost data and track revenue events.
Import Ad Spend Data
AppsFlyer pulls cost data directly from integrated ad networks (Facebook, Google, TikTok, Snapchat). For networks without native integrations, upload cost data via CSV or API.
Go to Integrated Partners, enable cost data for each network, and grant AppsFlyer API access to your ad accounts. The platform syncs daily spend at the campaign and ad set level.
View ROAS in the Overview Dashboard
The Overview Dashboard displays ROAS by media source, campaign, and time period. Set your attribution window (commonly 7-day click, 1-day view) to match how you evaluate campaigns.
A 7-day ROAS of 150% means you generated $1.50 in revenue for every $1 spent within seven days of install. Many subscription apps see negative 7-day ROAS but positive 90-day ROAS because revenue compounds over time.
Compare Channel Performance
| Media Source | Installs | Cost | Day-7 Revenue | Day-7 ROAS | Day-30 Revenue | Day-30 ROAS |
|---|---|---|---|---|---|---|
| 12,400 | $48,200 | $38,100 | 79% | $92,300 | 191% | |
| Google UAC | 18,600 | $62,100 | $51,400 | 83% | $108,700 | 175% |
| TikTok | 8,300 | $29,800 | $22,100 | 74% | $61,200 | 205% |
| Apple Search Ads | 3,100 | $18,600 | $24,900 | 134% | $52,800 | 284% |
In this example, Apple Search Ads has the highest Day-7 ROAS and smallest scale. TikTok has the best Day-30 ROAS but lowest Day-7 performance—suggesting higher-quality users who take longer to convert.
Step 5: Export AppsFlyer Data to Your Data Warehouse
AppsFlyer's dashboards are powerful for mobile-specific analysis, but performance marketers need to see mobile data alongside web analytics, CRM records, and ad spend from non-mobile channels. That requires exporting AppsFlyer data to a central warehouse.
Use AppsFlyer Data Locker
Data Locker is AppsFlyer's ETL service. It exports raw event data (installs, in-app events, uninstalls) to your S3 bucket, Google Cloud Storage, or Azure Blob Storage. Files arrive hourly in CSV or Parquet format.
Enable Data Locker under Export Data > Data Locker. Configure your storage credentials, select which event types to export, and set your schema preferences.
Data Locker is unstructured. Each event is a row with 50+ columns: app ID, event name, event time, attributed media source, user ID, device type, geo, revenue value, custom parameters. Your data team writes SQL transforms to join this data with other sources.
Connect via Pull API
AppsFlyer's Pull API returns aggregated data—installs, revenue, ROAS—grouped by dimensions you specify (media source, campaign, country, date). The API is faster than Data Locker for building dashboards because the data is pre-aggregated.
Example API call:
GET https://hq1.appsflyer.com/api/agg-data/export/app/{app-id}/partners_by_date_report/v5?from=2026-01-01&to=2026-01-31&media_source=Facebook
Response includes daily rows with installs, revenue, cost, ROAS for the specified media source.
Automate with a Marketing ETL Platform
Building and maintaining AppsFlyer data pipelines requires engineering resources. Marketing ETL platforms like Improvado, Fivetran, and Stitch automate the process: they connect to AppsFlyer's API, extract data on a schedule, transform it into a consistent schema, and load it into your warehouse.
Improvado offers a pre-built AppsFlyer connector that pulls 46,000+ metrics and dimensions, maps them to a standardized marketing data model, and syncs them with data from Google Ads, Meta, Salesforce, and 1,000+ other sources. The connector updates automatically when AppsFlyer changes its API schema—a critical advantage given how often mobile attribution platforms evolve.
Common Mistakes to Avoid
1. Not enabling postbacks for high-value events. If you only send install postbacks to Facebook, its algorithm optimizes for installs—not revenue. Enable postbacks for purchase, subscription, and trial events so the platform learns which audiences convert.
2. Using inconsistent event naming across platforms. If your iOS app logs af_purchase but your Android app logs purchase_complete, cohort reports will undercount conversions. Standardize event names in a shared taxonomy document and enforce it in code reviews.
3. Ignoring attribution windows. A 1-day attribution window undercounts conversions from channels with long consideration cycles (content marketing, influencer partnerships). A 30-day window over-attributes installs that would have happened organically. Test 7-day click / 1-day view as a starting point, then adjust based on your customer journey data.
4. Not segmenting by platform (iOS vs. Android). iOS users typically have higher LTV but cost more to acquire. Android delivers scale at lower CPAs. Build separate dashboards and LTV models for each platform.
5. Failing to reconcile AppsFlyer data with ad platform reporting. AppsFlyer's install count will never match Facebook's exactly—attribution methodologies differ, bots get filtered at different stages, and time zone settings vary. Expect 5–10% variance. If the gap exceeds 15%, investigate discrepancies in attribution windows, postback configuration, or SDK integration.
6. Not tracking organic installs separately. AppsFlyer labels installs without an attributed media source as "organic." But organic can mean brand search, App Store browsing, word-of-mouth, or PR coverage. Use campaign parameters on owned channels (email, SMS, website CTAs) so you can measure their contribution.
7. Exporting data manually instead of automating pipelines. Downloading CSV reports from AppsFlyer every week wastes hours and introduces errors. Automate data exports to your warehouse so dashboards update in real time.
Tools That Help with AppsFlyer Analytics
| Tool | What It Does | Best For | Pricing |
|---|---|---|---|
| Improvado | Connects AppsFlyer with 1,000+ marketing data sources, automates ETL to your warehouse, applies marketing-specific data transformations, and syncs to BI tools | Performance marketing teams managing multi-channel attribution across mobile and web | Custom pricing |
| AppsFlyer Data Locker | Exports raw event-level data to cloud storage (S3, GCS, Azure) | Teams with in-house data engineering resources who need granular event data | Included in AppsFlyer enterprise plans |
| Fivetran | Pre-built connectors for AppsFlyer and other SaaS tools; syncs data to warehouse on a schedule | Engineering-led organizations with existing data infrastructure | $1/credit (volume-based) |
| Looker / Tableau / Power BI | Business intelligence platforms for building dashboards on top of warehouse data | Teams that have already centralized data and need visualization layers | $35–70/user/month |
| Segment | Customer data platform that routes events from apps to AppsFlyer and other tools | Product-led growth teams managing event tracking across multiple analytics vendors | $120/month + usage fees |
Improvado sits at the intersection of attribution and activation. It pulls data from AppsFlyer, ad platforms, CRM systems, and analytics tools into a unified warehouse, then applies marketing-specific transformations: UTM parsing, multi-touch attribution modeling, campaign taxonomy normalization, and budget pacing calculations. The platform's AppsFlyer connector updates automatically when the API changes—eliminating the maintenance burden that breaks many homegrown pipelines.
Unlike generic ETL tools, Improvado is built specifically for marketing teams. It includes pre-built dashboards for ROAS, LTV, and CAC payback period, and a conversational AI agent that answers questions like "Which TikTok campaigns had positive 30-day ROAS last month?" without requiring SQL knowledge.
Conclusion
AppsFlyer analytics gives performance marketers the foundation for mobile attribution: tracking which channels drive installs, measuring in-app behavior, calculating LTV, and optimizing ROAS. But the platform's value multiplies when you connect AppsFlyer data with the rest of your marketing stack—ad spend tables, CRM records, web analytics, and revenue systems.
The teams that win with AppsFlyer are the ones who move beyond basic install tracking. They instrument in-app events that map to business outcomes, build cohort reports that reveal retention patterns, and export data to a central warehouse where it can inform budget allocation across all channels—not just mobile.
If your team is still exporting CSV files from AppsFlyer every week or making budget decisions without cross-platform visibility, you're operating with a fraction of the insights available. Automation is the unlock: pipelines that sync AppsFlyer data with your warehouse daily, dashboards that update in real time, and attribution models that account for multi-touch journeys across mobile and web.
FAQ
What does AppsFlyer do?
AppsFlyer is a mobile attribution and analytics platform that tracks how users discover your app, measures in-app behavior, and calculates lifetime value. It assigns unique tracking links to each marketing channel, records which link each user clicked before installing, and tracks subsequent actions like purchases and subscriptions. Performance marketers use AppsFlyer to measure ROAS, compare channel performance, and optimize mobile user acquisition campaigns.
How accurate is AppsFlyer attribution?
AppsFlyer attribution accuracy depends on proper SDK integration, postback configuration, and attribution window settings. When implemented correctly, AppsFlyer captures 90%+ of attributable installs. Discrepancies between AppsFlyer and ad platform reporting typically fall within 5–10% due to differences in attribution methodology, bot filtering, and time zone settings. Larger gaps indicate integration issues—check that your SDK is firing events correctly and that postbacks are enabled for all key conversion events.
What is the difference between AppsFlyer and Google Analytics?
AppsFlyer is a mobile attribution platform focused on tracking user acquisition campaigns and calculating ROAS by channel. Google Analytics (GA4) is a product analytics tool that measures user behavior across web and mobile. AppsFlyer excels at multi-channel attribution, deep linking, and LTV modeling. GA4 excels at funnel analysis, audience segmentation, and event taxonomy. Most mobile-first companies use both: AppsFlyer for attribution and UA optimization, GA4 for product analytics and retention analysis.
How do I export AppsFlyer data to my data warehouse?
AppsFlyer offers three export methods: Data Locker (raw event-level data to S3, GCS, or Azure), Pull API (aggregated data via HTTP requests), and Push API (real-time postbacks to your server). Data Locker is best for teams with data engineering resources who need granular event data. The Pull API works for building dashboards with aggregated metrics. For automated, no-code exports, use a marketing ETL platform like Improvado that connects AppsFlyer with your warehouse and handles schema changes automatically.
What attribution window should I use in AppsFlyer?
Start with a 7-day click / 1-day view attribution window—the industry standard for mobile attribution. This means AppsFlyer attributes an install to a campaign if the user clicked an ad within the last 7 days or viewed it within the last 24 hours. Adjust based on your customer journey: subscription apps with long consideration cycles may extend to 14-day click windows, while casual gaming apps with impulse installs may shorten to 3-day windows. Avoid windows longer than 30 days—they over-attribute installs that would have happened organically.
How do I calculate LTV in AppsFlyer?
AppsFlyer calculates LTV by tracking revenue events (purchases, subscriptions) for cohorts of users over time, then extrapolating long-term value from early behavior patterns. Go to Analytics > LTV, select a lookback window (typically 90–180 days), and group by media source, campaign, or country. The platform models total LTV based on observed retention curves and revenue per user at Day 7, Day 30, and Day 90. For accurate LTV calculations, ensure your SDK logs revenue values correctly using the af_revenue and af_currency parameters.
Can AppsFlyer track web-to-app journeys?
Yes, AppsFlyer's Web SDK tracks users who visit your website and later install your app, enabling cross-platform attribution. Implement the Web SDK on landing pages, add OneLink parameters to your web-to-app CTAs, and enable deferred deep linking. When a user clicks "Download App" on your website, AppsFlyer stores a fingerprint (IP address, user agent, timestamp) and matches it to the install event when the app opens. This closes the loop on campaigns that drive web traffic as a mid-funnel step before app install.
.png)



.png)
