All Collections
Best Practices & Use Cases
Use Cases
How to create an app tracking pre-permission campaign?
How to create an app tracking pre-permission campaign?

Here are all the steps you need to take to create a pre-permission In-App message and add context to the App Tracking (ATT) prompt.

Baptiste avatar
Written by Baptiste
Updated over a week ago

Asking users to turn on app tracking is a sensitive task. Adding context and describing the benefits of app tracking for your users is key to optimising your App Tracking Transparency (ATT) opt-in rate. This is all the more important given the fact that the app tracking prompt can only be displayed once.

Batch In-App messages allow you to provide additional details on why app tracking is important for your app and to trigger that request at the best moment:

  • the first time users open your app,

  • after a meaningful action,

  • or when users match a specific target.

πŸ’‘ Have any questions on how Batch collects the advertising ID?


SDK version

First of all, make sure your app integrates the 1.16 version of the SDK or higher. It includes a new built-in action for In-App messages: batch_ios_tracking_consent.

On iOS 14, that built-in action will ask for app tracking consent using the AppTrackingTransparency framework. If users have already been asked and refused to consent, it will open the app's settings where tracking can be enabled.

That built-in action doesn't have any effects on iOS 13 and earlier, or if tracking has been disabled by the user at the device level. Your application needs to have an 'NSUserTrackingUsageDescription' key in its Info.plist or else iOS will crash it. You will find more information on built-in actions here.

Tracking ATT authorization status

In order to target specific users who didn't allow app tracking yet for your app, excluding users who disabled it system-wide, you will need to send the ATT authorisation status to Batch via a custom attribute.

Here is how to proceed:

  1. Use the trackingAuthorizationStatus property to check the app tracking authorization status (see more here).

  2. Send the values provided by iOS (see more here) to Batch using a custom attribute. You can track an attribute that will send a string value to Batch (e.g. att_status="not_determined" or "authorized", "denied", "restricted"). You will find the methods required by Batch SDK to track attributes here.

Make sure these attributes are sent to Batch as soon as the SDK starts and are updated when users interact with iOS app tracking prompt. You can see if your attribute is sent correctly to Batch using the debug tool.

Creating a pre-permission campaign

Once you have taken all the steps described in the prerequisites, you can start creating your In-App Campaign. Go to the dashboard β†’ In-App and click the "New campaign" button.


Here is how you can target all users on iOS 14 who didn't trigger the app tracking prompt:

Trigger conditions

Choose a trigger event that matches your need. You can trigger the pre-permission message the first time users open the app (ASAP), on the next session (New Session) or based on a specific action tracked in your app (see more here).

Make sure you set a frequency capping and/or a grace period to avoid showing that message too many times.

Message edition

Your In-App message layout and its content must be compliant with Apple's guidelines. Please read them carefully before creating your campaign: Apple Human Interface Guidelines - Accessing User Data.

Here are a few examples of what you need to take into account to avoid misleading or confusing users:

  • In-App theme: Your In-App message must offer only one action, which must display the system prompt, so it is clear to users that this is the only action they can take. You can create a new In-App theme with one CTA to match Apple requirements in your dashboard Settings β†’ Themes.

  • Body: The body of your In-App message should only describe the benefits of app tracking for your users. You should not offer incentives, display a screen that looks like a request, display an image of the alert or annotate the screen behind the alert. Please review the examples provided by Apple in the Human Interface Guidelines and in the App Store Review Guidelines.

  • CTA: Don't use words that let users think they are granting permission by clicking the CTA of your In-App message. Instead, use words that suggest the permission prompt will be displayed once they click the CTA (e.g. next, continue, etc).

Here is what a pre-permission campaign looks like if you use a full-screen In-App format:

Tracking the results of your campaign

As with any other In-App campaign, you can track the results of your campaign from Batch dashboard (see more here). You can also use one of Batch analytics dispatcher to track the results of your campaign in your favourite analytics tool.

This article belongs to Batch's FAQ. Need more help? Find insightful articles, documentation, case & market studies, guides, and even more in our website's Resources section on and our blog.

Did this answer your question?