Batch Destination

This destination is currently in beta. If you are interested in joining, let us know!

Segment makes it easy to send your data to Batch (and lots of other destinations). Once you've tracked your data through our open source libraries we'll translate and route your data to Batch in the format they understand. Learn more about how to use Batch with Segment.

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 via Segment dashboard.
  • Enter your Batch LIVE API Key. You can find it in your dashboard, under ‘settings’.

Events tracked via 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 leverage the native SDK through Segment, follow the instructions outlined here for Android and here for iOS.

Supported Sources and Connection Modes

📱 Device-based
☁️ Cloud-based

To learn more about about Connection Modes and what dictates which we support, see here.

This destination requires a Device-based Connection Mode for Mobile data. Follow the steps above to ensure you have packaged the Batch SDK with Segment’s.


Segment lets you change these destination settings via your Segment dashboard without having to touch any code.


You can find your API Key in your app’s settings, in the dashboard

Allow collection of advanced device information.

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.

Toggles whether Batch is allowed to collect advertising IDs

GCM Sender ID

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.

If you have any questions or see anywhere we can improve our documentation, please let us know or kick off a conversation in the Segment Community!