At the end of June 2020, Apple announced the release of its App Tracking Transparency framework (ATT) as part of iOS 14.
You will now need to obtain the user’s permission through the AppTrackingTransparency framework in order to access advertising identifiers (IDFA).
Good to know: iOS 14's new data tracking policy has a very limited impact on Batch since we make marginal use of IDFA.
Our team has compiled all pieces of information you will need to ensure your integration is compliant with iOS 14, based on Apple’s official guidelines.
Does Batch Collect Advertising IDs and Why?
Batch only collects advertising IDs (IDFA) if all these conditions are met:
Your app integrates the AdSupport library/dependency,
And Batch's setUseIDFA method is not called with "false" as a parameter, allowing the SDK to collect the advertising ID,
And your users haven't globally turned on limited ad tracking on their device (Settings → Privacy → Advertising → Limited Ad Tracking).
Please note Apple only allows the collection of the IDFA if you explicitly use this ID for advertising purposes. If this is not the case, you should disable the advertising ID collection by Batch in your app by calling the following method: setUseIDFA
If you don't use IDFAs to target users, we recommend you expose a native Batch debug ID in your app instead of collecting the IDFA, which should be more reliable: Retrieving the installation id
Also note that from version 1.18 of our SDK, Batch implements the "Find my installation" feature automatically. Batch will copy the Installation ID to the clipboard when the application appears in the foreground 4 times within 20 seconds. Read more here: iOS / Android
Can I Use Other Debug IDs Besides IDFAs?
Yes, you can use two other identifiers:
The Installation ID: This is an anonymous ID generated by Batch when users start the app for the first time. If users uninstall and then reinstall the app, a new installation ID will be generated.
The Custom User ID: This is an ID your app shares with Batch to identify a logged-in user. If implemented correctly, anonymous users (including logged-out users) do not have any Custom User ID tied to their installation.
We strongly recommend you display the installation ID in the UI of your app:
For your development apps, we recommend you integrate the Batch debugger that will show all the information you need to debug your integration (e.g. API key, installation ID, custom user ID, list of loaded In-App Campaigns, etc).
In production, you can easily get the installation ID generated by Batch SDK and show it in your app (see more here). You can display it in the settings of your app, in your bug report contact form, when an easter egg is triggered, etc.
How Can I Continue to Collect IDFA With Batch?
To obtain the user's consent, you will need to trigger the new ATT app-tracking authorization request in your app. Once the user accepts this request, Batch will collect your user's IDFA.
The 1.16 version of Batch SDK includes a built-in action that allows you to trigger the ATT app-tracking authorization request after a click on an In-App message's CTA.
Does My App Need to Implement ATT Even If It Doesn't Use IDFA?
Apple provides the following definition of tracking (see here for more details):
Batch is not a data broker and does not perform grouping/cross-checking of data between apps that integrate Batch SDK. Apart from the IDFA, the sharing of data with Batch shouldn't be subject to the acceptance of the ATT tracking authorization request.
Do not hesitate to reach out to your Apple contacts to validate your implementation. You also may need to implement ATT to be able to continue to use other services ( e.g. Attribution tools, advertising tools, etc).
Is Batch Compatible With iOS 14?
Yes. Batch's SDK works on iOS 14 without requiring any modifications. The 1.16 version of our SDK adds explicit support for iOS 14, as well as a built-in action that facilitates the collection of the IDFA if you need it.