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.

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-mode
☁️ Cloud-mode

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

This destination requires Device-mode for Mobile data. Follow the steps above 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.

Adding Batch to the integrations object

To add Batch to the integrations JSON object (for example, to filter data from a specific source), use one of the 1 valid names for this integration:
  • Batch

  • Questions? Need help? Contact us!
    Can we improve this doc?
    Email us:!