Apple released iOS 14.5 to the public this week. As part of the update, Apple’s App Tracking Transparency (ATT) framework now applies to all applications as of April 26, 2021.

Targeted advertising is a crucial part of many app business models, including gaming apps and digital content apps. Apps that still want to collect user-level data through the Identifier for Advertisers (IDFA) must use the ATT prompt to get tracking permission for data that’s collected in the app and used for tracking purposes. Apple defines tracking as linking your data to other company’s data for all advertising-related purposes or sharing your data with data brokers (with an exception for fraud, security, and consumer reporting agency).

You can choose when to display the ATT prompt in your app, but you must request permission to track before tracking occurs. The ATT prompt is triggered using requestTrackingAuthorization(completionHandler:). This will display a pop-up that asks users if they want to allow tracking.

Use In-App Messages to Provide Context

You can leverage our in-app messaging (IAM) product to create a better ATT prompting experience. By setting up an IAM pre-prompt, you can provide context to users before Apple's native ATT prompt appears and increase their likelihood of opting in.

This pre-prompt is different from a pre-permission prompt. Apple has rejected some apps that show a pre-permission prompt that requires users to opt-in before showing the official ATT prompt. Prompts that disguise the opt-in decision, mislead users, or disrespect their choice by sending users additional requests after they've denied permission are likely to be rejected under Apple's new guidelines. To avoid ambiguity and earn user's trust, make sure that your prompt seeks to educate your user and does not pressure them to comply.

You should use the IAM pre-prompt to tell users why you'd like to track their behavior and the potential benefits that tracking provides before triggering the official ATT prompt. Although the ATT prompt requires a usage-description string as part of the prompt, this custom text has limited space for you to provide an explanation. Instead, you can use an IAM to provide more context so your users can make an informed decision.

To accomplish this, you'll need to incorporate the prompting code with InAppMessageClickHandler. First, attach a send tag action on the IAM button, which will apply a tag, such as att_prompt. Then, OneSignal’s InAppMessageClickHandler will check for the tag and trigger Apple’s ATT prompt when detected. Example code would look similar to:

OneSignal.setInAppMessageClickHandler { (action) in
        if action.tags?.tagsToAdd?["att_prompt"] != nil {
            if #available(iOS 14, *) {
                ATTrackingManager.requestTrackingAuthorization { (authorizationStatus) in
                    if authorizationStatus == .authorized {
                        // User has accepted permissions and you can proceed

Tips to Increase Tracking Opt-Ins

Getting users to opt in to tracking can be challenging. We’ve provided a few suggestions to help you increase your opt-in rates. Ultimately, you want your user to give permission because they understand the value that it can provide, not because they feel pressured to comply.

Give a Reason

By default, most people are wary of being tracked. You can conduct user research with some users to better understand their concerns and what would help them agree to tracking. Then, apply those learnings to educate your users so they understand what is being tracked and how that data is being used. It’s up to you to provide clear context on the benefits of opting in. Be transparent and concise to help strengthen trust in your app.

For example, gaming companies can explain how ads enable them to offer the game for free, or media companies can clarify how ads keep content accessible and ungated. Many apps also use this data to provide a more personalized experience that is tailored to each user. Remember, it is against Apple’s policy to incentivize users to consent to tracking or gate functionality for users who decline tracking.

Time it Right

Determining the right time to show the tracking prompt can be a delicate balance. To figure out when to trigger the prompt, it's important to understand your user journey.

If your app requires multiple permissions (for push notifications, location tracking, etc.), it may make sense to group the prompt during the onboarding flow along with other permissions. For other apps, it may make more sense to delay showing the prompt until a user has had the opportunity to experience the app and understand the value that tracking might provide. For example, a news app may want to trigger the prompt after a user has indicated interest in certain topics and explain how enabling tracking will help personalize the app experience. Another option is to trigger the prompt after showing an untargeted ad and then ask if the user would like to improve the ad experience.

When you do decide to trigger the prompt, make sure you avoid interrupting the user experience. You wouldn’t want the prompt to show when a player is in the middle of a game or a shopper is in the middle of a purchase.

Test and Learn

Different tactics will work better depending on your app, your customers, and how your customers interact with your app. We recommend testing your pre-prompt on a small portion of your audience to learn from their prompting experience and discover what messaging works best.

You can test key parts of the prompt, including the copy, tone of voice, call-to-action (CTA), design layout, background style, whether to include an image, when to show the prompt, pre-prompt size, and more.

If the user does not opt in via ATT, you can turn to Apple’s SKAdNetwork, which aggregates performance data. A better alternative may be to maximize the value of your owned channels and invest in communicating directly with your customers through push notifications, in-app messaging, SMS, and email.

Have questions about how to implement an ATT pre-prompt using in-app messaging?

We're happy to help you navigate these changes. Reach out to us for additional support.

Connect with Support