Following recent communications from Apple, this article is currently being updated.
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'll need to ensure your integration is compliant with iOS 14, based on Apple’s official guidelines.
Important note: Apple has yet to provide detailed information regarding ATT either during the recent WWDC conference or in their public documentation. Until Apple publishes the "Golden Master" (GM) version of iOS 14, guidelines may still evolve. It is also impossible to distribute an app that uses the new APIs related to iOS 14 before the release of this GM version. We will update this article and all related information as soon as we get more details on this topic.
Does Batch Collects 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).
Batch uses the IDFA for debug purposes. The IDFA simplifies integration tests because it's a device-level ID that remains constant even after users uninstall the app. Users can easily find their most recent install and send a test push to their device using their advertising ID (see more here):
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.
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. The Batch SDK works on iOS 14 beta 5 without requiring any modifications. Our Product Team is studying the opportunities for product improvement created by the new features and APIs of iOS 14.
Depending on the features added to our roadmap, an SDK update may be released after iOS 14 release, but it will not be mandatory to ensure the compatibility of your app with iOS 14.