Batch Destination

Destination Info
Connection Modes
Device-mode Cloud-mode
Web Web
Mobile Mobile
Server Server

The integration code is open sourced on GitHub. Feel free to check it out: iOS, Android.

Getting Started

  • supports the screen, track, identify and group methods.

  • Make a account.
  • Turn on using Segment dashboard.
  • Enter your Batch LIVE API Key. You can find it in your dashboard, under ‘settings’.

Events tracked using Segment’s track/screen will automatically be tracked. Identify and group calls will also be mapped to Batch user data.



Add the following dependency in your build.gradle:

compile ""

Import the integration:


Then, add the factory to your Analytics instance:

Analytics analytics = new Analytics.Builder(this, "write_key")



Add the following Cocoapods dependency:

pod 'Segment-Batch'

If you integrate in a Swift project or have use_frameworks! in your Podfile, you need to use the following to work around due to a limitation with Cocoapods:

pod 'Batch'
pod 'Segment-Batch/StaticLibWorkaround'

Then, add the integration factory in your Analytics instance:

#import <Segment-Batch/SEGBatchIntegrationFactory.h>

SEGAnalyticsConfiguration *config = [SEGAnalyticsConfiguration configurationWithWriteKey:@"MySegmentWriteKey"];
[config use:[SEGBatchIntegrationFactory instance]];
[SEGAnalytics setupWithConfiguration:config];


When you call screen in your mobile app, we send a screen view to an event named SEGMENT_SCREEN. The screen name will be tracked as the event’s label.


When you identify a user, we’ll pass that user’s information to Batch as the custom user identifier. Batch supports tracking anonymous users, but not through Segment’s anonymousId.

Tracked events are attached to the installation ID, and the installation ID itself can be attached/detached to a user at a later date, with no data loss.


When you track an event, we will send that event to Batch after converting the name to fit Batch’s event naming rules.

For example, an event named Ad Shown will become AD_SHOWN. Note that this means that event names longer than 30 characters will be truncated. The events title property will become the event’s label.


When you call group, we will set the group ID in a user attribute named SEGMENT_GROUP.


All of our supported Segment integration features will work automatically, with no action or specific properties required on your side.

Batch’s other features are available directly by using the native SDK, which comes bundled with this integration.

To use the Batch native SDK through Segment, follow the instructions for Android and instructions for iOS.


Segment lets you change these destination settings from the Segment app without having to touch any code.

Setting Description
string. You can find your API Key in your app’s settings, in the dashboard
Allow collection of advanced device information. boolean, defaults to TRUE .

Toggles whether Batch can use all of the device information it supports. All of this info is anonymous, but some might want to disable it under strict privacy rules. If disabled, some targeting options in your dashboard will stop working correctly.
Allow advertising ID collection. boolean, defaults to TRUE .

Toggles whether Batch is allowed to collect advertising IDs
GCM Sender ID
string. Android only. You can find out how to get your GCM sender ID here. Note that you shouldn’t change this value once you’ve set it: doing so will end up in push delivery issues.

This page was last modified: 08 Mar 2022

Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
Create free account