Snowplow iOS and Android Tracker v2.0 released

Share

We are pleased to announce the release of our mobile trackers: Snowplow iOS and Android Tracker version 2.0. The recent releases of the mobile trackers version 1.x have seen a progressive reduction of the feature gap between iOS and Android and an increased reliability of the trackers. With version 2.0, we complete the process with a brand new API focused on a better usability and improved long term extensibility.

This new version introduces:

  • the ability to run multiple trackers in the same app (not possible with the version 1.x);
  • a new API, common between iOS tracker and Android tracker (the API of the version 1.x still available but deprecated with minor breaking changes);
  • better integration with modern languages: Swift and Kotlin.

The Mobile Trackers v2.0 can be configured at the startup with a set of Configuration objects. The entry point to setup the tracker is now the Snowplow class and the createTracker methods. They need a namespace string which is now mandatory. You can find more details about the default configuration and the various configurable fields in the next section.

Use the Quick Start Guide  to rapidly instrument the tracker in your app.

If you have already instrumented one of the previous 1.x versions, there are some breaking changes to consider, so we recommend to consult the Migration Guide.

Read on below for:

  1. Tracker setup
  2. Documentation
  3. Getting help

1. Tracker setup

The tracker configuration for the v1.x of the mobile trackers required the creation of the Tracker and Emitter components. Optionally, the Subject component could be configured as well. Then both needed to be passed to the Tracker component. The version 2.0 simplifies this process, letting the developer to specify the configuration with Configuration objects and passing them to a createTracker method able to return the tracker ready to use, without any other extra steps.

The entry point to setup the tracker is now the Snowplow class and the createTracker methods, where you need to pass the Configuration objects.

There are several Configuration classes usable for the fine tuning of the tracker.

  • NetworkConfiguration: to configure network connection with the Snowplow collector.
  • TrackerConfiguration: to configure contexts and automatic events of the tracker, and general behaviour.
  • SessionConfiguration: to configure session behaviour.
  • EmitterConfiguration: to fine tune about how the tracker sends events to the collector.
  • SubjectConfiguration: to specify details to send with events about the user and the platform.
  • GdprConfiguration: to configure the GDPR context.
  • GlobalContextsConfiguration: to configure the GlobalContexts feature to dynamically send created contexts with some selected events.

Many of these settings can be changed at runtime through the tracker instance (TrackerController). Through the TrackerController you can access other subcontrollers (SessionControllerNetworkController, etc.) which allow detailed settings of the tracker.

The tracker has a default configuration where some settings are enabled by default:

  • session tracking
  • screen tracking
  • platform contexts (mobile specific context fields)

3. Documentation

Information about how to use the tracker can be found in the Mobile Trackers v2.0 documentation.

More details about the migration from v1.x to v2.0 in the Migration Guides.

4. Getting help

For help on integrating the tracker please have a look at the setup guide. If you have any questions or run into any problems, please visit our Discourse forum. Please raise any bugs in the issues section of the Android Tracker or iOS Tracker repositories on GitHub.