Appsflyer SSOT Reporting (for AAP-enabled clients)
When a client’s app has Aggregated Advanced Privacy (AAP) turned on in Appsflyer, we lose API access to user-level data for folks who didn’t give consent — especially from SAN platforms like Meta, TikTok, and Snapchat. That means imported install and event counts will be lower than what they actually are in Appsflyer.
This doc outlines how we standardize total install and event reporting using aggregate reports + SKAN data, so we can match what the client sees in their Appsflyer dashboard.
✅ Set up these 2 Worfklows
These two reports work together to give a full picture of iOS installs and events when AAP is enabled.
1. Appsflyer Aggregated Data Report
Why we need it: Captures all non-SKAN installs and events, regardless of user opt-in/out
Action: Set up a workflow using the Appsflyer Aggregated Data template and export it to an Alli datasource
2. AppsFlyer SKAdNetwork Report
Why we need it: Captures SKAdNetwork (SKAN) performance, including modeled data hidden in the Appsflyer UI
Action: Set up an Appsflyer SkAdNetwork Marketplace App and export it to an Alli datasource
📊 Datasources & Logic
To align Single Source of Truth (SSOT) for total installs and events, you will want to sum the installs and events from both datasources.
Here is an example how to structure it:
🔹 Alli Aggregate Datasource:
SELECT
SUM(installs) AS total_installs,
SUM(af_purchase) AS total_purchases
FROM <<<insert Alli Aggregate Datasource here>>>
🔹 Alli SKAdNetwork Datasource:
SELECT
SUM(installs) AS skan_installs,
SUM(af_purchases) AS skan_purchases,
FROM <<<insert Alli SKAdNetwork Datasource here>>>
WHERE attribution_flag = FALSE
✅ Final SSOT Calculation:
SELECT
(agg.total_installs + skad.skan_installs) AS mobile_installs,
(agg.total_purchases + skad.skan_purchases) AS mobile_purchases
(SELECT
SUM(installs) AS total_installs,
SUM(af_purchase) AS total_purchases
FROM <<<insert Alli Aggregate Datasource here>>>) agg,
(SELECT
SUM(installs) AS skan_installs,
SUM(af_purchases) AS skan_purchases
FROM <<<insert Alli SKAdNetwork Datasource here>>>
WHERE attribution_flag = FALSE) skad
🎯 Why This Matters
Completeness: This approach accounts for users hidden due to AAP, which can lead to underreporting when relying on raw datasets alone.
Cross-client applicability: Any iOS app using Appsflyer with AAP enabled for SANs (Meta, TikTok, Snap) benefits from this method.
Alignment: Helps align internal SSOT reporting with what clients see in the Appsflyer UI (especially if they’re viewing high-level install dashboards).
🔍 Notes & Best Practices
Confirm whether AAP is enabled for the client’s app in Appsflyer (check App Settings or ask MMP contact).
Expect slight delays in SKAN data availability (~24–72 hours).
This logic is scoped to iOS only. Android installs are not impacted by AAP and can be pulled via standard raw or aggregate reporting.
🧪 QA Suggestions
Cross-reference with Appsflyer UI totals for key date ranges (campaign or MMP dashboard).
If discrepancies occur, check:
Attribution window config
SKAN mapping accuracy
Event deduplication logic