Skip to content

Releases: snowplow/snowplow-android-tracker

Version 6.3.0

10 Oct 09:52
6.3.0
faf42dc

Choose a tag to compare

This release updates the Android target SDK version to 35 and gradle version to 8.13. It also updates the okhttp library to version 5.2, addresses bugs and removes the need for library desugaring.

Changes

  • Upgrade gradle to 8.13, target SDKs to 35 and okhttp to 5.2
  • Remove usage of java.util.function.* in order to remove the need for library desugaring
  • Change an Emitter log from error to debug (#275)

Bug fixes

  • Fix: Handle empty/blank appSetId to prevent validation errors (#710)
  • Fix DevicePlatform.getByValue to compare value property instead of enum name (#714)

Under the hood

  • Fix CI build and address linting issues

Version 6.2.0

13 Feb 11:10
8042b4b

Choose a tag to compare

This release adds an option to continue the previously persisted session when the app restarts.

The default behaviour is to always start a new session when a new tracker is created (i.e., when the app restarts) regardless of whether the previous one timed out or not.

With the option enabled, every session update is persisted to the UserDefaults storage. This includes the current event index in the session and a timestamp of the last update of the session. In case it's disabled, only session changes are persisted to UserDefaults.

The option can be configured using SessionConfiguration:

val sessionConfig = SessionConfiguration()
    .continueSessionOnRestart(true)

Enhancements

  • Add an option to continue previously persisted session when the app restarts rather than starting a new one (#340)

Version 6.1.1

22 Jan 14:44
5cf2974

Choose a tag to compare

This patch release fixes a bug that caused screen view events to be tracked when app returns to foreground from a background state in case screen view autotracking is enabled.

Bug fixes

  • Do not autotrack screen view events when app comes to foreground (#701)

Version 6.1.0

20 Jan 10:22

Choose a tag to compare

This version makes tracking in hybrid apps easier and more powerful, by adding support for the new Snowplow JavaScript tracker WebView plugin (available from JS tracker v4.3).

Implement the JS tracker plus WebView plugin in your WebView to automatically forward all web events to the Android tracker.

Enhancements

  • Add new WebView interface (#700)

Version 6.0.6

12 Sep 16:31

Choose a tag to compare

Some Android devices report their battery level incorrectly. This patch updates the PlatformContext to track negative battery levels as null, preventing schema violations.

Bug fixes:

  • Set negative battery levels to null in mobile context (#698)

Version 6.0.5

22 Aug 15:21
3c8f9fa

Choose a tag to compare

This patch release fixes unhandled exceptions in the tracker during initialization and tracking under some circumstances.

Bug fixes:

  • Handle exceptions raised by the Executor during initialization of the thread pool for emitter (#694)
  • Fix concurrent modification when creating TrackerEvent by copying the payload (#692)

Release 6.0.4

12 Jun 11:31

Choose a tag to compare

This release fixes two bugs.

When calling tracker.emitter.serverAnonymisation = true, the flag is now set quickly, so that subsequent events tracked will immediately be anonymised.

For ApplicationInstall events, the timestamps in the referrer_details entity are now processed correctly. The timestamps provided by the Android InstallReferrer API are in seconds since epoch, but the tracker was processing them as milliseconds.

Bug fixes

  • Send correct install referrer timestamps (close #687)
  • Set serverAnonymisation more quickly (close #689)

Release 6.0.3

19 Apr 09:11

Choose a tag to compare

This patch release fixes two bugs.

The tracker will no longer crash if the app has a low version of the optional dependency InstallReferrer.

We've also added a new configuration flag, useContextResourcesScreenResolution, to fetch the default screen resolution - for the dvce_screenwidth and dvce_screenheight event properties - using a newer method.

NB: the dvce_screenwidth and dvce_screenheight screen resolution values will be different when this flag is turned on.

val networkConfig = NetworkConfiguration("https://endpoint")
val subjectConfig = SubjectConfiguration().useContextResourcesScreenResolution(true)

Snowplow.createTracker(
    context, 
    "namespace",
    networkConfig,
    subjectConfig
)

When the flag is false (default), the default resolution is fetched using a deprecated method (WindowManager). This can cause StrictMode Violations under certain conditions. Newer methods of obtaining screen size don't include the menu bar.

The mobile context entity is not affected by the flag, as it already uses the newer Android API to obtain the screen resolution.

Bug fixes

  • Add Subject config flag to avoid WindowManager bug (#657)
  • Catch more generic exceptions for InstallReferrer (#647)

Release 6.0.2

29 Feb 15:21

Choose a tag to compare

This release fixes a problem with fetching the Android Advertising ID (IDFA) that delayed the createTracker call to take 10 seconds in case it was run on a background thread. The tracker now doesn't retrieve any platform context properties during the createTracker call (they are fetched on background threads as events are processed), making it non-blocking to initialize the tracker.

Bug fixes

  • Fix createTracker call hanging for 10 seconds if run on a background thread (#620)

Version 6.0.1

14 Feb 14:48

Choose a tag to compare

Two bug fixes. The media tracking PercentProgress event now includes the percent progress. Also, the screen state is now correctly updated, so that all events have the right screen details.

Bug fixes

  • Fix wrong screen entity info assigned for screen end event and in case events are tracked right before screen view (#673)
  • Add percent progress to event (#662)