Event dispatchers

Available in Batch 1.15.0 and higher

In this article, we'll go through the process of improving your external analytics by either installing a premade event dispatcher or making your own one.

What is an event dispatcher?

Batch can trigger with a number of analytics-oriented events that might be of interest in external analytic tools. An event dispatcher is the code that listens to those events, and dispatches them to the solution of your choice.

Add a "ready-to-go" dispatcher

Batch provide you with premade dispatchers for specific use cases (aka ready-to-go dispatcher). They are enabled by simply adding them in your dependency, and will automatically track events into your analytics solution with a predetermined structure

Create a custom dispatcher

Or, if you need, you can implement your own dispatcher.

Custom

Access data from the event

The Batch SDK will inform you when one of the following event happen:

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

  • 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 appear 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 message or landing 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).

With every events come a Payload object, allowing you to access data associated with the event, such as a push notification custom payload value, or the tracking ID of an in-app or landing campaign.

override fun dispatchEvent(type: Batch.EventDispatcher.Type, payload: Batch.EventDispatcher.Payload) {
    Log.d("Dispatcher", "I'm dispatching : " + type.name + ", " + payload.trackingId)
}

Last updated

Was this helpful?