
Mobile Attribution: Complete Guide for App Marketers in 2025
Understand mobile attribution, MMPs, SKAdNetwork, and how to measure app install campaigns. Compare AppsFlyer, Adjust, Branch and free alternatives.

# Mobile Attribution: Complete Guide for App Marketers in 2025
Mobile attribution tells you which marketing channels drive app installs and in-app actions. In a world of privacy changes and multiple ad networks, proper attribution is essential for profitable user acquisition.What is Mobile Attribution?
Mobile attribution is the process of identifying which marketing touchpoint led to an app install or in-app event. It answers: "Where did this user come from?" Simple Example:User journey:
Sees Facebook ad → clicks
Redirects to App Store
Installs app
Opens app for first time
Makes purchase
Attribution tells you:
- This install came from Facebook
- The specific campaign, ad set, and ad
- The user's subsequent in-app value
Why Attribution Matters
Without attribution, you're flying blind:
| Question | Without Attribution | With Attribution |
|---|---|---|
| Which channel works best? | Unknown | Facebook drives 3x ROAS vs Google |
| Where should we spend more? | Guessing | Scale Facebook, reduce TikTok |
| What's our CAC by channel? | Average only | FB: $5, Google: $8, TikTok: $12 |
| Which creatives perform? | No idea | Video A drives 40% more installs |
How Mobile Attribution Works
The Basic Flow
AD CLICK
User clicks ad on Facebook
↓
TRACKING LINK
Click goes through attribution provider (MMP)
Device data collected (device ID, IP, etc.)
↓
APP STORE
User redirected to App Store/Play Store
↓
INSTALL
User downloads and installs app
↓
FIRST OPEN
MMP SDK detects first app open
Matches install to original click
↓
ATTRIBUTION
Install attributed to Facebook campaign
Data sent back to Facebook for optimization
Attribution Methods
1. Device ID Matching (Traditional)- Uses IDFA (iOS) or GAID (Android)
- Most accurate method
- Declining due to privacy changes
- Uses device characteristics (IP, device type, etc.)
- Less accurate (60-80%)
- Works without device IDs
- Apple's privacy-preserving framework
- Limited data (conversion values)
- Delayed reporting (24-72 hours)
- Direct attribution from Play Store
- Very accurate
- Android only
Attribution Windows
Click-through attribution: User clicked an ad, then installed- Typical window: 7-30 days
- Typical window: 1-24 hours
| Platform | Click Window | View Window |
|---|---|---|
| 7 days (default) | 1 day | |
| 30 days | 1 day | |
| TikTok | 7 days | 1 day |
| Apple Search Ads | 30 days | N/A |
Mobile Measurement Partners (MMPs)
What is an MMP?
A Mobile Measurement Partner (MMP) is a third-party platform that:
- Tracks app installs from all ad networks
- Provides unified attribution data
- Prevents double-counting across networks
- Sends postbacks to ad networks for optimization
Major MMPs Compared
| MMP | Pricing | Best For | Key Strength |
|---|---|---|---|
| AppsFlyer | $0.05-0.12/attribution | Enterprise | Market leader, most integrations |
| Adjust | Custom pricing | Enterprise | Privacy focus, fraud prevention |
| Branch | Free tier available | Growing apps | Deep linking + attribution |
| Singular | $0.05+/attribution | Enterprise | Cost aggregation |
| Kochava | Custom pricing | Enterprise | Audience management |
AppsFlyer Deep Dive
Pros:- Most ad network integrations
- Robust fraud protection
- Excellent dashboard and reporting
- Strong SKAdNetwork support
- Expensive ($0.05-0.12 per attribution)
- Enterprise-focused pricing
- Can get very costly at scale
| Monthly Installs | AppsFlyer Cost |
|---|---|
| 10,000 | $500-1,200 |
| 100,000 | $5,000-12,000 |
| 1,000,000 | $50,000-120,000 |
Adjust Deep Dive
Pros:- Strong privacy compliance (GDPR)
- Good fraud prevention
- Audience builder features
- Opaque pricing
- Smaller integration network
- Dashboard learning curve
Branch Deep Dive
Pros:- Free tier for smaller apps
- Best deep linking solution
- Combined attribution + deep linking
- Less sophisticated fraud prevention
- Fewer enterprise features
- Attribution secondary to deep linking
Free/Budget Alternatives
For Startups and Small Apps:- Free (with limits)
- Good for Google-focused campaigns
- Limited non-Google attribution
- Free
- Only tracks Facebook installs
- No cross-network attribution
- Included with AdBid plans
- Cross-platform attribution
- No per-event fees
SKAdNetwork (SKAN) Explained
What is SKAdNetwork?
SKAdNetwork is Apple's privacy-preserving attribution framework for iOS. It limits the data advertisers receive while still allowing basic attribution.How SKAN Works
User sees/clicks ad in app
Ad network registered with Apple
User installs app from App Store
App updates "conversion value" (0-63)
After timer expires, Apple sends postback
Ad network receives: campaign ID, conversion value
NO user-level data, NO device ID
SKAN Conversion Values
You get one number (0-63) to represent user quality. Strategy matters:
Option 1: Revenue-Based| Conversion Value | Meaning |
|---|---|
| 0 | Install only |
| 1-10 | First purchase ($1-10) |
| 11-30 | Purchase ($10-50) |
| 31-50 | Purchase ($50-100) |
| 51-63 | High spender ($100+) |
| Conversion Value | Meaning |
|---|---|
| 0 | Install only |
| 1 | Completed registration |
| 2-10 | Days 1-7 retention |
| 11-30 | In-app actions completed |
| 31-63 | Monetization events |
SKAN Limitations
| Limitation | Impact |
|---|---|
| Limited conversion values | Only 64 possible values |
| Timer-based delays | 24-72 hours for postbacks |
| Privacy thresholds | Low volume = no data |
| No user-level data | Can't build user profiles |
| Campaign ID limits | 100 campaigns max |
Setting Up Mobile Attribution
Step 1: Choose Your MMP
Decision Framework:Budget under $500/mo → Branch (free tier) or Firebase
Budget $500-5000/mo → Branch paid or Adjust
Budget $5000+/mo → AppsFlyer or Adjust
Primarily Google ads → Firebase
Need deep linking → Branch
Enterprise needs → AppsFlyer
Step 2: Implement SDK
Basic Implementation Steps:
// Example: AppsFlyer iOS
pod 'AppsFlyerFramework'
// Initialize in AppDelegate
AppsFlyerLib.shared().appsFlyerDevKey = "YOUR_DEV_KEY"
AppsFlyerLib.shared().appleAppID = "YOUR_APP_ID"
// Track app open
AppsFlyerLib.shared().start()
// Track in-app events
AppsFlyerLib.shared().logEvent("purchase", withValues: [
"revenue": 9.99,
"currency": "USD"
])
- Configure in MMP dashboard
- Map events to network events
- Set attribution windows
Step 3: Configure Tracking Links
Create tracking links for each campaign:
Structure:
https://app.appsflyer.com/[app_id]?pid=[network]&c=[campaign]&af_adset=[adset]&af_ad=[ad]
Example:
https://app.appsflyer.com/com.yourapp?pid=facebook&c=summer_sale&af_adset=lookalike_purchasers&af_ad=video_1
Step 4: Set Up Events
Essential Events to Track:| Event | When to Fire | Why It Matters |
|---|---|---|
| Install | First app open | Basic attribution |
| Registration | Account created | User quality signal |
| Tutorial Complete | Onboarding done | Engagement quality |
| First Purchase | Initial transaction | Monetization |
| Subscription Start | Subscription begins | LTV indicator |
| Custom Events | App-specific actions | Optimization goals |
Step 5: Connect Ad Networks
For each network, you'll need to:
Attribution Best Practices
1. Consistent UTM Parameters
Standardize your tracking parameters:
Standard structure:
&utm_source=[network]
&utm_medium=[campaign_type]
&utm_campaign=[campaign_name]
&utm_content=[ad_creative]
&utm_term=[targeting]
2. Event Naming Conventions
Create a clear naming system:
Good: purchase_completed, level_5_reached, subscription_started
Bad: event1, purchase, sub
3. Revenue Tracking
Always pass revenue with purchase events:
trackEvent("purchase", {
revenue: 29.99,
currency: "USD",
order_id: "12345"
});
4. Handle iOS Privacy
ATT (App Tracking Transparency):- Request permission early in onboarding
- Explain value to users
- Have fallback for declined users
- Use SKAdNetwork regardless
5. Fraud Prevention
Enable fraud prevention features:
- Click flood protection
- Install farm detection
- Device anomaly detection
- Time-to-install analysis
Common Attribution Issues
Issue 1: Discrepancies Between MMP and Ad Network
Why it happens:- Different attribution windows
- Different attribution methods
- Timezone differences
- Delayed data
- Align attribution windows
- Use MMP as source of truth
- Allow 24-48 hours for data to stabilize
Issue 2: Organic Installs Misattributed
Why it happens:- View-through attribution too aggressive
- Click flooding fraud
- Broad fingerprinting
- Shorten view-through windows
- Enable fraud protection
- Use deterministic matching when possible
Issue 3: SKAdNetwork Data Gaps
Why it happens:- Privacy thresholds not met
- Timer issues
- Configuration problems
- Aggregate campaigns to meet thresholds
- Implement conversion value strategy
- Test SKAN configuration thoroughly
Mobile Attribution Without an MMP
Can you do attribution without an expensive MMP?Yes, with limitations:
Option 1: Platform-Only Attribution- Use Facebook SDK, Google SDK, etc.
- Each network tracks its own installs
- No cross-network deduplication
- Free
- Firebase for Google attribution
- Deep links for others
- Manual reconciliation
- Free (with work)
- Cross-platform attribution included
- No per-event fees
- Simpler than enterprise MMPs
- Part of ad management platform
The Future of Mobile Attribution
Privacy-First Attribution
The industry is moving toward:
- Aggregated data: Cohort-level insights vs. user-level
- Modeled conversions: ML-estimated attribution
- Privacy-preserving APIs: SKAN, Privacy Sandbox
- First-party data: Owned data becomes more valuable
What to Prepare For
Conclusion
Mobile attribution is essential but increasingly complex. Key takeaways:
Tags
Ready to optimize your ad campaigns?
Try AdBid free for 14 days. No credit card required. See how AI-powered optimization can transform your advertising.

