The integration of Batch SDK is required before you can start sending your first push notifications and scheduling In-App messages. In this article, we will clarify the purposes of Bath SDK and how Batch SDK works.
What is an SDK?
"SDK" stands for Software Development Kit.
An SDK is a set of tools developers can use to create apps for a specific platform or to add features to their apps without having to redevelop them from scratch. Apps usually integrate a wide variety of third-party analytics and marketing SDKs.
What purpose is Batch SDK serving?
Batch's SDK provides all the features your app needs to handle push notifications, In-App messages, and more.
Here is a non-exhaustive list of the purposes the SDK serves on iOS and Android:
Analytics: registers new installs, sends app usage data and feedback on push and In-App interactions (e.g. push displayed, opened, In-App message dismissed, etc).
Data collection: collects and sends native/custom data (attributes, tags and events) to Batch servers to improve your segmentation.
Push notifications: collects and sends the push token to Batch servers, required to deliver a push to your users' devices. On Android, the receiver included in the SDK is in charge of receiving and displaying the notifications.
In-App messaging: pulls the list of In-App campaigns matching your users' install from Batch servers and displays the In-App messages.
Inbox: Provides the history of push notifications sent to the install or the user ID attached to the install. This is useful if you want to add a notification centre to your app.
What are the impacts of disabling Batch SDK?
Disabling Batch SDK by default
You can disable Batch SDK by default and start it when you need it, later in the user journey (see more here: iOS/Android). This is helpful if you are using a Consent Management Platform (CMP) and don't want to start collecting data before obtaining your users' consent.
Batch will only detect in the analytics and be able to contact users who started the SDK once. The rest of your users won't be detected by Batch. You won't be able to reach them using push notifications or In-App messages.
Allowing users to disable Batch SDK in your app settings
If you want to give your users more control regarding their privacy, you can give them the option to disable Batch SDK in the app settings (see documentation: iOS/Android).
A) Disabling the SDK
Batch SDK will not start anymore. Here are the impacts of the SDK deactivation:
Analytics: Your users will no longer be detected by Batch when they open the app or open a notification.
Data collection: Batch will stop collecting native and custom data for these installs.
Push notifications: iOS users opt-in to push notifications will keep receiving alerts because they are displayed directly by the OS and their push token remains valid even after Batch SDK opt-out. They will need to disable push notifications manually from iOS system settings if they want to stop receiving alerts. On Android, Batch SDK receiver is in charge of receiving and displaying push notifications. Disabling Batch SDK will also disable push notifications. If you are looking for a way to simply disable push notifications, we recommend you read that guide: iOS/Android.
In-App messaging: Your users won't see any In-App messages. In-App messages are displayed by Batch SDK.
Inbox: The content of your notification centre won't be updated if you rely on Batch Inbox.
If users re-enable Batch SDK later from your app settings, analytics, data collection, push notifications, In-App messages and the Inbox feature will work again.
B) Disabling the SDK and wiping the data
In addition to disabling the SDK, you can also send a request to delete the data attached to the installation. This will wipe the data locally and request a remote data removal for the matching Installation ID. You should only use that method if you are fully aware of the impacts on your users.
Batch will blacklist the advertising ID attached to the installation for one month following the data removal.