Update (January 27, 2021): Apple announced that App Tracking Transparency will be required starting with iOS 14.5. Singular strongly recommends implementing SKAdNetwork as soon as possible before the release of iOS 14.5 (planned for "early spring" 2021).
Singular does not recommend implementing App Tracking Transparency (ATT) before iOS 14.5 is released.
What happened with iOS 14? What is App Tracking Transparency?
iOS 14 introduced a host of new privacy-centric features. Notably, it introduced two things:
- App Tracking Transparency (ATT) - a new framework that prevents app developers from being able to access the iOS advertising ID (IDFA) without an explicitly opt-in by end-users
- SKAdNetwork v2 - An updated version of SKAdNetwork, an Apple-supported and privacy-compliant attribution framework that app developers can use to measure app marketing efforts without the need to ask for ATT consent.
App Tracking Transparency was excluded from the initial release of iOS 14 after Apple granted advertisers additional time to consider the changes.
However, on January 27th, 2021, Apple announced that starting iOS 14.5, Apple will require app developers to implement App Tracking Transparency to continue to access the IDFA. Advertisers will also need to comply with the updated User Privacy and Data Use policies.
What should we consider before adding the App Tracking Transparency prompt to our apps?
App Tracking Transparency (ATT) is not required to access the IDFA until iOS 14.5 is released. Therefore, Singular does NOT recommend implementing until 14.5 is publicly released.
After iOS 14.5 is released, access to the IDFA will be gated by the App Tracking Transparency (ATT) prompt. To access the IDFA, you will need to decide whether to show the ATT consent prompt.
Planning your ATT consent strategy requires you to consider user consent and data sharing from multiple angles. While Singular cannot recommend a decision for your specific app, we can offer a few questions to help your teams to approach the decision:
App development team:
- Is having the IDFA important for my app's business model?
- Will asking for consent alienate my users? Would it alienate different personas of my users? Is there a way I can mitigate alienating my users?
- Does having the IDFA impact the app user experience I can deliver? If so, is there another way I can persist or sustain that user experience without an IDFA?
Marketing or growth team:
- Who are the technology and marketing partners I depend on for growth? Do they depend on the IDFA (don't forget your MMP)?
- Can they support my marketing goals without an IDFA? If not, what is the impact to my marketing goals?
- Can they support SKAdNetwork as an alternative when IDFA is not available?
Data or BI team:
- How heavily does my team depend on the IDFA? Do my internal and external tools require the IDFA?
- Can I retool my tools and processes to depend less on the IDFA?
How should I implement App Tracking Transparency?
Once you've decided on your consent management strategy, if you decided to ask your users for consent to share their data, you will have to work with your team to implement the App Tracking Transparency consent dialog. To learn more, see Apple's documentation for the App Tracking Transparency framework.
Then, make sure your app communicates the result of the consent dialog to any SDK or technology that may be affected by it - including MMPs like Singular. Singular supports your app regardless if you decide to implement the App Tracking Transparency prompt. However, if you do, be sure to update your Singular SDK and S2S integration accordingly so Singular can fully utilize the IDFA in the event it is available.
How do I update my Singular SDK/S2S integration to support AppTrackingTransparency?
MMPs like Singular strongly benefit from having identifiers like the IDFA to identify devices and attribute installs to the correct advertising platform.
If Singular doesn't have the device's IDFA, it can still perform probabilistic attribution in limited scenarios. However, since probabilistic attribution will not be possible in most scenarios, it's strongly recommended to ask for user consent to access the IDFA. For that purpose, you should ask for consent to get the IDFA and retrieve it before the Singular SDK (or your S2S integration) sends a user session to the Singular servers and triggers Singular's install attribution process.
In the Singular iOS SDK:
To delay the SDK from firing a session, you can initialize the Singular SDK with the waitForTrackingAuthorizationWithTimeoutInterval option, as in the example below:
// Wait 5m for tracking authorization before sending any events config.waitForTrackingAuthorizationWithTimeoutInterval = 300 // start [Singular start:config];
Read more in our iOS SDK documentation.
In the Singular S2S integration:
We recommend adding a timeout or delay either in the client app or on the server-side to maximize the availability of the IDFA for install attributions. Make sure not to delay Singular tracking and attribution indefinitely.
Additionally, update your S2S integration as follows:
- (new) AppTrackingTransparency authorization status value should be passed in the att_authorization_status= parameter on all sessions (/launch) and events (/evt) when available. This is required to be passed on all events on iOS 14 as consent may change mid-session.
Can Singular measure app installs when the IDFA is not available?
At this point, Singular falls back to using the identifier for vendor (IDFV) to detect installs and measure app activity. IDFV-based measurement is reliable for measuring app activity but does not constitute deterministic attribution. Therefore, Singular recommends using SKAdNetwork when access to the IDFA is limited.
Is probabilistic matching going away? What attribution methods will be supported with iOS 14?
Based on our conversations with Apple and reinforced by their latest updates on requirements, Apple has taken a stance prohibiting probabilistic attribution without consent. The below matrix represents what Singular interprets as allowed attribution methods that are compliant with Apple's privacy policies:
In order to protect advertisers and partners with the updated privacy policies, Singular will, by default, disable probabilistic matching for iOS 14 and above once iOS 14.5 is released and App Tracking Transparency is enforceable. As a technology provider, Singular is committed to helping our advertisers and partners stay compliant with Apple policies.
However, there are still scenarios in which App Tracking Transparency allows for probabilistic attribution. Therefore Singular supports attribution workflow controls that will allow advertisers to enable probabilistic attribution methods according to their interpretation of Apple's privacy policies. Continue reading on how these controls can be used for partner and custom sources.
Attribution Workflow Controls for Partner Sources
Apple's app tracking transparency and "user privacy and data use" guidelines are clear for app-to-app marketing and advertising. However, there are scenarios where probabilistic matching is still allowed by ATT, and/or the only option of measurement for example when SKAdNetwork is not available. Therefore, probabilistic attribution methods may still be utilized.
To support these scenarios, we have implemented additional requirements to ensure probabilistic attribution is still supported in a privacy-safe manner to protect end-users, advertisers, and partners.
Partners allow-listed for probabilistic attribution can utilize the source media type (_smtype) tracking link parameter. This parameter allows Singular to identify this touchpoint is eligible for probabilistic attribution based on the media type.
|Partner Links - Source Media Type|
Indicates the partner link is attributing "paid, mobile web" media. This option will allow the partner link to probabilistically attribute, but only if the installed user opted in to ATT consent.
This is the default if _smtype= is not present in the partner link
Indicates the partner link is attributing "paid, mobile app" media. Probabilistic attribution is never used for this source media type.
Indicates the partner link is attributing "owned, mobile web" media. This option will allow the partner link to probabilistically attribute regardless of the installed user's ATT consent
Warning: This option should be only be used after understanding after discussing with your partner that this scenario is compliant with Apple's ATT guidelines
- If your marketing efforts include working with these partners, reach out to your partner account manager to confirm they can adhere to these requirements, or refer your partners to our partner-facing help center article on confirming support.
Attribution Workflow Controls for Custom Sources
Under Apple's "user privacy and data use" guidelines, "owned" media is considered exempt from App Tracking Transparency, and as such, probabilistic attribution for this media can be supported in Singular.
While custom source links are most commonly used to attribute "owned mobile web" media, they are oftentimes used in "paid mobile web" or "paid mobile app" scenarios such as social or influencer campaigns.
By default, Singular assumes that custom source links may be used in "paid mobile app" media, where probabilistic attribution is not allowed without ATT consent. In order to enable probabilistic attribution custom source links for supported scenarios, a source media type (_smtype) parameter and value must be appended to these links to indicate the intended media the link is attributing.
|Custom Source Links - Source Media Type|
Indicates the custom source link is attributing "paid, mobile web" media.
This option will allow the custom link to probabilistically attribute, but only if the installed user opted in to ATT consent.
This is the default if _smtype= is not present in the custom source link.
Indicates the custom link is attributing "paid, mobile app" media.
Probabilistic attribution is never used for this source media type.
|_smtype=3||Indicates the custom source link is attributing "owned, mobile web" media.
This option will allow the custom link to probabilistically attribute regardless of the installed user's ATT consent.
Indicates the custom source link is attributing "owned, mobile app" media.
What is Singular’s SKAdNetwork solution (SKAN)? How does it function as an alternative to IDFA-based attribution?
Singular's SKAdnetwork solution, SKAN, is a next-generation privacy-aware mobile install attribution solution built around Apple’s SKAdNetwork framework.
SKAdNetwork, which was introduced by Apple with iOS 11.3 but significantly updated for iOS 14, offers tools for tracking iOS app installs without compromising the end-user's privacy.
However, SKAdNetwork decentralizes key performance data between advertisers, publishers, ad networks, and mobile measurement providers, making it more difficult for advertisers to access the data they need to make marketing decisions.
Singular's solution gathers the data that advertisers need using an information exchange between the end-user's device, the ad network, and Singular (as the MMP).
- The SKAdNetwork postback is sent from the device to the ad network and to the MMP.
- The conversion value and its meaning are sent from the MMP to the ad network.
- The campaign ID and its meaning are sent from the ad network to the MMP.
By leveraging the Singular SDK, Singular’s expertise in data aggregation, and complex integration with top ad network partners, SKAN re-centralizes SKAdnetwork marketing performance data in the Singular platform, making it available to your business's critical BI and reporting systems.
Learn more in our Introduction to Singular's SKADNetwork Solution.
How do I enable SKAdNetwork with Singular?
To enable SKAdNetwork based on Singular's SKAN:
Update your SDK/S2S integration to support managed SKAdnetwork mode. With managed mode, you don’t need to change how instrumented events are implemented. The only thing to ensure is that you’re using Singular’s latest SDK with iOS 14 support and setting config.skAdNetworkEnabled = YES before you initialize the Singular SDK:
// instantiate SingularConfig
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:apiKey andSecret:secretKey]; // add the skAdNetworkEnabled option and set it to YES config.skAdNetworkEnabled = YES; // start [Singular start:config];
If you're using Singular's S2S API to pass app events, you can enable SKAdNetwork tracking by following our guide here.
Identify your ad network partners that support SKAdnetwork, and work with them to understand their requirements before launching SKAdnetwork campaigns. Singular is working with top partners, including all self-attributing partners who have confirmed support for SKAdNetwork.Note: SKAdnetwork is new and many partners are still working to implement it. If you’re not sure if your partner supports SKAdNetwork, we encourage you to check in with them and share Singular’s integration guide to expedite the process.
Which ad network partners support SKAdNetwork with Singular?
Note: SKAdnetwork is still very new and partners are working to implement the technology. If you’re not sure if your partner is supporting SKAdNetwork, we encourage you to check with them (make sure they have Singular’s integration guide to expedite the process).
What is SKAdNetwork's "conversion value"? How do I configure conversion values for SKAdNetwork?
Apple's SKAdNetwork framework offers a single number, called a "conversion value", that an app can share with the advertising platform that is responsible for the app install.
There are various possible ways to encode multiple pieces of data that are relevant to performance measurement within this single value. The conversion value can be set when the app is first opened and it can be updated later when certain events occur (e.g., to add information about user purchases), but there are limitations to how many times it can be updated.
When using Singular's "managed mode" for SKAdNetwork, Singular manages the conversion value updates automatically, based on two configuration options that you set up in Singular's dashboard:
- The conversion model: how many different pieces of information you want to include in the conversion value.
- The measurement period: how long you want your app to wait before it shares the conversion value (24 hours to 7 days). Choosing a longer measurement period gives you more options for conversion models, but also means you will wait longer to receive any data about the app install at all.
How do I pick a conversion model and a measurement period for the SKAdNetwork conversion value?
Selecting the measurement period in SKAdNetwork is important because reported conversion values may be lost due to the randomness built into how often you can update conversion values passed into SKAdnetwork.
Singular reserves some of the bits in the conversion value as "keep-alives", used to update the conversion value just to reset the random timers that may end your measurement period earlier than expected. However, even with "keep-alives," measurement periods are not guaranteed, and their reliability depends on how active your users are in the days after they first open your app.
With Singular managing SKAdNetwork for you, the decision can be simplified as follows:
- First, think about the ideal (high-value) new users and what their first 7 days would look like. This should point you towards which conversion points are meaningful. Make sure these conversion points are reported as events in your Singular SDK implementation.
- Next, pick a conversion model that most closely represents this ideal user journey. You can start with revenue and retention models, but experiment with other models by using simulated reports.
- Finally, think how quickly the user can complete this ideal journey. Select the shortest measurement period possible in order to maximize your ability to capture this activity.
After you make your selections, the Singular SDK takes care of the rest, automatically setting the appropriate conversion value when your users engage with your app.
How do I set up my campaign IDs for SKAdNetwork?
The Campaign ID is another dynamic value in SKAdnetwork that can encode additional information about your campaigns. However, unlike conversion values, campaign IDs are controlled by the entity that serves the ad (e.g., the ad network). The ad network may have a standard mapping of campaign ID to campaign name, or may explore other innovative ways to encapsulate more meaning into the ID. Reach out to your partners to understand the campaign ID mapping options for use in SKAdnetwork.
As part of Singular’s integration with partners, campaign IDs and their meanings are automatically pulled into Singular reporting for supported partners.
What will be changing in my Singular reports after iOS 14?
Your reports about attributions made through "traditional" channels (IDFA and fingerprinting) will remain the same. In addition to these, Singular will offer a separate reporting page for SKAdNetwork-based attribution data. You'll be able to combine SKAdNetwork data with ad network statistics in order to calculate your campaign ROI and derive actionable insights.
Here are the supported fields for SKAdNetwork:
Dimensions and Campaign Properties:
Metrics and Cohort Metrics:
You can also configure specific custom events and their cohort periods according to your selected conversion model: