Skip to main content
All CollectionsGetting startedMobile SDK implementationBatch SDK implementation
How to integrate Batch into my native iOS or Android app?
How to integrate Batch into my native iOS or Android app?

Don't know where to start? We have prepared a simple step-by-step guide on how to integrate Batch into your iOS or Android app.

Baptiste avatar
Written by Baptiste
Updated over 6 months ago

1. Account Creation

You can create an account now at https://batch.com/register.

We recommend you invite your team members from the account manager section.  In the bottom left corner of your dashboard, in "Manage Team" → "Invite user".

2. SDK Integration

Once your account is created, add your first apps to the dashboard and follow the instructions described in the documentation: iOS / Android / Cordova / React Native.

  • SDK integration

  • Push setup

  • In-App messaging setup

There are several extra steps we recommend you to take after a basic integration:

  • Rich push notifications: On iOS, add support for rich push notifications.

  • Provisional authorization: On iOS 12, you can add support for provisional notifications to push users who did not opt-in for push notifications.

  • Notifications icon: On Android, set a small icon and a custom accent color. More information is available here for Cordova / React Native.

  • Analytics integration: Make sure you integrate an event dispatcher to connect Batch to your analytics tool and improve the campaign conversion tracking (e.g. Google Analytics, Firebase Analytics, AT Internet, etc). More information here: iOS / Android.

  • Improved debugging: Display safely in your app Batch debug id to help users report issues with push notifications or allow your team to add their device as a test device (iOS / Android).

3. Custom Data Collection

In addition to the data the SDK collects natively in your app, you can collect custom data to improve your user segmentation.

Custom User ID

Batch can collect a unique user ID (iOS / Android / Cordova / React Native) that will be attached to your user installation. This is a recommended step if your app has a login wall or if users can create an account inside your app.

You can use that Custom user ID with:

  • The Transactional API, to send 1-to-1 push notifications to one or several user IDs (e.g. package delivery notification, etc) ;

  • The Custom Data API sends custom data (attributes or tags) to Batch on a user ID server-side.

  • The Custom Audience API creates static segments from another CRM or a third-party solution. You will be able to use these segments in your push and In-App automations.

User ID collection also allows your teams to target with one click users who are/are not logged in (see has custom user ID).

Custom Language/Region

Batch automatically detects the language and the country of your users’ devices. If users can select a region or a language from your app settings, we recommend you overwrite the values automatically detected by Batch: iOS / Android / Cordova / React Native.

Tracking Transactions

Batch allows you to track In-App transactions (e.g. purchase, etc) without any currency attached. This is useful if you have an e-commerce app and want to see the revenue generated every day in the app. You will also be able to target users who haven't made any transactions in the app (see transaction tracked).

You will find more information on how to track transactions here: iOS / Android / Cordova / React Native.

Tracking User Location

You can also natively track a user's location in order to send geotargeted push notifications or trigger In-App messages in a specific area using the last location attribute. You will find more information on how to track location here: iOS / Android / Cordova / React Native.

Tagging Plan

In addition to the data collected natively by the SDK (e.g. last visit date, city, etc), you can collect additional information on your users:

  • User data: Attributes (e.g.: is_premium = true) or tags (e.g.: favorite_sports = ["football", "rugby", "tennis"]).

  • Actions: Events, triggered when users perform a specific action in your app (e.g.: read an article, item added to the cart, etc). For every action, you can collect contextual information called "label" (e.g.: the category of the read article, the brand of the item added to the cart, etc).

That information can come from:

  • the SDK integrated into your app,

  • or your servers, through the Custom Data API. This is useful if the information you need to track is not available in the app or if it can change when users don't open the app (e.g. when they purchase an item on your website, etc).

The tagging plan is the list of all the attributes, tags and events collected by the SDK or sent to Batch through the Custom Data API. You can use that data to segment your userbase, trigger In-App messages or automatically replace values in your messages (e.g. {{c.firstname}} check out our new offer). We strongly advise you against using a tagging plan coming from an analytics tool or another CRM since it may not work correctly with Batch.

Our team can help you build your first tagging plan in 3 steps:

  1. Brainstorming: Feel free to send us all the information that will help us build a first tagging plan. This includes existing tagging plans from other tools, campaign ideas or credentials if the app requires specific account creation. 

  2. Proposal: Our team will send you the first version of the tagging plan we will discuss it together and modify based on your feedback.

  3. Approval and integration: Finally, you will need to send the tagging plan to your developers or your agency for integration.

🚧 Important note: We recommend against using an existing tagging plan made for another tool. Our team can help adapt your existing tagging plan, to make sure you will be able to manage all your cases with Batch.

4. Test & Release

You can also use the Debug tool from Settings → Debug at any moment to test the integration of the SDK and the data collection.

Also, we recommend you follow that checklist to test your integration: iOS / Android.

On the Enterprise plan or as an option, you can send test builds to our team and create a test In-App automation. We will run a full test of the integration to make sure everything is working as expected.

5. Token Migration

Batch can import existing tokens in case you migrate from another push provider. Once the app is live with Batch’s SDK, you can send us an export in the format described in the documentation. Batch will automatically delete the invalid tokens.

A new "Imported" segment will be available for targeting and imported users will be progressively analysed and transferred to other Smart Segments after their first session.

6. APIs Setup

There are several APIs you can use in your app to cover all your marketing needs:

  • The Custom Data API sends custom data on specific custom user IDs and improves your campaign targetings.

  • The Custom Audience API sends Batch lists of user IDs for your push and In-App campaign targeting. Your own segmentation will then be available on the dashboard as a Custom Audience.

  • The Transactional API allows you to send notifications to a specific token or custom user ID based on events in your back-end (e.g. "You have a new friend request").

  • The Push Campaigns API or the In-App Campaigns API sends push notifications in mass to your users or schedules In-App automations remotely (e.g. from a CMS, etc).

  • The GDPR API requests a data report containing a specific user's data or triggers the removal of the user's data.

Depending on the use cases you plan to set up, we can help you through the use of these APIs.

Need Assistance?

Our technical team is reachable via the “live chat” in the bottom right corner of every page of the dashboard (median response time lower than 3 minutes from 9 am to 7 pm on working days).


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 batch.com and our blog.

Did this answer your question?