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.
About Single Source of Truth—True iOS performance data
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. Note: To get in-app event and revenue-related metrics, you need these metrics configured in SKAN Conversion Studio.
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:
- Before you begin, consider the AppsFlyer Single Source of Truth billing policy.
- In AppsFlyer, go to Settings > SKAN Conversion Studio.
- Select Custom mode.
- Turn on Single Source of Truth.
- Complete the settings as needed.
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.
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:
- Before you begin, verify that in the Conversion Studio Single Source of Truth is turned on.
- In AppsFlyer, go to Dashboard > Overview.
- Click ▼.
-
Select Lite overview.
The Single Source of Truth switch displays.
- Turn on Single Source of Truth.
- 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:
- Click ▼.
- Click + Save new report.
- Enter a report name.
- Click Save.
- Data doesn't display. Consider that it can take 3-5 days after turning SSOT on until the data displays. Wait for this period to elapse and visit the dashboard again.
- Dashboard metrics and charts display.
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): Modeled. Advanced machine learning is used to model a null value as attributed by either AppsFlyer or SKAN using the af_attribution flag. If attributed to SKAN, all post-install SKAN measurements are included in the SSOT dashboard. Learn more
- Redownloads: Included in the installs metric. There is no segregation of installs vs. redownloads.
-
Timezone: AppsFlyer-reported installs and events display in UTC or in the app-specific local timezone as set on the app settings page. For SKAN-reported data, installs and events display using UTC, with the exception of Meta and Google SKAN data, for which the timezone is based on the timezone configured in your Meta and Google accounts, respectively.
-
Currency: Displays in USD or in the app-specific local currency as set on the app settings page.
Filter considerations
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 |
|
Dates |
|
Campaign filters |
Campaign hierarchy filters available:
|
Headline KPIs |
The headline KPIs available in the SSOT dashboard let you see:
For each KPI, there is a percentage value. This value shows how the presented KPI is in relation to the parallel date range before it. For example, this week compared to last week, or any days selected in the date range compared to the same number of days that came before: For example, if it shows an X% increase in installs, it means the previous parallel date range had X% fewer install. |
Charts |
Dimensions available:
Metrics: As described in the metrics sections. |
Table |
Groupings:
Metrics: As described in the metrics sections. |
Metrics
Metrics available in the SSOT dashboard:
Metric | Description and considerations |
---|---|
Groupings |
|
SSOT attributions |
Headline breakdown of SSOT installs, reattributions, and re-engagements during the selected dates.
|
Total |
Number of installs, re-attributions, and re-engagements. |
Installs |
The number of unique users who install the app. Calculated as installs attributed by AppsFlyer in the context of UA campaigns plus the number of new installs and re-downloads reported by SKAN after removing duplicates. |
Re-attributions | Retargeting metrics are available in the Unified and Retargeting view types. Consider that SKAN doesn't support retargeting. |
Re-engagements | Retargeting metrics are available in the Unified and Retargeting view types. Consider that SKAN doesn't support retargeting. |
Other metrics | Various other metrics relating to SSOT and advertising performance |
SKAN duplicates | The number of SKAN installs with af_attribution_flag=true |
Clicks | Clicks and impressions data reported by ad networks via API. The SSOT mechanism doesn't affect touchpoint metrics. |
Impressions | Clicks and impressions data reported by ad networks via API. The SSOT mechanism doesn't affect touchpoint metrics. |
Conversion rate | Click-to-install |
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. |
AVG eCPI ($) | Effective cost per install metric is calculated using SSOT view install metrics. It excludes organic installs. |
CPM | Cost per mille (1000 impressions). Formula: (Cost / Impressions) * 1000 |
CPC | Cost per click. Formula: Cost / Clicks |
Click-throughs |
Number of attributions occurring after a user clicks on an ad (CTA) |
CTR |
Click-through rate. Formula: Clicks / Impressions |
Uninstall rate |
Rate (%) of users uninstalling the app, as a proportion of the users attributing. Meaning installing, re-engaging, or re-attributing. Formula: Uninstalls / Attributions *100 (Relevant for User Acquisition only) |
Uninstalls |
Number of app users installing the app who subsequently uninstall (delete) the app (Relevant for User Acquisition only) |
View-throughs |
Number of attributions occurring after a user views an ad (VTA) |
Revenue (D2) |
SKAN and Classic revenue (including ad revenue) for the first SKAN measurement window (D2):
Note:
Tip: To improve SKAN revenue accuracy:
|
Revenue D7 |
|
ARPU D2 |
Average Revenue per User. Formula: Revenue/Unique Users For those using SKAN 4 in Conversion Studio, this is data for 2 days post-install. For those using SKAN 3 in Conversion Studio, data is based on the defined SKAN activity window, whether that's more or less than 2 days. |
ARPU D7 |
Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
ROAS D2 |
Return On Ad Spend (%).
Formula: Revenue/Cost * 100
For those using SKAN 4 in Conversion Studio, this is data for 2 days post-install. For those using SKAN 3 in Conversion Studio, data is based on the defined SKAN activity window, whether that's more or less than 2 days.
|
ROAS D7 |
Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more
|
ROI D2 |
Return On Investment (%). Formula: (Revenue - Cost)/Cost * 100 For those using SKAN 4 in Conversion Studio, this is data for 2 days post-install. For those using SKAN 3 in Conversion Studio, data is based on the defined SKAN activity window, whether that's more or less than 2 days. |
ROI D7 |
Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
Gross profit D2 |
Profit after deducting campaign cost. Formula: Revenue - Cost For those using SKAN 4 in Conversion Studio, this is data for 2 days post-install. For those using SKAN 3 in Conversion Studio, data is based on the defined SKAN activity window, whether that's more or less than 2 days. |
Gross profit D7 |
Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
In-app event metrics |
Metrics relating to specific in-app events (IAEs) |
Event unique users (D2) |
Unique users performing the event, measured by a combination of AppsFlyer and SKAN, including modeled data of null values. For those using SKAN 4, this data is accumulated for the first 2 days post install. For those using SKAN 3, the data is an accumulation of days post-install based on the defined Activity Window. |
Event unique users (D7) |
Unique users performing the event, modeled based on a combination of AppsFlyer and SKAN. Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more Note: Unique users in (D7) also includes unique users in D2. |
Event eCPA (D2) |
Effective cost per action: Cost / unique users performing the event |
Event eCPA (D7) |
Effective cost per action: Cost / unique users performing the event. Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
Event conversion (D2) |
Rate (%) of unique users performing the event, as a proportion of the users attributing (meaning installing, re-engaging, or re-attributing). Formula: Unique users / attributions * 100 |
Event conversion (D7) |
Rate (%) of unique users performing the event, as a proportion of the users attributing (meaning installing, re-engaging, or re-attributing). Formula: Unique users / attributions * 100. Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
Event revenue (D2) |
Revenue generated with this event, within the defined days post-install |
Event revenue (D7) |
Revenue generated with this event, within the defined days post-install. Includes modeled data, beyond the SKAN measurement window, up to 7 days post-install. Learn more |
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 |
---|---|---|---|
|
|
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 measurement 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.
Considerations
- 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.
Attribution flag field
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 |
-- |
SSOT is off in the Conversion Studio. |
Null |
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
Formula to calculate example metrics:
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 |
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:
|
Organic revenue D2 | G |
Total D2 revenue - D2 revenue from A and B installs |
Organic IAE unique users D2 | H |
Total D2 IAE unique users - D2 event unique users from A and B installs |
Traits and limitations
Trait | Remarks |
---|---|
SSOT view |
SSOT is only available if there is at least one SKAN postback for each of the past 5 days that includes |
Total installs |
In some cases, there may be more installs displayed when SSOT is turned on versus when it's off. One of the reasons for this is that null conversion value modeling can impact the install date calculation, and cause differences when comparing installs on similar dates. Additionally, total installs can be inflated if null CVs aren't modeled, since in that case, every SKAN install is counted as unique (with the flag |
Revenue |
Revenue and other revenue-related metrics (ARPU, ROAS, ROI, gross profit) are supported as of September 1, 2022. |
Agencies |
Agency users can view the SSOT view in the Overview dashboard. |
Ad networks |
|
D7 metrics |
D7 metrics may be missing or less than D2 metrics if:
|
SKAN Conversion Studio configuration changes |
When you change your SKAN Conversion Studio configuration, there may be inaccuracies in SSOT data for approximately 96 hours. This is because AppsFlyer immediately begins to decode SKAN postbacks with the new schema, but postbacks still arrive from installs that were encoded with the previous schema. |
AF-reported data |
|
In-app events |
In-app events (as dimensions) and their metrics are available only for:
|