Only this pageAll pages
Powered by GitBook
1 of 25

Integrations

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Analytics

How to connect Batch to Mixpanel?

Learn how to track your Batch push and in-App campaigns in Mixpanel.

As a marketer what you want is a global and cohesive view of your entire traffic sources & marketing campaigns inside your analytics suite. Without having to compromise on your effective working habits.

Using the Batch x Mixpanel integration lets you track your entire push notifications and in-app messaging inbound traffic sources inside Mixpanel like you would with any other traffic source.

1

Installing the Mixpanel Dispatcher in Your Application

The Mixpanel dispatcher uses the from your campaign to dispatch a new set of data to Mixpanel.

Once the dispatcher is installed, you will be able to track related to your push or In-App messaging campaigns on Mixpanel.

If you haven't already installed the Mixpanel event dispatcher, please read our technical documentation for and .

2

Tracking your campaigns with UTM tags

a. Tracking a push campaign with a UTM tag

3

Testing your campaign tracking

The Live View section of the Mixpanel dashboard allows you to see all events tracked.

You can test the following events :

  • Push notification displayed: Triggered when a push notification is displayed (only available on Android).

The dispatcher gathers the values of utm_campaign, utm_source and utm_medium from the deeplink URL and from the custom payload of your campaign.

The tags utm_source and utm_medium are optional because they have a default value of batch and push accordingly.

You can add utm_content only in the deeplink URL in case your push notification has several different buttons.

Adding UTM Tags in a push notification

b. Tracking an In-App Campaign or Mobile Landings

The dispatcher gathers the value of utm_campaign from the field Tracking ID of your campaign.

You can't customize the $source and utm_medium tags, they have a value of batch and in-app accordingly.

You can add utm_content only in the deeplink URL in case your in-app message has two different buttons.

Adding UTM Tags in an InApp
  • Push notification clicked: Triggered when a push notification is clicked.

  • Push notification dismissed: Triggered when a push notification is dismissed (only available on Android).

  • Message showed: Triggered when an in-app or landing message appears on the screen.

  • Message closed: Triggered when an in-app or landing message is explicitly closed by the user (using the close button or a dismiss CTA/Global tap).

  • Message auto-closed: Triggered when an in-app or landing message is closed by the auto-close timer.

  • Message clicked: Triggered when an in-app or landing Click-To-Action is clicked or when the in-app/landing is global tapped (except if the CTA/Global Tap is a dismiss, then a closed event is triggered).

  • Testing with the Live View section
    UTM tags
    different types of events
    Android
    iOS

    Creating a cross-platform report on Google Analytics using Batch and the Firebase event dispatcher

    Batch + Firebase + Google Analytics = Free cross-platform reporting tool !

    During the summer of 2019, Google announced a new feature allowing marketing teams to merge analytics from mobile applications and websites into one tool. The feature is now available as a beta on Google Analytics new properties App + Web. It gives access to the new Analysis hub, where both data from your website and your applications are available.

    Today we are going to set up your Firebase and Google Analytics accounts to make these new features available with the data of the Batch SDK.

    1

    Wiring up the Batch SDK to Firebase

    First, we need to wire up Batch SDK to Firebase. The easiest way to achieve this is to install the Firebase Events Dispatcher into your application. This small plugin will make Batch's data available on your Firebase dashboard. More details are available in our technical documentation for and .

    2

    Linking your Firebase project to your Google Analytics

    Once your Firebase project is created and set up with the Batch SDK (and the dispatcher installed), you need to link your Firebase project to a Google Analytics property.

    Go to your , select your project, click on the โš™๏ธ in the top left corner, and then on Project settings. On the new page, click on the Integrations tab.

    3

    Merge my website and app data

    Go to your , you should see a new property in your account, labelled as App + Web:

    Select that new property, then click on โš™๏ธAdmin in the bottom left corner, then click on Data Streams in the property column. Under the All data streams tab, you should see your applications (Android and/or iOS) from your Firebase project (if you do not have any applications in your Firebase project, then click the Web

    4

    Create and tag your campaigns

    Now that everything is set up, you need to send campaigns to create data on your Firebase and Google Analytics project.

    5

    Use Batch data on my dashboard

    Now that you have data on your dashboard, we will need to flag specific events and parameters from the Batch SDK. To achieve this, go back to your , and click on Analytics > Events in the left menu.In the list you should see events starting with batch :โ€‹

    If you canโ€™t see them, make sure the Firebase dispatcher is correctly installed and working (you can send a test push from the Batch dashboard to create events on your Firebase Dashboard).

    How to connect Batch to Firebase Analytics?

    Learn how to track your Batch push and in-App campaigns in Firebase.

    Firebase Analytics, and in its latest form, Google Analytics for Firebase, is an extensive analytics solution that enables brands to measure relevant KPIs on their app and how their users interact with it. Those key metrics will enable Batch customers to get clear performance data of their campaign, and also better understand the behaviour of users in order to encourage conversion scenarios within the app.

    You can easily establish this connexion by completing the following steps:

    1

    Installing the Firebase Dispatcher in Your Application

    The Firebase dispatcher uses the (like on a lot of Google services) from your campaign to dispatch a new set of data on Firebase.

    Once the dispatcher is installed, you will be able to track related to your push or In-App messaging campaigns on Firebase.

    If you haven't already installed the Firebase event dispatcher, please read our technical documentation for and .

    Note: The since October 2019 for non-Google Analytics 360 customers, meaning if you still use it on a free Google Analytics account, no data will be available and you must migrate to Firebase.

    2

    Tracking campaigns with UTM tags

    a. Tracking a push campaign with a UTM tag

    3

    Testing your campaign tracking

    In order to test whether your Batch campaign data is correctly being tracked, you can use Firebase's Debug feature as follows:

    How to connect Batch to Piano Analytics

    This guide explains how to enable tracking of Piano Analytics campaigns to track Batch's web and mobile campaigns.

    Piano Analytics is an advanced analytics platform that enables you to:

    • Collect and leverage high-quality data across your websites and applications

    • Use a powerful and flexible platform to improve your performance

    • Integrate with a rich ecosystem of partners, including Batch


    A. Track Web Push notifications

    Track web push notification opens in Piano Analytics by adding tracking parameters to your deep links.

    1

    Use AT or UTM Parameters in Deep Links

    AT parameters: Add at_medium and at_campaign parameters directly to your deep links or in the payload. Follow Piano Analytics for formatting and parameter usage.

    UTM parameters: Use UTM parameters if you configure Piano Analytics to recognize them. Refer to the Piano Analytics for configuration steps.

    2

    Add Parameters to Your Deep Link


    B. Track Push and In-App Messages

    Use Batch's Piano Analytics event dispatcher to send campaign data from your mobile app to Piano Analytics.

    Event dispatchers are available starting from Batch SDK version 1.19.

    1

    Install the Piano Analytics Dispatcher

    Install the dispatcher for Android or iOS. Refer to the technical documentation to configure the dispatcher in your mobile app ( / ).

    The dispatcher extracts AT or UTM parameters from the campaign and sends the data to Piano Analytics.

    2

    Understand Piano Analytics Traffic Attribution

    Piano Analytics uses the first detected campaign per session as the Traffic Source. However, Batch can trigger multiple campaigns during a single session.

    How can I track campaign retargeting with AppsFlyer?

    Yes! Thanks to a quick client-side integration, you will be able to see campaigns opens with AppsFlyer.

    AppsFlyer is extensive analytics that helps brands keep track of their attribution and engagement campaigns while providing a large variety of analytics.

    This client-side integration will allow you to retrieve Batch push notifications that opens in the Retargeting section as in the screenshot below:

    Find your information in the retargeting section
    1

    Enabling AppsFlyer SDK to pick up opens

    Follow the steps described in the official AppsFlyer documentation. The AppsFlyer SDK will be able to track push opens: / .

    2

    Adding AppsFlyer data in the push payload

    Simply add these few lines in your Batch Custom Payload to enable the notification to be tracked down by the AppsFlyer SDK:

    3

    Record push notifications data on AppsFlyer

    AppsFlyer allows you to record push notifications as part of retargeting campaigns by calling the methods documented here: /

    a. My Firebase project isnโ€™t linked to GA

    Depending on your Firebase configuration, you might not have enabled Google Analytics for your project.

    Enable Google Analytics

    If you see the option Enable on the card, then you need to choose or create a Google Analytics account on which your applications' data will be linked (a new property App + Web will be automatically created in the selected Google Analytics account).

    b. My Firebase project is linked to GA

    If your Firebase project is already linked, you need to make sure to upgrade your link to gain access to the new beta features.

    Upgrade your link

    To do so, click on Manage then under your Google Analytics configuration, a banner will offer you to Begin upgrade, click on it, then choose or create a Google Analytics account on which your applications' data will be linked (a new property App + Web will be automatically created).

    Your Google Analytics property

    Note: If you can't see the banner, it's probably because your Google Analytics link has already been upgraded, simply move on to the next step.

    button).

    Click on the Web tab, and move on to the next step.

    a. I donโ€™t have Google Analytics on my website

    If you donโ€™t have Google Analytics on your website, you can add one now, data will be directly merged with your applicationโ€™s data.

    On top of the form, fill in the Website URL and Stream name of which you want to track data and then click Create Stream.

    Optional: Click on the Web tab, and under Tagging Instructions > Add new on-page tag follow the instructions to add Google Analytics to your website. If you donโ€™t know how to do it, you can skip this step but keep in mind that your website data wonโ€™t show on your dashboard.

    b. I already have Google Analytics on my website

    If you already have Google Analytics tracking your website, you need to fill in the exact same Website URL as in your property (you can find it under โš™๏ธAdmin > Property Settings > Default URL), also fill in the Stream name input, then click on Create stream.

    Now under Tagging Instructions > Use existing on-page tag, expand the Google Analytics block and follow the instructions to add your new Measurement ID to your existing property.

    Congratulations! You have successfully set up the new Google Analytics dashboard App + Web. You can now access data from your website and your app on the same dashboard, take a look around, for example under Technology in the left menu, you can now inspect platform-specific metrics.

    Inspect platform-specific metrics

    Note: you may have to wait 24 hours to see website data in your dashboard, but if you can see the Technology > Web option in your menu, your configuration is done.

    a. Configure parameters

    For each Batch event, a set of parameters is available (corresponding to your UTM tags), to set one click on the three dots at the end of the line of any batch event and click Edit parameter reporting, in the modal, you can add any of the following parameters (always as Text type).Here is an example of the batch_in_app_show event after being configured:

    Set up parameter reporting

    Note: youโ€™re limited to 50 text parameters per Firebase project, so you should only set up parameters that you want to use in your reports, if you donโ€™t know which one to use yet, start with the campaign parameter and move on to the next step.

    b. Create my first report in Google Analytics

    Go back to Google Analytics dashboard, click on Analysis > Analysis Hub, then click on the + card on top of the page to create a new analysis.In the left menu click on the + next to Dimensions, in the list showing on the right side of the screen you should find the parameters you have added on the Firebase dashboard, check them to add them to your analysis.

    Add your dimensions in your analysis

    You can now use those dimensions to draw graphs and tables!

    Create graphs and tables
    Android
    iOS
    Firebase dashboard
    Google Analytics dashboard
    Firebase dashboard
    Your analytics account
    Your analytics account
    Find your Batch events
    Find your Batch events
    The dispatcher gathers the values of utm_campaign, utm_source and utm_medium from the deeplink URL and from the custom payload of your campaign.

    The tags utm_source and utm_medium are optional because they have a default value of batch and push accordingly.

    You can add utm_content only in the deeplink URL in case your push notification has several different buttons.

    Tracking a push campaign with UTM tags

    b. Tracking an In-App Campaign or Mobile Landings

    The dispatcher gathers the value of utm_campaign from the field Tracking ID of your campaign.

    You can't customize the utm_source and utm_medium tags, they have a default value of batch and in-app accordingly.

    You can add utm_content only in the deeplink URL in case your in-app message has two different buttons.

    Tracking an in-app Campaign or Mobile Landings

    โš ๏ธ Please note that the event dispatchers are only available from Batch's 1.15 SDK version and above. If you use an older version of Batch's SDK you can integrate the Firebase Batch plugin. However, this only allows you to track push opens and retrieve the campaign's UTM parameters.

    Firebase plugin integration for older SDK versions

    The plugin's job will be to read Batch's notifications clicks and extract the right parameters before sending them to Firebase.

    Android:

    Start by copying the FirebaseBatchIntegration class to your project. The code can be found here :

    https://github.com/BatchLabs/code-snippets/tree/master/integrations/firebase/android

    As shown in the BaseActivity example of the gist, you will have to call FirebaseBatchIntegration.handleIntent in every activity, both in onCreate and onNewIntent.

    iOS:

    Copy the FirebaseBatchIntegration class in your project. The code can be found here (Swift 4.2):

    https://github.com/BatchLabs/code-snippets/tree/master/integrations/firebase/ios

    Then, as shown in the gist, simply call

    in applicationDidFinishLaunchingWithOptions before Batch.start(withAPIKey:)

    If you call this method after starting Batch, the integration may work incorrectly.

    Once you integrate the plugin, you can add your UTM parameters to your campaign's deeplink as described in section 2.a of this article.

    a.Turning on the analytics debug mode

    Android

    Execute the following command to turn on the analytics debug mode on your Android device:

    Once you finish debugging, make sure you turn off the debug mode using this command:

    iOS

    Specify the following line argument in Xcode to turn on the analytics debug mode on your iOS device:

    Once you finish debugging, make sure you turn off the debug mode by specifying this line argument in Xcode:

    b.Testing your integration

    On Firebase, go to Analytics โ†’ DebugView. You should see your device and Batch events as soon as you receive, open a push or display, close, click an In-App message.

    Debug view
    UTM tags
    different types of events
    Android
    iOS
    Google Analytics SDK has been sunsetted

    Append your tracking parameters to the push campaign deep link. For example:

    AT parameters must be under 250 characters and must not include special characters. Refer to the Piano Analytics documentation for formatting rules.

    After implementation, Piano Analytics will track users who open the notification. The source of their visit will reflect the value of the at_medium parameter.

    To support this behavior, Batch dispatches campaign data to:
    • The Marketing Campaign module

    • The On-site Ads module

    Marketing Campaign module: Only the first campaign detected during a session appears as the official traffic source in the Piano Analytics dashboard. Other campaigns appear as event properties.

    View this data in:

    • Traffic Sources > Marketing Sources

    • Content > Pages

    On-site Ads module: This module tracks ad impressions and clicks per campaign. It ensures visibility for all campaigns triggered during a session.

    View this data in:

    • Content > On-site Ads > Publisher Campaigns

    3

    Create and Use AT or UTM Parameters

    Define your AT or UTM parameters in Piano Analytics. Reuse the parameter created in Section A.1. Associate this parameter with your campaign.

    4

    Link Your Batch Campaign

    Push campaigns: The dispatcher extracts the AT or UTM parameter from:

    • The deeplink URL

    • The custom payload

    If both are present, the dispatcher prioritizes the parameter in the custom payload.

    AT parameters must be under 250 characters and must not include special characters. Refer to Piano Analytics for formatting rules.

    In-App and Mobile Landing campaigns: The dispatcher extracts the AT or UTM parameter from:

    • The deeplink URL

    • The Tracking ID field in the campaign settings

    After linking, Piano Analytics tracks all events related to your Batch push or In-App campaigns.

    documentation
    documentation
    Android
    iOS
    Please note that the payloads to be used for iOS and Android are not the same.

    iOS

    Android

    Here is where you will need to paste the payload:

    Insert your payload in the right section

    Note that an extra step is needed on Android. You need to add the following code before calling the AppsFlyer AppsFlyerLib.getInstance().sendPushNotificationData method:

    iOS
    Android
    iOS
    Android
    Find your information in the retargeting section
    Adding UTM Tags in a push notification
    Adding UTM Tags in an InApp
    Testing with the Live View section

    How to connect Batch to AT Internet

    This guide explains how to enable tracking of AT Internet campaigns to monitor your Batch campaigns on web and mobile.

    A. Tracking Web Push notifications

    To track Batch web campaign opens in AT Internet:

    1. Create an xtor parameter in AT Internet

    1. Open AT Internet.

    2. Go to: Settings > Settings > Custom Marketing Campaign.

    3. Create a Source (e.g., "Push Campaign").

    4. Create a Campaign using that source.

    2. Add the xtor to your Batch deeplink

    Append the xtor parameter to your deeplink URL. For example:

    Note: xtor values must not exceed 250 characters and cannot contain special characters. See AT Internet documentation for formatting guidelines.

    Once configured, AT Internet will attribute visits to this campaign as a traffic source.


    B. Tracking Mobile Push and In-App messages

    To track mobile push and In-App messaging campaigns in AT Internet, use Batch's built-in event dispatcher.

    1. Install the AT Internet Dispatcher

    Event dispatchers are supported starting from Batch SDK version 1.15.

    AT Internet dispatchers use the xtor parameter to send events to AT Internet.

    • Refer to the technical documentation for installation:

    The dispatcher does not support AT Internet's Marketing Campaigns v2 JavaScript syntax, which is not available on Android or iOS.


    2. Create the xtor parameter

    As with web tracking, create a Custom Marketing Campaign in AT Internet. This will generate the xtor parameter you need for linking.


    3. Link the Batch campaign to the AT Internet campaign

    Push campaigns

    The dispatcher reads the xtor from:

    • The deeplink URL

    • The custom payload

    If both are present, the custom payload value takes priority.

    In-App and Mobile Landing campaigns

    The dispatcher reads the xtor from:

    • The deeplink URL

    • The Tracking ID field of the campaign

    Once configured, AT Internet will track relevant events triggered by the campaign.

    AT Internet and Batch handle campaign tracking differently. AT Internet only allows a single campaign to be associated with a user session, while Batch can trigger multiple campaigns. To ensure complete tracking, Batch sends events to both:

    • The Marketing Campaign Module, which shows the first campaign of the session (available under Traffic Sources > Marketing Sources and Content > Pages).

    • The On-site Ads Module, which displays additional campaigns triggered during the session (available under Content > On-site Ads > Publisher Campaigns).

    How can I add my Branch.io links to Batch push notifications?

    Indeed, Branch.io links can be used in Batch notifications for your referral and attribution needs.

    Branch.io is a comprehensive mobile attribution & linking platform, that helps you acquire, engage, and measure across all devices, channels, and platforms by providing a holistic view of all user touchpoints.

    The good news is that those links can be added to your Batch push notifications to ensure your users can open your notification deeplinks while you keep track of your push opens with Branch.io. โ€‹

    But how?

    To add Branch deep links to your campaigns, you just have to add a 'Branch' key with your Branch deep link to your campaign custom payload to handle push notifications, very much like below:

    Important note: Remember not to add any deeplink in the dedicated text field, it won't work this way. โ€‹

    โš™๏ธ Prerequisites

    On Android

    For this integration to work on Android, you have to wire Batch SDK to Branch SDK in a . The Branch link has to be added to your result intent as shown in this code sample:

    More information is in the .

    On iOS

    No intervention whatsoever is necessary on iOS. More information is in .

    FirebaseBatchIntegration.setup()
    $ adb shell setprop debug.firebase.analytics.app package_name
    $ adb shell setprop debug.firebase.analytics.app .none.
    -FIRDebugEnabled
    -FIRDebugDisabled
    https://mywebsite.com/item?at_medium=batchPush&at_campaign=new_offer
    {
       "data":{
          "af":{
             "pid":"batch_int",
             "is_retargeting":"true",
             "c":"test_campaign"
          }
       }
    }
    {
         "af":{
             "pid":"batch_int",
             "is_retargeting":"true",
             "c":"test_campaign"
          }
    }
    if (intent != null) {
      val batchPayload = intent.getBundleExtra(Batch.Push.PAYLOAD_KEY)
      val af: String? = batchPayload?.getString("af")
      if (batchPayload != null && af != null) {
        intent = intent.putExtra("af", af)
      }
    
    }
    documentation
    Enable Google Analytics
    Upgrade your link
    Your Google Analytics property
    Inspect platform-specific metrics
    Add your dimensions in your analysis
    Create graphs and tables
    Insert your payload

    Data sources (CDP, Warehouse, Reverse ETL)

    Landing Page Builder

    Marketing Platforms

    Note the xtor parameter associated with your campaign.

    This setup ensures that all Batch campaigns are visible in AT Internet, even when multiple are triggered in a single session.
    Android SDK documentation
    iOS SDK documentation
    notification interceptor
    https://github.com/BatchLabs/code-snippets/tree/master/integrations/branch/android
    Branch's official Android documentation
    Branch's official iOS documentation
    Adding your Branch link
    Tracking a push campaign with UTM tags
    Tracking an in-app Campaign or Mobile Landings
    Debug view
    https://mywebsite.com/item?xtor=CS1-123-label1-label2-label3
    Image shows the Batch dashboard's web push notification creation module, highlighting how to insert xtor parameters in the deeplink field to track campaigns in AT Internet.
    Image shows the Batch dashboard's mobile push notification creation module, highlighting how to insert xtor parameters in the deeplink field to track campaigns in  AT internet.
    Adding your Branch link

    Attribution

    How to connect Batch to Google Analytics?

    Learn how to track your Batch web and mobile campaigns in Google Analytics.

    Batch allows you to track Google Analytics users who interact with your push notifications or In-App messages. This is helpful to understand what your users do in your app/website, tracking transactions and e-commerce conversions.

    A. Tracking Web Push Notifications

    You can easily track your web push opens in Google Analytics by following these two steps:

    Adding UTM Tags to Your Deeplink

    The first thing you need to do is to add UTM tags to the deeplink of your push campaign. This can be done from the campaign editor or when calling the Campaigns / Transactional API:

    Each UTM tag includes two main elements:

    • A parameter (e.g: utm_source)

    • A value (eg: newsletter)

    There are several parameters you can use (more information ):

    • Campaign Name (utm_campaign): This can be the name (e.g. salejuly) or the category of your push campaign (e.g. onboarding).

    • Campaign Source (utm_source): This parameter allows you to define where your content comes from (e.g. Batch_Android, Batch_iOS)

    • Campaign Medium (utm_medium): This parameter allows you to identify the medium used by the user is coming from (e.g. push)

    You can build easily add UTM tags to your deeplink by using Google's :

    B. Tracking Mobile Push and In-App Campaigns

    Note :

    • This section assumes you are already using the V3 of Google Analytics' SDK in your app. Also, you must have a deeplink architecture integrated into your application.

    • The since October 2019 for non-Google Analytics 360 customers, meaning if you still use it on a free Google Analytics account, no data will be available and you must migrate to Firebase.

    1

    Installing the Google Analytics Dispatcher in Your Application

    The Google Analytics dispatcher uses the (like on lots of Google services) from your campaign to dispatch a new set of data on Google Analytics.

    If you haven't already installed the Google Analytics event dispatcher, please read our technical documentation for and .

    Once the dispatcher is installed, you will be able to track related to your push or In-App messaging campaigns on Google Analytics.

    C. Filtering Your Audience Based on UTM Tags

    Once the steps described in either sections A or B are completed. You will be able to track users coming from specific sources, mediums or campaigns by going to Acquisition > Sources > all on Google Analytics.

    Then you will be able to see your whole campaign from push notifications by clicking on the campaign tab.

    D. Testing Your Campaign Tracking

    In order to test whether your Batch campaign data is correctly being tracked, you can go to the "Real Time" tab in Google Analytics and check the event count for the event that you want to track.

    You can then try to send yourself a test push ( / ) or . If integrated correctly, you should see the event count increase a few moments after the event is performed (Push open, Push notification dismiss, In-App dismiss, In-App display, etc).

    How to use Amplitude Cohorts as audiences in Batch?

    Sync your Amplitude Cohorts to Batch and use them in your Email, SMS, Push or In-App messaging campaign targeting.

    Amplitude is a product analytics platform designed to help businesses understand and optimize user engagement and product usage. It provides tools and insights that enable companies to make data-driven decisions to improve their digital products and user experiences.

    This integration allows you to use Amplitude Cohorts as Custom Audiences in Push and In-App automations.

    Pre-requisites

    • This integration is available for customers who have paid plans with Amplitude and have the Bacth destination enabled.

    • The user IDs that compose your Amplitude Cohorts need to be of the same type of identifier as the Custom User ID used in your Batch Profile base (tracked from your mobile apps, website or Batch APIs) OR Batch's Installation IDs if tracked in Amplitude.

    Steps

    1

    Set up your Cohorts in Amplitude and sync them to Batch

    Follow the instructions from the to activate the integration and export your Cohorts to Batch.

    2

    How to connect Batch to Piano Composer

    This guide explains how to integrate Piano Composer with Batch to enhance your engagement strategy by retargeting users after a Piano experience is displayed on your website.

    Overview

    Piano Composer is a customer journey orchestration tool that allows you to display experiences on your website based on user behavior, triggers, and conditions. You can use it to drive conversion actions such as account creation, premium content access, or adblocker circumvention.

    By connecting Piano Composer to Batch, you can trigger campaigns (e.g., Web Push or Email) after a user has seen a Piano Experience but hasn't completed the expected conversion.


    1. Forward Piano Composer Events to Batch

    Use Piano's callbacks to forward user interaction data to Batch via Web Tagging.

    1. Open your Piano dashboard and access the Experience you want to track.

    2. In the "Embed Code" section, insert Batch Web Tagging methods into the existing script.

    3. Piano's callbacks will then send the relevant event data to Batch automatically.

    The list of available callback events is available in the .

    You can find a sample integration script .


    2. Use Piano Events in Batch Automations

    Once events are forwarded to Batch, you can use them to trigger automations directly in the Batch dashboard.

    For example, target users who saw an account creation prompt but did not convert.


    3. Use the "Run JS" Action for Custom Triggers

    In addition to callbacks, Piano Composer lets you execute JavaScript when an experience is shown.

    Use the Run JS action to call Batch methods manually, making it possible to:

    • Send custom events

    • Set user attributes

    • Trigger advanced scenarios for all users targeted by the Experience

    How to connect Batch with Adjust?

    Yes, you can use Adjust attribution data to improve your segmentation within Batch. The connection only requires a quick code addition.

    As you may know, is a Mobile Attribution and Analytics service. Their service provides app marketers with a smart business platform, combining measurement for advertising sources on mobile with advanced analytics.

    The good news is that you can use Adjust attribution data to improve your segmentation within Batch. โ€‹

    How does it work? ๐Ÿค”

    Callbacks provided by Adjust SDK allow you to sync Adjust data with Batch SDK. When you have implemented the Adjust attribution callback inside your application, you can use Batch segmentation engine to target users based on install source attribution data. โ€‹

    How to connect Batch to Zeotap?

    Send custom data from Zeotap to Batch, and get reports from Batch

    is a leading brand that offers an easy, secure, and impactful Customer Data Platform (CDP) to deliver personalized customer experiences. With the Zeotap CDP, businesses can gain a 360-degree view of their customers and unlock valuable insights.

    Integrating Batch with Zeotap provides a range of features and capabilities that enable marketers to create personalized and relevant experiences for their users and drive engagement, retention, and revenue. The integration allows sharing audiences built in Zeotap, triggering automations, and exchanging data in real-time.

    Here is the data that can be exchanged via our connection:

    • Zeotap โ†’ Batch: Send custom events and custom audiences to be used in Batch campaigns and automations

    Note: If you use an SDK version that is older than 1.15 or has already released your apps without installing the Google Analytics event dispatcher, you can still track push opens by adding UTM tags to your deeplinks as described in section A of this article.
    2

    Tracking your campaigns with UTM tags

    a. Tracking a push campaign with a UTM tag

    The dispatcher gathers the values of utm_campaign, utm_source and utm_medium from the deeplink URL and from the custom payload of your campaign.

    The tags utm_source and utm_medium are optional because they have a default value of batch and push accordingly.

    You can add utm_content only in the deeplink URL in case your push notification has several different buttons.

    b. Tracking an In-App Campaign or Mobile Landing

    The dispatcher gathers the value of utm_campaign from the field Tracking ID of your campaign.

    You can't customize the utm_source and utm_medium tags, they have a default value of batch and in-app accordingly.

    You can add utm_content only in the deeplink URL in case your in-app message has two different buttons.

    here
    Campaign URL Builder
    Google Analytics SDK has been sunsetted
    UTM tags
    Android
    iOS
    different types of events
    iOS
    Android
    In-App message
    Adding UTM Tags in your Deeplink
    Adding UTM Tags in your Deeplink
    Using the Google's Campaing URL Builder
    Using the Google's Campaing URL Builder
    Finding the source of the acquisition
    Finding the source of the acquisition
    Tracking by campaign source
    Tracking by campaign source
    Track your events in real time
    Track your events in real time
    Check what audiences have been synched and use them in Push, In-App, Email, or SMS orchestrations.

    You can check all synced audiences in the dedicated "Audiences" tab by navigating into "Profiles > Audiences".

    Once you made sure your Cohort has been synched, you can proceed to use it in the targeting section of your Push, In-App, Email, or SMS orchestration to either include or exclude users in that audience in the campaign's target.

    Amplitude documentation
    iOS integration โš™๏ธ

    After having set up the Adjust attribution callback (iOS instructions on callbacks), you simply have to send Batch the appropriate data via the SDK's method.

    Here's an example on how you can set the callback in your app code:

    IOS integration

    You can find here the official GitHub repository. โ€‹

    Android integration โš™๏ธ

    Similarly, you have to set up the Adjust attribution callback (Android instructions) and sent Batch the attribution data via the SDK's method.

    Here's an example of how you can set that callback in your app code:

    Android integration

    You can find here the official GitHub repository. โ€‹

    Whatโ€™s next?

    Now, you can test your integration using our debug tool and find if your attribution data work properly on the Batch dashboard. โ€‹ Once the data is well collected, you will be able to specify an installation source and more from the campaign editor:

    Target using the installation source data

    That's all, you have no excuse not to properly target your users based on attribution now ๐Ÿ˜‰.

    Adjust
    Batch โ†’ Zeotap: Retrieve delivery reporting exports and Userbase data exports to allow enhanced user segmentation and audience creation, leveraging engagement data collected by Batch

    Here is how to set up and use the connection:

    Pre-requisite: Your user IDs in Zeotap must be the same type as the Custom User ID you use for your Batch apps/websites.

    [Batch โ†’ Zeotap] Create a Batch Source

    The connection allows you to ingest data from Batch into Zeotap.

    Here is an example of a use case leveraging the Batch Source feature.

    โ†’ Follow Zeotap's documentation to create a Batch Source in Zeotap.

    [Zeotap โ†’ Batch] Send Audiences

    The Batch feature allows you to upload static segments exported from third-party tools. You can target these audiences with a campaign or automation from the Batch dashboard:

    You may also want to use this audience in combination with other segmentation features or exclude this audience from your targeting.

    โ†’ Follow Zeotap's documentation to send Audiences from Zeotap to Batch.

    [Zeotap โ†’ Batch] Send Custom Events

    Zeotap can send events in real-time to Batch. These events can be used, for example, as Trigger and Exit events of Trigger Automations.

    โ†’ Follow Zeotap's documentation to send Custom Events from Zeotap to Batch.

    Zeotap
    Piano documentation
    here
    Image shows the Piano Composer dashboard, highlighting the location of the "Integrate" button used to insert Batchโ€™s embed code.
    Image shows the Trigger campaign configuration module in the Batch dashboard, highlighting how to select an event sent by Piano Composer to trigger a campaign.
    Image shows the Run JavaScript module in the Piano Composer dashboard, illustrating how to manually send custom data to Batch using the SDK.

    How to connect Batch to your Data Warehouse with Hightouch?

    Here's a step-by-step guide on how leverage Hightouch to manage profiles, set attributes and track events in Batch.

    Modern data architectures demand seamless integration between storage, processing, and actionable platforms. Connecting Batch to your Data Warehouse enables a unified, efficient, and scalable approach to leveraging customer data for engagement.

    Hightouch is an excellent tool to send your data to Batch and works great with Snowflake, BigQuery, Redshift, Databricks, ClickHouse, and many more.

    By doing so, you ensure keeping your Data Warehouse as the Single Source of Truth, you have complete control over your data update frequency and you can leverage huge data volumes.

    Step-by-step guide

    In this tutorial, we will send user data to Batchโ€™s Profile API.

    We will be sending attributes and events to each of your users profiles using the native Batch destination.

    1

    Create your data source in your Data Warehouse

    The first step is to organize your data in order to have a table storing your user data, transformed and ready to be sent to Batch. NB : Views will work as well.

    We recommend you use a dedicated database and schema to store the data destined to be sent via Reverse ETL.

    2

    How to connect Batch to Poool?

    This guide explains how to connect Batch with Poool to track paywall interactions โ€” such as page views, logins, and subscription clicks โ€” directly in Batch.

    Overview

    This integration lets you combine monetization data and engagement insights to build more personalized and effective messaging strategies.

    By connecting both platforms, youโ€™ll bridge monetization and engagement data:

    • Poool provides valuable insights about reader conversion and access behaviour (free vs. premium vs. subscriber).

    • Batch lets you turn those insights into personalized automation triggers โ€” for example, re-engaging readers who saw the paywall but didnโ€™t subscribe by sending them an email, a push notification or a SMS.

    In short, this integration helps you:

    • Retarget users based on their paywall interactions,

    • Boost conversion through contextual messaging and automation.

    1. Before you start

    Youโ€™ll need:

    • An existing Batch Web SDK v4 setup on your website

    • A Poool Access integration with your App ID

    • Access to both dashboards: and

    If you havenโ€™t integrated either SDK yet, follow each platformโ€™s installation guide first.

    2. Principle of the integration

    Once both SDKs are loaded on your site, the idea is simple: Poool triggers events when users interact with your paywall โ€” for example, when the paywall loads, when a reader clicks โ€œSubscribeโ€, or when they log in. Each of these events can be listened and then sent to Batch as a Custom Event.

    This allows you to record every key paywall interaction directly inside Batch and reuse it for audience segmentation or campaign targeting.

    3. Implementation steps

    1

    Load both SDKs on your page:

    • Poool scripts (access.min.js and audit.min.js) handle the paywall display and analytics.

    • Batchโ€™s script manages event collection and webpush messaging.

    2

    4. Use Poool Events in Batch Automations

    Once the integration is live, these new events will appear in Batch โ†’ Settings โ†’ Custom Data โ†’ Events. You can then:

    • Build segments (e.g. users who clicked โ€œSubscribeโ€ but didnโ€™t convert):

    • Trigger personalized email, SMS, push and web notifications:

    โœ… Youโ€™re all set! Your Poool paywall is now connected to Batch. Each paywall interaction โ€” view, login, subscription, or custom action โ€” can be tracked in Batch to help you better understand your readers and personalize their experience.

    How to connect Batch to Voucherify?

    Include voucher codes from Voucherify in Batch communications

    Voucherify is an API-first Promotion and Loyalty Engine that helps enterprise brands build and manage personalized promo codes, gift cards, auto-applied promotions, loyalty programs, and referral campaigns.

    A connection has been developed to allow our customers to add voucher codes generated by Voucherify to their Batch messages.

    Here is how to set up and use the connection:

    Pre-requisite: The user IDs selected in Voucherify need to be of the same type as the Custom User ID you have for your Batch apps/website.

    1. Connection setup & Distribution creation

    Follow the to activate the connection and create a voucher code distribution.

    2. Use the coupon codes in Batch campaigns

    a. Attributes activation

    Once the distribution is activated in Voucherify, the corresponding custom attributes will be visible on the Batch dashboard, under Profiles > Custom Data:

    You need to activate the necessary attributes by clicking the toggle on the left of each attribute, and then clicking "Save" on the right.

    b. Create your campaign

    You can use the attributes coming from Voucherify to personalize your messages in Batch just like any other custom attribute.

    Here is an example of a one-shot push campaign:

    Targeting

    In this example, we assume that the voucher codes in Voucherify have been assigned to a pre-defined list of users.

    In this case, you need to:

    • Import this list into Batch as an Audience (see how to do this in our )

    • Select this audience as the target of your campaign:

    Push content

    Then, include the voucher code in your message:

    If you are targeting a mobile application, you might also want to to allow your customers to copy the voucher code to their clipboard:

    This feature is specific to Batch's Mobile Engagement Platform (More on the ).

    This feature is specific to Batch's Mobile Engagement Platform (More on the ).

    How to connect Batch to Segment?

    Send attributes, events, custom audiences and more from Segment to Batch.

    is a customer data platform that simplifies data collection by providing a central point for storing and transferring data. We provide an example of integration with Segment so you can send your data directly from Segment to Batch.

    This integration uses a Segment feature called .

    If you are interested in this example of integration, please contact us at: .

    Batch Profile audiences
    Batch targeting audience
    iOS integration
    Android integration
    Target using the installation source data

    Connect Hightouch with your Data Warehouse

    Make sure Hightouch has access to your Data Warehouse, see this Hightouch basics tutorial.

    3

    Create a model in Hightouch

    Creating a model is basically telling Hightouch where to go fetch the data in your Warehouse.

    We will call it batch_profile_base in this example.

    Create your model

    A model could be made with a more complex query but we recommend you keep your complex logic in your Data Warehouse, with your usual transformations methods.

    4

    Create your Batch Destination in Hightouch

    This is where you will configure the access to your Batch Project.

    You will need API Keys available in your Batch Dashboard > Settings.

    In Hightouch, create a Batch Destination and enter the required information, which you can find in your Batch dashboard under Settings โ†’ General.

    Use the Batch native destination !

    Once this is done, deal with your internal permissions and your Batch Destination is ready!

    5

    Create your Sync in Hightouch

    Syncs declare how you want your data to appear in Batch and on what frequency you want updates. This is the section where you will have to make choices.

    Add Sync > Select your model > Select your destination

    Here comes the mapping configuration:

    Configure your sync

    You can send various types of data from Hightouch to Batch:

    • Attributes:

    You can include multiple attributesโ€”both native and customโ€”in a single sync to Batch.

    Important: Destination field names must be in lowercase. Using uppercase letters will cause errors and prevent the data from being processed correctly.

    • Events:

    A single sync allows you to send one event along with multiple associated event attributes.

    Important: Destination field names must be in lowercase. Using uppercase letters will cause errors and prevent the data from being processed correctly.

    • Custom Audience (currently supported only for MEP):

    Each sync allows you to create or update one audience, including associated attributes.

    Important: Destination field names must be in lowercase. Using uppercase letters will cause errors and prevent the data from being processed correctly.

    6

    Test & Deploy

    We recommend you test your sync with Hightouch testing module. Remember to test both added rows and changed rows. The API Response should guide you through debugging if needed.

    Test your sync !

    Once your test is successful, schedule your sync, deploy it and enjoy having your profile base completely up to date on Batch.

    You can use Batchโ€™s Profile View to verify that the customer data has reached its destination, on the basis of a customer ID:

    Youโ€™re now ready to use your data to send personalised and engaging messages to your audience ๐ŸŽ‰

    Initialize Poool with your App ID and configure your paywall as usual.

    3

    Listen to Poool events such as:

    • page-viewโ€“ when the paywall is displayed

    • loginClick โ€“ when a user clicks โ€œLog inโ€

    • subscribeClick โ€“ when a user clicks โ€œSubscribeโ€

    • ...

    Youโ€™ll find the full list of Poool events and their payloads in Pooolโ€™s developer documentation: ๐Ÿ‘‰ ๐Ÿ‘‰

    4

    Send these events to Batch as Custom Events using Batchโ€™s Web SDK.

    For example, when Poool emits a loginClick, you send a Poool_click_log event to Batch:

    Batch
    Poool
    Build segments with the data retrieve from Poool Events
    Trigger your messages using Poool Events
    How can I use my Segment data on Batch?

    You can create a custom Destination Function to send attributes and events to Batch.

    If you are a Batch Omnichannel or Email client, the sample code will allow you to set up flows to send project-level data using the Profile API.

    Create a Destination Function

    Destination functions allow you to handle your Segment events and send them to any external tool or API, through JavaScript functions, without having to set up an infrastructure.

    To create a Destination Function in Segment, navigate through Connections > Catalog > Functions > Destination Functions.

    Then, we suggest you use our pre-built script to create your function and adapt it to your use cases.

    Segment has a built-in testing module that will help you understand if your Function calls Batch APIs as expected. Try it using your events payloads.

    Segmentโ€™s testing module

    Deploy as a Destination

    Once your script is ready, you can Save & Deploy your function to a destination.

    • Pick one source. It could be any of your sources: iOS, Android, Web, or other.

    • Declare settings. They are a good option to store your API Keys. To ensure that the script recognizes the API keys, please name them as follows: batchRestApiKey, batchLiveApiKey or batchProjectApiKey. The REST API Key is sensitive; you must declare it as such.

    The Project API Key is optional. It is only necessary if you need to call project-level APIs (e.g., the Profile API).

    Settings tab in Segment Functions interface
    • Activate the Destination so that data starts flowing between Segment and Batch.

    You should note that a Destination is an instance of a Destination Function.

    If you have several sources plugged into Segment, you must create one Destination per source. However, you can use the same Function for all Destinations, as long as your events are handled correctly within the Function.

    Batch is registered as a Destination

    How to send audiences from Segment to Batch?

    Here is how you can create a custom Destination Function to send custom audiences to Batch.

    You must follow the following steps in that order :

    1. Create your Destination Function

    2. Create your Destination

    3. Create a filter in your Destination. Filter out all events that are not of event type โ€œTrackโ€. You can use โ€œOnly Send Eventโ€ > โ€œEvent Type is trackโ€

    4. Create your Segment Audience and send its events to the Batch Destination

    Steps 1, 2 & 3 must be done only once for the technical setup. Then, your marketing teams only need to follow step 4 to create new audiences.

    Create a Destination Function

    Destination functions allow you to handle your Segment events and send them to any external tool or API, through JavaScript functions and without having to set up an infrastructure.

    To create a Destination Function in Segment, navigate through Connections > Catalog > Functions > Destination Functions.

    Then we suggest you use our pre-built script to create your function and adapt it to your use cases.

    Segment has a built-in testing module that will help you understand if your Function calls Batch APIs as expected. Try it using your audience events payloads (Track and Identify).

    Segmentโ€™s testing module

    Deploy as a Destination

    Once your script is ready, you can Save & Deploy your function to a destination.

    • Pick one source. It could be any of your sources: iOS, Android, Web, or other.

    • Declare settings. They are a good option to store your API Keys. To ensure that the script recognizes the API keys, please name them as follows: batchRestApiKey, batchLiveApiKey or batchProjectApiKey. The REST API Key is sensitive, you must declare it as such.

    The Project API Key is optional. It is only necessary if you need to call project-level APIs (e.g., the Profile API).

    Settings tab in Segment Functions interface
    • Activate the Destination so that data starts flowing between Segment and Batch.

    You need to deploy one destination for each Batch app (e.g., one destination for the iOS app and one destination for the Android app).

    Create your Segment Audience

    Pre-requisite: To create Audiences, you need to have created a Unify / Personas space and declared data sources.

    • In Engage > Audiences, create an audience with the audience builder. You can target events from your data sources and create your audiences accordingly. There are several computing methods available. Please refer to Segmentโ€™s Audience Documentation to understand it better.

    • Once your audience is designed, choose to send events to one or multiple Batch Destinations created beforehand.

    • In the menu that opens, select "Send Track". โ€‹Note: The values of the "Enter Event" and "Exit Event" fields don't matter.

    Give your audience a name, and the audience creation will be complete:

    Create an audience

    ๐ŸŽ‰ Your audience will be initialized in Segment and created in Batch immediately. The audience will be updated in Batch each time a user enters or leaves it.

    Batch is a Destination of the Audience.
    Segment.com
    Destination Function
    partners@batch.com
    instructions from the Voucherify documentation
    add a Mobile Landing
    Screenshot of the Custom Data section on the Batch dashboard showing the toggles to be used to activate or deactivate custom attributes
    Screenshot of the targeting block in a Batch Campaign creation form
    Screenshot of the Batch message composition module, showing an example with Voucherify attributes ({{u.voucher_code}} for instance)
    Screenshot of the Batch Mobile Landing composition module, with an example of a modal containing the Voucherify code that can be copied to the clipboard via a button in the modal
    Adding UTM Tags in a push notification
    Adding UTM Tags in a push notification
    Adding UTM Tags in an InApp
    Adding UTM Tags in an InApp

    This feature is specific to Batch's Mobile Engagement Platform (More on the ).

    Screenshot showing the Batch Targeting module, highlighting the Audiences selector
    Screenshot showing the Batch Automation Builder, highlighting the Entry Event "created_account"

    What can you do with our SFMC (Salesforce Marketing Cloud) connector?

    With our brand new connector, you can run complex push automation scenarios from the famous Salesforce Journey Builder.

    Salesforce Marketing Cloud is an extensive marketing suite that allows marketers to create complex omnichannel journeys that are more tailor-made and more interesting for the end user.

    ๐Ÿ’ก In case you missed it, we just released a connector with them.

    Get in touch with us to set up this integration.

    Looks great. How do I use it?

    Once the integration has been set up on your account, you should see a new Batch Custom Activity in your Journey Builder, start by adding it to your Journey and click on it!

    > Choose between an existing template and a new campaign

    We let you either use Batch's interface or Salesforce's to create your campaign content. If you feel comfortable with Batch dashboard and feature, you can create a campaign there with Mobile Landings, personalization and previsualization, and save it as a draft.

    Otherwise, you can choose "New campaign" to create new campaign content from scratch.

    Option A : Template

    1

    First step, adding the Campaign Name and Apps

    Input a unique campaign name for this push notification and choose on which would you like to send a push notification to.

    2

    Option B : New Template

    1

    First step, adding the Campaign Name, Apps and optionnal features

    Input a campaign name for this push notification and choose on which would you like to send a push notification to.

    You can also add opptional features such as :

    Nice, but how do I run automated scenarios based on push reactions?

    Create a new Decision Split, and use the campaign ID below the Batch tile, and use it as a group-id to refer to a specific notification in your request.

    If you want to target users that received the push notification, add a event: sent request. If you want to target users that opened the push notification, add a event: open request as shown below :

    A few technical details ...

    Every day, Batch will fill a Data Extension called BATCH_PUSH with reaction events, so the day following the sending of the push notification, we will provide you with data concerning each push that has been sent.

    In this database, the push is referred to by their group-id, which is a slug of the campaign name you've chosen (= a campaign ID). Note that this slug is available as the push tile name:

    In the BATCH_PUSH data extension, this data is available as the group-id. Use it to retrieve information on the state of a push of a certain user such as demonstrated below:

    There are four states in which a push can be, those states are represented by the event attribute :

    • accepted: the push request has been accepted by Batch and will be processed asap.

    • sent: the push notification has been sent to the user.

    • open: the push notification has been opened by the user

    • error: the push notification encountered an error (device unreachable in most cases).

    How to connect Batch with Unbounce?

    Connect Batch with Unbounce to sync form data and trigger personalized push, email, or SMS campaigns automatically.

    Modern marketing architectures rely on smooth data flows between acquisition and engagement platforms. Integrating Batch with Unbounce lets you seamlessly bring interaction and conversion data from your landing pages into your customer engagement ecosystem.

    By connecting the two platforms, you can leverage events from Unbounce โ€” such as form submissions, page visits, or campaign interactions โ€” to fuel your marketing automation within Batch. These events can be used to trigger personalized push notifications, SMS, email, or in-app messages, ensuring timely and relevant communication with your audiences.

    This connection ensures that your marketing ecosystem remains consistent and data-driven. Unbounce continues to optimize your acquisition efforts, while Batch helps you transform those insights into meaningful, timely communications that strengthen your customer relationships.

    Integration steps

    1

    Create your form in Unbounce

    Start by creating a new form in Unbounce, or use an existing one, that youโ€™ll be able to reference later in your Batch campaigns โ€” for example, within the emails or push notifications you send.

    To retrieve data from this form, youโ€™ll need to add a JavaScript snippet that captures the value of the โ€œCUIDโ€ parameter, which must be passed as part of the pageโ€™s URL (see step 2 below).

    To do this:

    1. Click on the โ€œJavaScriptโ€ tab at the bottom of your Unbounce editor.

    Your integration is now complete! You can start using your Unbounce forms to power personalized and engaging messages across your Batch campaigns โ€” including push notifications, emails, SMS, and more โ€” all enriched by the data youโ€™ve just connected.

     access.on("loginClick", (e) => {
              console.log("[Poool] loginClick", e);
              batchSDK((api) => {
                api.trackEvent("Poool_click_log", {
                  attributes: {
                    urlType: "Login",
                    category: "Paywall Abonnรฉ",
                    user_type: "Abonnรฉ",
                  },
                });
              });
            });
    Poool Access JavaScript Events
    Poool Audit JavaScript Events
    Segment's testing module
    Settings tab in Segment Functions interface
    Batch is now registered as a Destination.
    creating an audience in progress
    Batch is a Destination of the Audience.

    Second step, choosing templates

    If you've chosen the Template option on the second step, you will be asked now to choose for each app which draft campaign you wanna use for your push notification on Salesforce.

    Note that it is also possible to override the draft content with new values if you choose the option in the bottom bar. Switching it on will bring you to the fourth step. Otherwise, you are done!

    Choosing a template
    Mobile landing
  • Capping

  • Payload

  • App selection
    2

    Second step, creating new campaign content

    You are now prompted to write campaign content for your push notification. If a template was chosen in Step 3, these new values will override the template values.

    Note that the image URL should be secured.

    Define your message

    You can easily add other languages to your message using the "Add language..." module :

    • Mobile landing :

    Mobile Landings allow you to easily introduce continuity between your app, and your pushes: A user opening a push will be greeted by a rich message related to what they opened, rather than just ending up on your app's main menu.

    You can now manage them in the data activity:

    • Capping :

    Use the "Labels" field to implement capping define in your Batch dashboard and regulate your marketing pressure, ensuring your audience isn't overwhelmed with messages.

    • Payload :

    It's an optional JSON string that can contain additional parameters that your application can handle when receiving push notifications if configured to do so.

    3

    Third step, preview and test your push

    You can easily preview your pushes or send you a push of tests on your different platforms and in the languages defined in the previous section.

    Test and preview your push
    Batch custom activity
    Add a Batch push activity
    Campaign definition
    Campaign definition
    Campaign template
    Create a campaign by using a template
    Push open
    Target the openers of a previous campaign
    Using a descion split in a journey
    Using a decision split to retarget the openers
    Find your GroupID
    Find your group-id
    Find information about your sendings in the Batch Data Extension
    Find information about your sendings in the Batch Data Extension

    In the โ€œManage Scriptsโ€ section, add a new script name and set the Placement option to โ€œAfter Body Tag.โ€

  • Then, insert the following script to capture the CUID value:

  • 2

    Use your form in Batch

    In Batch, simply use the URL of your Unbounce form wherever you need it โ€” for example, in an email, push notification, or in-app message.

    At the end of your formโ€™s link, add the following parameter:

    This dynamic parameter ensures that each userโ€™s unique identifier is passed through the URL when they open the form. It allows Batch to retrieve the information submitted through the form and associate it with the corresponding user profile.

    3

    Use the Native Zapier Trigger to Retrieve Data from Your Form

    • Step 1 โ€” Set up the Unbounce Trigger

    In Zapier, start by adding the native Unbounce trigger to capture form submissions.

    Then, configure it as follows:

    • In the Setup tab: select โ€œNew Form Submissionโ€ as the trigger event.

    • In the Configure tab: choose the client name and landing page from which you want to retrieve data.

    • In the Test tab: test your setup to ensure the connection works properly.

    • Step 2 โ€” Send Data to Batch via Webhooks

    Next, add an action step using โ€œWebhooks by Zapierโ€ to send the retrieved data to Batch via the .

    In the Setup section:

    • Choose โ€œCustom Requestโ€ as the action event.

    In the Configure section, use the following parameters:

    • Method: POST

    • URL: https://api.batch.com/2.7/profiles/update

    • Data: use a JSON body to map your Unbounce fields to Batch attributes. Hereโ€™s an example:

    • Headers:

    Add the follwing headers:

    • Content-Type: application/json

    • Authorization: Bearer YOUR_REST_API_KEY

    • X-Batch-Project: YOUR_BATCH_PROJECT_ID

    Donโ€™t forget to test! The API Response should guide you through debugging if needed.

    This setup ensures that data collected from your Unbounce form is automatically transmitted to Batch, enriching your existing profiles with fresh, actionable information.

    4

    Deploy & use your form in Batch

    Once your test has run successfully, simply turn your Zap on โ€” and enjoy seeing your Unbounce form data automatically reflected in your Batch profiles.

    You can confirm that the information is correctly synchronized by checking Batchโ€™s Profile View. Search for a user using their Customer ID or email address to verify that the latest data has been properly received. (See: How to find a user's profile on the dashboard?)

    Add a JS code in your form
    Add a JS code in your form
    Synchronize your attributes.
    Synchronize your attributes.
    Synchronize your events.
    Synchronize your audience (MEP).
    Create your model
    Batch native destination
    Sync configuration
    Test your sync !

    This guide is specific to Batch's Mobile Engagement Platform (More on the ).

    ?CUID={{ b.custom_id }}
    <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Get the CUID parameter from the URL
      const params = new URLSearchParams(window.location.search);
      const cuid = params.get("CUID");
    
      // If CUID exists, create a hidden field and add it to the form
      if (cuid) {
        // Find the first form on the page
        const form = document.querySelector("form");
    
        if (form) {
          // Create the hidden input field
          const hiddenInput = document.createElement("input");
          hiddenInput.type = "hidden";
          hiddenInput.name = "CUID";
          hiddenInput.id = "CUID";
          hiddenInput.value = cuid;
    
          // Append the hidden field to the form
          form.appendChild(hiddenInput);
    
          console.log("CUID field added to the form:", cuid);
        } else {
          console.warn("No form found on the page.");
        }
      } else {
        console.warn("No CUID parameter found in the URL.");
      }
    });
    </script>
    
    Profile API
    [
      {
    	"identifiers": {
      	"custom_id": "Map_Your_Field"
        },
        "attributes": {
          "$email_address": "Map_Your_Field",
          "firstname": "Map_Your_Field",
      	"lastname": "Map_Your_Field",
      	"industry": "Map_Your_Field"
    	}
      }
    ]
    Adding language
    Adding a mobile landing
    Adding capping
    Using a payload
    Choosing a template
    App selection
    Push message
    Tests and preview
    Adding language
    Adding a mobile landing
    Adding capping
    Using a payload

    How to connect Batch to Snowflake?

    Here's a user guide on how to install and use Batch's Snowflake Native app to synchronize your Snowflake data with Batch, for segmentation, personalization, and orchestration purposes.

    Batch Data Sync Snowflake Native app

    Batch leverages Snowflake's Native app framework to provide a ready-to-install Snowflake app that

    allows you to sync your customer data from Snowflake into Batch in no time:

    • Securely manage connections to your Batch projects using Project Keys and REST API Keys.

    • Create and configure synchronization tasks to send data from your Snowflake dynamic tables to Batch.

    • Monitor and manage the status of your active data syncs, with options to suspend and resume them as needed.

    This guide will walk you through each feature of the application.

    Important requirement need to be available on your Snowflake account for you to be able to use this app.

    Please be aware that this application consumes Snowflake credits for its operations, primarily from the use of virtual warehouses and compute pools. We recommend you monitor your credit usage to understand the cost implications.

    ๐Ÿ‘‰ To have access to Batch's Native app on your Snowflake account, you can install it from the .

    1. Install and launch the Native app

    These steps need to be performed by a Snowflake Administrator (ACCOUNTADMIN role).

    Once the app has been shared with your Snowflake account, you'll be able to find it in your installed apps by navigating to Data products > Apps from your Snowsight console.

    When the app is launched for the first time, you'll need to authorize the following privileges needed for the app to work properly:

    Step 1: Account privileges

    1 โ†’ CREATE COMPUTE POOL : This is required by the native app to run Job services triggered by scheduled tasks. These jobs transform your Snowflake data and send it to Batch using Batch APIs.

    2 โ†’ EXECUTE TASK : This is required for the native app to synchronize updates to your Snowflake data in a scheduled, recurring manner with Batch.

    3 โ†’ CREATE WAREHOUSE : This is required for the native app to execute recurring synchronization tasks.

    4 โ†’ Click on the "Grant" button to grant both these privileges.

    Step 2: External Access Integration

    To synchronize data with Batch, the Native app needs to be able to make external calls to Batch's APIs (api.batch.com:443). This is done through an .

    You can first click on the "Review" button to display additional information on the required external access:

    Once that is done, simply click on the "Connect" button.

    Now, all that is left to do is clicking on the "Activate" button that appears on the top right corner of the screen. You should then be redirected to an information page through which you can launch the app.

    2. Manage Batch Projects

    The first step is to register your Batch projects with the application. This securely stores your credentials, allowing the app to send data to the correct Batch project.

    1 โ†’ Go to the "Manage Batch Projects" tab and then the "Add a New Batch Project" section

    2 โ†’ Enter a display name for your project.

    3 โ†’ Enter your

    4 โ†’ Enter your

    5 โ†’ Click the "Add Project" button.

    The application can connect to multiple Batch projects. The maximum number of projects you can add is limited to 4 by default.

    Once projects are added, they are listed at the top of the tab and can be deleted via the "Delete project" button.

    3. Create a synchronization Task

    This section allows you to create a task that automatically synchronizes data from a Snowflake dynamic table to one of your registered Batch projects.

    3.1. Prerequisites

    Prior to creating a synchronization task, you'll need to make sure the following requirements are met:

    A. Identify the data you want to synchronize and store it in a dynamic table

    Start by deciding which Profile attributes you want to synchronise from Snowflake to Batch.

    To make sure the data is available for syncing, create a in Snowflake containing the data you want to send.

    Using a Dynamic table will make sure all changes and inserts on your base tables are dynamically applied to your dynamic table, which will serve as an input for the Batch Native app.

    Here is an example of how you can create your Dynamic table:

    B. Grant the app with the required permissions ๐Ÿ”

    Snowflake Native apps do not have default access to the consumer's account objects. Thus, to allow Batch's Native app to manipulate the required objects for synchronization, the following permissions need to be granted by an Administrator:

    • SELECT on the Dynamic table containing the data you want to synchronize with Batch

    3.2. Create a new synchronization task

    This allows you to create a background task that is scheduled to run periodically (every 24 hours by default), which will make sure all updates (inserts/deletes/edits) on your source Dynamic table are sent to Batch.

    1 โ†’ Go to the "Create a Sync task" tab.

    2 โ†’ Fill in the Project Key: The Batch Project Key for the project you want to send data to. This must match one of the projects you added in the "Manage Batch Projects" tab.

    3 โ†’ Fill in the Dynamic Table Name: The fully qualified name of the source dynamic table in Snowflake (e.g., MY_DATABASE.MY_SCHEMA.BATCH_PROFILE_DATA). The application will create a stream on this table to capture new and updated rows.

    4 โ†’ Fill in the Identifier Column name: The name of the column in your dynamic table that contains the user identifier (e.g., CUSTOM_ID). This is used to match users in Batch, so it must be the same identifier used in your Batch Profile base.

    5 โ†’ After filling in all the fields, click the "Activate data synchronization" button.

    Note that the first sync will include all data contained in the Dynamic table.

    If a task with the exact same configuration (Project Key and Dynamic Table) already exists but is paused, the app will update and resume it for you. Note that updating a task this way will trigger a synchronization of all data contained in the Dynamic table. To simply "Resume" a paused task without a full refresh, go to the "Manage Sync tasks" tab.

    4. Manage Synchronization Tasks

    This tab provides a view to monitor and control all your active and paused synchronization tasks.

    1 โ†’ Go to the "Manage Sync Tasks" tab.

    For each task, the following information is displayed:

    • Task Name: The unique name of the task in Snowflake.

    • Project Name and Key: The associated Batch project Name (display name selected during project registration) and Project Key.

    • Table: The source dynamic table used by the task.

    2 โ†’ Click the "Resume" button to resume a paused task: The task's status will change to STARTED

    3 โ†’ Click the "Suspend" button to pause a running task: The task's status will change to SUSPENDED.

    4 โ†’ Click the "๐Ÿ—‘๏ธ" button to delete a task.

    5 โ†’ A status message below the task displays information on the last task run.

    6 โ†’ Click the "Refresh Tasks" button to see the most up-to-date view of existing tasks.

    The application enforces a limit on the number of concurrently running tasks that is set to 2 by default.

    5. Test and Monitor the workflow

    Testing

    You can use Batchโ€™s Profile View to verify that the customer data has reached its destination, on the basis of a customer ID (the same one contained in your User ID column): .

    Monitoring task executions

    To monitor task execution activity, you can check the information displayed in the . This will let you know what tasks are running/suspended, as well as additional information on the last executions.

    If any issues occur during task execution, a red status message will be displayed below the task with additional information on the encountered error.

    Accessing container logs

    All logs generated by the sync task containers are automatically captured and stored in your account's central snowflake.telemetry.events table. This provides a persistent, queryable record of all activity.

    To find logs relevant to this application, you can run a query that filters these events based on the application's unique compute pool name. This is the most effective way to see a complete history of all your sync tasks.

    Run the following command in a Snowflake worksheet to retrieve the latest logs:

    This query will show you the log messages and all their associated metadata, giving you a comprehensive view for debugging.

    Debug Mode

    For more detailed troubleshooting, you can enable a global Debug Mode. When active, the data sync container generates more verbose logs, which can help diagnose complex issues with data processing or API communication.

    When to Use It: Enable this mode only when you are actively troubleshooting a failing sync task and the standard execution logs do not provide enough detail. Remember to disable it once the troubleshooting is done to avoid unnecessary storage of a high volume of detailed logs.

    How to Enable/Disable It: Debug Mode is an application-level setting that must be changed. To enable it, run the following SQL command in a Snowflake worksheet:

    To disable it, simply set it back to 'FALSE'.

    Important:
    • Your table must contain a User ID column to be used as a mapping key with Batchโ€™s Profile base. This must be the same identifier you use as Batchโ€™s Custom User ID.

    • Batchโ€™s Native app uses Batchโ€™s Profile API to send profile data. Thus, your table data must comply with the APIs requirements (e.g. attribute max length, etc). Non-compliant data will be ignored during synchronization.

    • Columns that should be mapped with Batch native attributes should be named according to Batch's native attribute documentation. e.g. to map email addresses, name the column "$email_address".

    • Columns containing DATES or URLS must be prefixed by date_ or url_ respectively. If not, these fields will be synchronized as String attributes.

    • The app uses Snowflake Streams to capture changes on your Dynamic Table. Therefore, ensure that your underlying query supports incremental refresh.

    USAGE
    on both the
    Database
    and
    Schema
    in which the Dynamic table is stored

    Here is how you can grant these rights:

    Created: The timestamp when the task was created.

  • Status: The current state of the task (STARTED or SUSPENDED)

  • Suspended Date: If the task is suspended, this shows when it was paused.

  • Snowpark Container Services
    Snowflake Marketplace
    External Access Integration
    Batch Project Key
    Batch REST API Key
    Dynamic table
    How to find a user's profile on the dashboard?
    "Manage sync tasks" tab
    CREATE OR REPLACE DYNAMIC TABLE batch_sync_table 
    TARGET_LAG = '60 minutes'
    WAREHOUSE = MY_WAREHOUSE
    AS   
    -- Your SQL query here
    SELECT * 
    FROM 
        snowflake.telemetry.events
    WHERE
        -- Filter to logs specifically from this application's compute pool
        RESOURCE_ATTRIBUTES['snow.compute_pool.name']::string = 'BATCH_DATA_SYNC_COMPUTE_POOL'
    ORDER BY
        timestamp DESC;
    
    CALL BATCH_DATA_SYNC.batch_app.update_config('DEBUG_MODE','TRUE');
    GRANT USAGE ON database [YOUR DATABASE] TO APPLICATION BATCH_DATA_SYNC;
    GRANT USAGE ON schema [YOUR SCHEMA] TO APPLICATION BATCH_DATA_SYNC;
    GRANT SELECT ON dynamic table [YOUR DYNAMIC TABLE] to APPLICATION BATCH_DATA_SYNC;

    How can I connect Batch to AppsFlyer?

    You can use AppsFlyer attribution data to improve your segmentation within Batch. The connection only requires a quick code addition.

    is a mobile advertising attribution and analytics company. AppsFlyer helps marketers to pinpoint their targeting, optimize their ad spend and boost their ROI.

    On the other hand, Batch can receive information from AppsFlyer using their callbacks attribution. This will allow you to re-target your users with notifications based on the installation source.

    โ€‹

    Understanding how the connection works

    Callbacks provided by AppsFlyer SDK allow you to sync AppsFlyer data with Batch SDK. You will be able to use Batch segmentation to target users based on install source attribution data.

    iOS integration

    After setting up the AppsFlyer attribution callback (iOS instructions on callbacks), you need to send Batch the appropriate data via the SDK's method.

    Here is an example of how you can set the callback in your app code (using Batch V2 SDK): โ€‹

    Android integration

    Similarly, you need to set up the AppsFlyer attribution callback (Android instructions) and send Batch the attribution data via the SDK's method.

    Here is an example of how you can set the callback in your app code (using Batch V2 SDK):

    Whatโ€™s next?

    Now, you can test your integration using our and find out if your data work properly on the Batch dashboard.

    Once your tests are finished, you will be able to specify an installation source and more from the campaign editor:

    Specify an installation source in the campaign editor

    It's now super easy to target users based on attribution ๐Ÿ˜‰.

    AppsFlyer
    import AppsFlyerLib
    import Batch
    
    extension AppDelegate: AppsFlyerLibDelegate {
        func onConversionDataSuccess(_ conversionData: [AnyHashable : Any]) {
            BatchProfile.editor { editor in
                if let mediaSource = conversionData["media_source"] as? String {
                    try? editor.set(attribute: mediaSource, forKey: "appsflyer_source")
                }
                if let campaignId = conversionData["campaign"] as? String {
                    try? editor.set(attribute: campaignId, forKey: "appsflyer_campaign")
                }
                if let adSet = conversionData["af_adset"] as? String {
                    try? editor.set(attribute: adSet, forKey: "appsflyer_adset")
                }
            }
        }
        
        func onConversionDataFail(_ error: any Error) {
        }
    }
    AppsFlyerLib.getInstance().registerConversionListener(this, object:
        AppsFlyerConversionListener {
        override fun onConversionDataSuccess(conversionData: MutableMap<String, Any>?) {
            if (conversionData == null) {
                return
            }
    
            Batch.Profile.editor().apply {
                (conversionData["campaign"] as? String)?.let {
                    setAttribute("appsflyer_campaign", it)
                }
    
                (conversionData["media_source"] as? String)?.let {
                    setAttribute("appsflyer_source", it)
                }
    
                (conversionData["af_adset"] as? String)?.let {
                    setAttribute("appsflyer_adset", it)
                }
    
                save()
            }
    
        }
    
        override fun onConversionDataFail(error: String?) {
        }
    
        override fun onAppOpenAttribution(data: MutableMap<String, String>?) {
        }
    
        override fun onAttributionFailure(error: String?) {
        }
    
    })
    Specify an installation source in the campaign editor
    Audience
    difference between Batch's CEP and MEP
    difference between Batch's CEP and MEP
    Audience management documentation
    How to find a user's profile on the dashboard?
    difference between Batch's CEP and MEP
    difference between Batch's CEP and MEP
    Profile view