“Running for ~4 weeks with zero attributed installs across all campaigns.” That’s a real line from a UA thread, and the reply most people wanted to give was “pause everything.” Don’t — not yet. When Meta’s dashboard shows installs and in-app events but AppsFlyer shows zero, the installs almost always happened. The attribution chain between them broke somewhere.
This is one piece of a bigger system — attribution sits underneath budgeting and decision-making, which the complete guide to mobile UA tracking maps end to end. Here we go deep on one failure: zero attributed installs with visible events.
Why “Zero Attribution” Rarely Means “Zero Installs”
Meta is a self-reporting network (SRN). It does not send clicks to your MMP. Instead, AppsFlyer asks Meta, install by install, “did you touch this user?” and Meta answers. If that question can’t be asked — or can’t be matched — AppsFlyer files the install as organic.
So the signature of a broken chain is usually this: paid attributed installs at zero, organic installs suspiciously up by roughly the same volume. Check that first. If organics jumped when campaigns went live, your installs are real and mislabeled.
The Diagnostic Order — Cheapest Check First
Work through these in order. Each step takes minutes, and most teams find the problem by step four. Start by matching your symptom:
| What you see | Most likely cause | Check |
|---|---|---|
| No installs at all, organic or paid | SDK not starting | Step 1 |
| Installs land on a different app | Wrong dev key or app ID | Step 2 |
| Paid at zero on iOS and Android | Meta integration or Meta App ID | Step 3 |
| Paid at zero on iOS only | ATE flag or low ATT opt-in | Step 4 |
| Paid low, but not zero | Lookback window mismatch | Step 5 |
| Only some campaigns at zero | Campaign objective or app link | Step 6 |
1. Is the SDK Actually Starting?
The AppsFlyer SDK has to be initialized and started on app launch. A common regression: a refactor moves the start call behind a login screen or consent flow, so it never fires for new users. Run the SDK integration test with a fresh test device and confirm installs appear at all — organic or paid.
2. Do the Dev Key and App ID Match?
One app, two builds, two app IDs is more common than it sounds — especially when a staging build ships by accident, or iOS and Android were set up by different people. Confirm the dev key and app ID in the build match the app you’re reading in the dashboard.
3. Is the Meta Integration Active in AppsFlyer?
In AppsFlyer’s integrated partners, Meta ads must be activated and linked to the correct Meta App ID. If it differs from the one in your Meta SDK or app settings, the SRN query goes to the wrong place and returns nothing.
“Meta sees it, AppsFlyer doesn’t” is most often a Meta App ID mismatch.
4. On iOS: the ATE Flag and ATT Status
ATE stands for Advertiser Tracking Enabled — a flag the Meta SDK uses to tell Meta whether the user allowed tracking under Apple’s App Tracking Transparency (ATT) prompt. If it isn’t passed correctly for your SDK version, Meta may treat every user as opted out. Opted-out users flow through aggregated measurement (SKAdNetwork / AdAttributionKit) instead.
Check your Meta SDK version and your ATT opt-in rate. If opt-in is low, near-zero user-level iOS attribution may be expected — move iOS reporting to aggregated data rather than treating it as a bug.
5. Lookback and Attribution Windows
If the click-through lookback window in AppsFlyer is shorter than the time users take to install, conversions fall outside it. Compare the window settings against Meta’s attribution setting. Mismatched windows won’t produce a clean zero, but they can push a small number close to it.
6. Campaign Setup
Check that the campaign uses an app promotion objective tied to the right app, and that the Meta app is connected to the ad account. A campaign sending traffic to a web page instead of the app store generates installs Meta can’t claim.
How to Confirm the Fix
Don’t trust one test install. Confirm three ways:
- A test device with a fresh install through a live ad shows as attributed to Meta in AppsFlyer’s raw data.
- Paid attributed installs rise and organics fall by a similar amount over the next 3–7 days.
- Meta-reported and AppsFlyer-attributed installs settle into a stable ratio. They never match exactly — but the gap should stop moving.
What to Do With the Four Weeks You Can’t Attribute
You won’t recover user-level attribution for past installs. You can still estimate: take the organic lift above your pre-campaign baseline, apply it to the spend period, and treat that as a rough paid contribution. Then log the fix like this:
Fixed Meta App ID mismatch
Date, owner, and the exact setting changed in AppsFlyer’s integrated partners.
Paid installs reappear
Organics drop back to their pre-campaign baseline within 3–7 days.
Not a performance change
Any CPI shift after this date is the attribution fix — not better campaigns.
That last note matters more than it looks. Six weeks from now, someone will ask why CPI “improved” in week five. Without it, nobody will remember it was an attribution fix. A decision log next to your MMP is exactly what our guide on MMPs vs. spreadsheet trackers covers.
FAQ
Why does Meta show installs but AppsFlyer shows none?
Meta counts installs with its own methods, including modeled data. AppsFlyer only credits Meta when its SRN query returns a match. A broken integration, wrong Meta App ID, or opted-out iOS users all break that match.
Does a low ATT opt-in rate cause zero attribution?
It causes near-zero user-level attribution on iOS. Those installs are measured through SKAdNetwork or AdAttributionKit instead, in aggregate and with delay.
Should I pause campaigns while I debug?
Check organic installs first. If organics rose with spend, the installs are real — fix attribution before judging performance.
Where to Go Next
1. Once attribution is back, check your numbers against the UA Channel Scorecard below.
2. Read MMP vs. Spreadsheet Tracker: You Need Both to set up the layer above your MMP.
3. See how attribution, budgeting and decision logs connect in the full mobile UA tracking guide.
Attribution fixed? Check the numbers.
The UA Channel Scorecard: CPI, retention, and ROAS benchmarks by channel and monetization model — free, delivered instantly to your inbox.
No spam. Unsubscribe anytime.