Skip to main content
Skip table of contents

Appsflyer SSOT Reporting (for AAP-enabled clients)

When a client’s app has Aggregated Advanced Privacy (AAP) enabled in Appsflyer, we lose access to user-level data for users who didn’t consent — especially from SAN platforms like Meta, TikTok, and Snapchat. This means imported install and event counts will appear lower than what’s shown in Appsflyer.

This doc outlines how we standardize reporting using aggregate reports + SKAN data to better align with what clients see in their Appsflyer dashboards.


✅ 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 Report template and export it to an Alli datasource

Optional reports:

  • If Facebook creative-level reporting is needed, set Use Facebook Reporting to true.

  • To pull retargeting and re-attributions, set Include Retargeting Conversions to true.

⚠️ These options pull different data than the default report and require separate datasources to be set up in Alli.

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:

CODE
SELECT 
  SUM(installs) AS total_installs,
  SUM(af_purchase) AS total_purchases
FROM <<<insert Alli Aggregate Datasource here>>>

🔹 Alli SKAdNetwork Datasource:

CODE
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:

CODE
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

🔍 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


🎯 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).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.