Single Source of Truth (SSOT) guide for iOS attribution

At a glance: In the context of the iOS 14+ environment, AppsFlyer brings together data from multiple attribution match methods like IDFA, IDFV, SKAN, Apple Search Ads, and so on, and gives a complete picture of app campaign performance. No attribution method provides the full app performance picture. The challenge is to count a given user once because that same user can be attributed by two methods. The AppsFlyer Single Source of Truth (SSOT) mechanism does just that. SSOT reports and metrics are true and accurate and count the same user only once.

How to get true iOS 14+ performance data 

Related reading: SKAN solution guideSKAN conversion studio | Overview dashboard

Starting iOS 14, AppsFlyer attributes iOS users using data from multiple data streams, including SKAdNetwork, ATT consenting users, probabilistic modeling, incrementality-based insights, and dedicated APIs for Apple Search Ads. The absence of IDFA makes it nearly impossible to tie the attribution methods together without including duplicate data.

The SSOT mechanism eliminates duplicate install data and corrects the attribution of misattributed users. In other words, users attributed as organic who should have been attributed to a non-organic media source. As a result, the number of installs attributed to a campaign is corrected and the associated cost- and revenue-related metrics, like eCPI, ROI, and ROAS, are also calculated correctly.

Simply put, the SSOT mechanism flags SKAN installs which are also attributed using another match type. The flag is considered in calculating aggregated metrics to avoid counting the same user twice. Similarly, you use the flag when processing SKAN raw data.

To include the SSOT flag in your data, you must turn on SSOT in the Conversion Studio. 

Turn on Single Source of Truth


To turn on SSOT:

  1. Before you begin, consider the AppsFlyer Single Source of Truth billing policy. 
  2. In AppsFlyer, go to Configuration > SKAN Conversion Studio.
  3. Select Custom mode.
  4. Turn on Single Source of Truth.
  5. Complete the settings as needed.

See SKAN Conversion Studio

Overview dashboard Single Source of Truth view


The Single Source of Truth view available via the Overview dashboard provides a complete picture of non-organic performance metrics. In the view:

  • Install metrics are true. 
  • Cost- and revenue-related metrics, that depend on the install metric, including eCPI, ARPU, and ROAS, are calculated correctly.
  • Organic metrics adjusted after accounting for misattributed installs.

Note: The SSOT dashboard view isn't available to ad networks and agencies. 

This section highlights the differences and unique features of the SSOT view. It assumes that you are familiar with the Overview dashboard.

Turn on Single Source of Truth view

Data in the SSOT view is available 3-5 days after you enable Single Source of Truth in the Conversion Studio. 

To enable Single Source of Truth view:

  1. Before you begin, verify that in the Conversion Studio Single Source of Truth is turned on. 
  2. In AppsFlyer, go to Dashboard > Overview. 
  3. Click ▼. 
  4. Select Lite overview.
    The Single Source of Truth switch displays.
  5. Turn on Single Source of Truth. 
  6. One of the following occurs:
    • Dashboard metrics and charts display.
      The sections that follow describe the data available. See the sections that follow about the data that displays.
      Save the SSOT view as a new report. To do so:
      1. Click ▼.
      2. Click + Save new report.
      3. Enter a report name.
      4. Click Save
    • Data doesn't display. Consider that it can take 5-7 days after turning SSOT on until the data displays. Wait for this period to elapse and visit the dashboard again. 

Turn off the SSOT switch at any time to see regular data with the dimensions not available in SSOT view.  Doing so enables you to take a deep dive.

SSOT view considerations

In the SSOT view: 

  • Null conversion values (CV) are regarded as a unique install. 
  • Redownloads are included in the installs metric. There is no segregation of installs vs. redownloads.
  • Time zone and currency display using UTC time and USD. In other words, app time zone and currency are disregarded.

Consider the impact of the filters on data display and metrics as described in the tables that follow. 

Filter Consideration
Single Source of Truth To view Single Source of Truth metrics, verify that the control is on. 
View type
  • User Acquisition: The preferred view for SSOT data. 
  • Retargeting: SKAN doesn't support retargeting. 
  • Unified: Install campaigns contain SSOT data. Retargeting campaigns aren't affected by SSOT. 
  • [Best practice] Select a date range of 7+ days that doesn't include the most recent 3 days to obtain accurate results.
  • Consider:
    • Periods of less than 7 days have diminished accuracy due to timezone differences and SKAN install time estimation. 
    • Google SKAN installs can be reported with a delay of up to 13 days.
  • The earliest date available is usually 3 days after you turned SSOT on. AppsFlyer determines this date. 
  • Example optimum date selection: 
    • If the current date is February 10 and you turned SSOT on  January 29. You can select February 1-7.
Campaign filters

Campaign hierarchy filters available: 

  • Media source
  • Campaign
Filter considerations
Metric Consideration

User acquisition

Users who install the app during the selected dates.

  • Non-organic: The campaign bringing the user. The SSOT mechanism ensures that the same install is counted only once. 
  • Organic metrics.
Retargeting Retargeting metrics are available in the Unified and Retargeting view types. Consider that SKAN doesn't support retargeting.

Clicks and impressions data reported by ad networks via API. The SSOT mechanism doesn't affect touchpoint metrics.

Cost Campaign cost data reported by ad networks via API. Data displays for campaigns with at least one install. The SSOT mechanism doesn't affect the total cost reported. It affects only metrics calculated using install numbers. 
eCPI Effective cost per install metric is calculated using SSOT view install metrics. 

Dimensions available:

  • Attributing method:
    • AF models: Installs matched by more than one method including SKAN. In the dashboard, the SKAN record is disregarded to avoid double-counting the same install. In SKAN raw data,  af_attribuiton_flag of the install is set to true. 
    • SKAN uniques: Installs matched only by SKAN and by no other method. In SKAN raw data, af_attribution_flag of the install is set to false. 
  • Attribution type
  • Campaign
  • Campaign ID
  • Media source


  • Attributions
  • SKAN duplicates: The number of SKAN installs with af_attribution_flag=true
  • Avg eCPI
  • Click-to-install: Is equivalent to conversion rate metric
  • Impressions
  • Clicks
  • Cost
Table dimensions available
  • Media source
  • Campaign name
  • Campaign ID
  • Date
  • [Coming soon] Source
  • [Coming soon] Attributed Touch-type
Metric and chart considerations

How does SSOT work

Understanding SKAN-AF modeled attribution duplication

SKAN attribution and AF modeled attribution work differently and have different traits and limitations. Therefore, each install can be attributed to a non-organic media source either:

  • Via SKAN or an AF model exclusively (unique attribution).
  • Via both SKAN and an AF model simultaneously (duplicates). In this case, the SSOT mechanism signals a SKAN duplicate install with the flag: af_attribution_flag=TRUE. And in the SSOT dashboard, only one install displays instead of two.
  • Neither SKAN nor AF model, meaning the install is organic.

The possible SKAN-AF model attribution scenarios are illustrated in the following Venn diagram.


The following table describes the reasons for each attribution scenario.

SKAN only AF model only

Both SKAN and AF model

Neither SKAN nor AF model 
  • Media source is an SRN, user device has iOS 14.5+, user doesn’t provide dual ATT consent.
  • Media source is a non-SRN, user device has iOS 14.5+,  probabilistic modeling not available, user doesn’t provide dual ATT consent.
  • User device has iOS 14.4 and below.
  • Media source doesn't support SKAN.
  • Install came via a web-to-app flow (SKAN only supports app-to-app). 
  • Install is via retargeting (not supported by SKAN)

No limitations exist and both SKAN and an AF model attribute the install.

This creates duplicate installs, and is when SSOT is needed to remove the duplicate.

User is organic

SSOT mechanism workings

SSOT works as detailed in the visual that follows.


How does the SSOT mechanism work?

The SSOT mechanism exists in the AppsFlyer SDK in your app on the user device and in the AppsFlyer platform as follows:

User device:

  • A user opens the app for the first time. The AppsFlyer platform endeavors to attribute the user. The ability to attribute depends on the campaign type and user consent (ATT) status.
  • If attribution succeeds, the SDK sets the attribution bit in the Conversion Value (CV)
  • The regular SKAdNetwork flow continues unchanged. Meaning that user activity continues to be measured and the CV set until the activity window terminates.
  • Subsequently, iOS sends the postback.

AppsFlyer platform

  • AppsFlyer receives the iOS postback, decodes the conversion value, and exposes the value of the attribution bit via the af_attribution_flag as detailed in the table that follows.


  • In general, AppsFlyer doesn't count reinstalls. In the context of SSOT, the reinstall status isn't considered. This means SSOT doesn't remove duplicate SKAN installs coming from reinstalls in the context of SSOT analytics and they don't affect the setting of the af_attribution flag. 
SSOT indicator in the Conversion Value  Meaning af_attribution_flag field
On SSOT is on in the Conversion Studio and AppsFlyer succeeded in attributing the user. True
Off SSOT is on in the Conversion Studio and AppsFlyer didn't attribute the user. False
  • The conversion value is null
  • SSOT is off in the Conversion Studio

Attribution flag field

How does the af_attribution_flag (attribution bit) impact reporting tools? 

  • SKAN dashboard: Reflects only performance reported by SKAN postbacks. As such, the af_attribution flag isn't considered and duplicates aren't removed. 
  • SKAN aggregated performance reports and raw data reports: The af_attribution_flag is available in these reports. Use it according to your reporting requirements. If you combine SKAN data with AppsFlyer data, use the flag to remove duplicate data. This applies to both raw and aggregated data reports. 
  • SSOT view in the Overview dashboard: Data from all attribution methods, SKAN, IDFA, IDFV, Apple Search Ads, and so on are merged in a single view after removing duplicate SKAN data. 

Metrics derived by combining data from multiple attribution methods

When you combine SKAN data with the data of other attribution methods, use the af_attribution_flag to remove duplicate data from the data. This applies to both raw and aggregated data reports. 

The following example metrics can be calculated using the af_attribution_flag:

  • Non-organic installs
  • Organic installs
  • eCPI
  • Cohorted revenue
Metric description Designation Formula
Non-organic AppsFlyer installs A Non-organic installs reported by AppsFlyer
SKAN unique installs B SKAN installs where af_attribution_flag=false + SKAN installs where CV=null
All non-organic installs C A + B
Organic installs D

Total installs - C

Note: Total installs mean all installs recorded by the AppsFlyer SDK, regardless of attribution.

Campaign eCPI  E Cost / C
Cohorted revenue F

Add together the following:

  • Revenue of users defined by A. Include events generated during the initial post-install period equivalent to your SKAN measurement window. 
  • SKAN revenue where af_attribution_flag = false
Formula to calculate example metrics 

Traits and limitations

Traits and limitations
Trait Remarks
SSOT view

SSOT is only available if there is at least one SKAN postback in the past 5 days.

Was this article helpful?