Skip to content

Releases: snowplow/snowplow-android-tracker

Version 5.4.4

05 Sep 11:07
Compare
Choose a tag to compare

This patch release fixes invalid consent document context entity that was sent in case no name or description was given.

Bug fixes

  • Fix invalid consent document context entity in case no name or description is given (#637)

Version 5.4.3

31 Aug 06:59
Compare
Choose a tag to compare

This patch release fixes a bug in reading configuration for platform context properties and upgrades tracker dependencies.

Bug fixes

  • Fix network type is tracked instead of network technology when filtering mobile context parameters (#635)

Under the hood

  • Upgrade com.google.android.gms:play-services-analytics from 18.0.2 to 18.0.3
  • Upgrade com.android.tools:desugar_jdk_libs from 1.1.5 to 1.1.9
  • Upgrade androidx.preference:preference from 1.2.0 to 1.2.1
  • Upgrade androidx.core:core-ktx from 1.9.0 to 1.10.1
  • Upgrade demo app dependencies
  • Set signing config for demo apps

Version 5.4.2

09 Aug 14:23
Compare
Choose a tag to compare

This release fixes the schema used for the player entity in media events. The URI of the schema was changed due to conflicts with another schema.

Bug fixes
Update vendor and version of the player schema used in media tracking (#632)

Version 5.4.1

25 Jul 12:14
Compare
Choose a tag to compare

This is a patch release that fixes a crash resulting from Java's Locale util returning an inappropriate result, namely an invalid ISO-639 language code.

Bug fixes
Prevent crash when Locale returns invalid language code (#628)
Correctly add ecommerce entity in demo remote config (#629)

Version 5.5.0-beta.1

13 Jul 13:10
Compare
Choose a tag to compare
Version 5.5.0-beta.1 Pre-release
Pre-release

This pre-release adds a new tracker plugin to integrate with the Kantar FocalMeter system by sending the user ID in HTTP GET request to a specified endpoint whenever the ID changes.

Enhancements

  • Add configuration to send requests with user ID to a Focal Meter endpoint (#571)

Version 5.4.0

12 Jul 09:59
Compare
Choose a tag to compare

This release brings Snowplow ecommerce tracking to our Android and iOS trackers. We've added 11 new event types to make tracking and modeling ecommerce user behaviour easier. It's the same API as for the Snowplow ecommerce plugin in the JavaScript tracker, and the mobile data is already supported by the ecommerce data model. Check out the documentation to find out how to enable this, and stay tuned for the mobile version of the Ecommerce Accelerator.

This release also updates the interval for refreshing properties in the platform context entity from 0.1s to 1s in order to reduce CPU usage.

Changelog

Enhancements

  • Add Snowplow ecommerce events and entities (#611)
  • Increase interval for updating platform context properties from 0.1s to 1s (#624)

Version 5.3.0

30 Jun 13:48
Compare
Choose a tag to compare

This release brings the new media tracking APIs and improvements in remote configuration!

The media tracking APIs enable tracking of media events from video or audio playback. They provide the following key features:

  1. Integrate with any media player: Instead of integrating with a specific media player, the plugin provides universal media tracking APIs that can be utilized to track media events regardless of the media player being used to play the content.
  2. Media session tracking: The plugin adds a new media session context entity to tracked events that identifies the media playback. The entity also adds statistics calculated using edge analytics on the tracker such as the time spent playing, buffering or the number of ads played.
  3. Support for tracking live video: With the addition of media ping events, the plugin now supports periodically tracking the progress within a live streamed video. The media ping events are fired periodically when the media is being played with configurable frequency and settings. Moreover, the plugin also makes sure that page ping events are being tracked during playback even if the user is not interacting with the page.
  4. Tracking ads during playback: The plugin provides out-of-the-box events and entities for tracking ads within linear, non-linear and companion ad breaks during playback.
  5. New media event schemas: The tracked events follow new schemas with additional properties. New events and entities for data quality and error tracking have been added.
  6. Customizable: The plugin supports tracking custom media events and custom entities to meet your specific requirements.

Here is an example of how to track media events:

val id = "XXXXX"
val tracker = Snowplow.defaultTracker

// Initialize the media tracking identified by the `id`. It will start tracking media ping events.
val mediaTracking = tracker?.media?.startMediaTracking(id)
// Track a media play event within the media tracking.
mediaTracking?.track(MediaPlayEvent())
// Update the current playback position without tracking any events.
mediaTracking?.update(player = MediaPlayerEntity(currentTime = 10.0))
// Track the start of an ad.
val ad = MediaAdEntity(adId = "1234", name = "Podcast Ad", duration = 15.0)
mediaTracking?.track(MediaAdStartEvent(), ad = ad)
// End and clear the state for the media tracking.
tracker?.media?.endMediaTracking(id)

The release also brings improvements in the remote configuration. It adds support for configuring emitter configuration through remote configuration. It also respects default configuration for properties that are not configured through remote configuration.

Enhancements

  • Add media controller with APIs to track media events (#606)
  • Add emitter configuration support to remote configuration (#607)
  • Use default configuration for properties that are not configured using remote configuration (#613)
  • Add custom HTTP headers configuration (#276)

Bug fixes

  • Truncate language in platform context entity to max 8 characters (#621)
  • Truncate URL scheme for page_url and page_refr properties (#616)
  • Remember requestCallback, customRetryForStatusCodes and onSessionUpdate set for initialized trackers after configuration updates

Version 5.2.0

02 Jun 14:42
Compare
Choose a tag to compare

The application install event can now track the install_referrer context entity that contains referral information retrieved from the Google Play Referrer library. This includes the referrer URL, click and install timestamps. To enable tracking the entity, you will need to have installAutotracking enabled and add the following line to the dependencies section of the build.gradle file in your app:

dependencies {
    ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Tracker plugins provide a new filter callback that enables you to add custom logic that decides whether a given event should be tracked or not. This can for example enable you to intercept events automatically tracked by the tracker and skip some of them. For instance, the following code will apply to all screen view events and only accept ones with the name "Home Screen", other screen view events will be discarded:

plugin.filter(
    schemas = listOf(
        "iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0", // screen view events
    )
) { event ->
    event.payload["name"] == "Home Screen"
}

Finally, you can now provide a configuration version for default configuration used in the remote configuration setup. This makes sure that the tracker is only reloaded when a newer configuration is available on the remote endpoint than the default one.

Enhancements

  • Track install referrer details entity along with the application install event if available (#249)
  • Add a filter API to plugins to decide whether to track an event or not (#608)
  • Add version to default remote configuration and don't update unless remote configuration is newer (#603)

Version 5.1.0

11 May 16:00
Compare
Choose a tag to compare

This minor release extends the platform context entity tracked in events with new information:

  • isPortrait – whether the device orientation is portrait (either upright or upside down).
  • resolution – Screen resolution in pixels.
  • scale – Scale factor used to convert logical coordinates to device coordinates of the screen.
  • language – System language currently used on the device (ISO 639)
  • appSetId – Android vendor ID scoped to the set of apps published under the same Google Play developer account
  • appSetIdScope – Scope of the appSetId

It also makes it configurable which properties should be tracked in the platform context entity using the TrackerConfiguration.platformContextEntities configuration.

Enhancements

  • Track new properties in platform context version 1-0-3 and make it configurable which properties to track (#598)

Version 5.0.1

24 Apr 11:10
Compare
Choose a tag to compare

This patch release fixes a bug in SubjectConfiguration which resulted in the user ID property not being added to events.

CHANGELOG

Bug fixes

  • Fix adding user ID set in SubjectConfiguration to events (#595)