Releases: snowplow/snowplow-android-tracker
Version 3.2.1
This fixes a bug that affected datetimes in the session entity. The user device locale was being used for creating dates, sometimes resulting in non-Arabic numerals, e.g. Eastern Arabic numerals. The session entity now only uses English ("en") numerals.
CHANGELOG
Bug fix:
Ensure english numerals are used in datetimes (#537)
Version 3.2.0
The tracker now makes use of the client_session
schema version 1-0-2, which adds two new properties to the session context entity – eventIndex
(index of the event in the session) and firstEventTimestamp
(timestamp of the first event in the session). The event index property is useful for ordering events as they were tracked.
The release also changes the behaviour for 5 HTTP status codes (400, 401, 403, 410, and 422) that, when received in response from the Collector, will now cause the tracker not to retry sending events (i.e., drop the events). Requests with all other 3xx, 4xx, and 5xx status codes are retried. The set of status codes for which events should be retried or not is customizable in EmitterConfiguration
. The following shows the configuration in the Android tracker:
EmitterConfiguration emitterConfiguration = new EmitterConfiguration();
Map<Integer, Boolean> retryRules = new HashMap<>();
retryRules.put(403, true); // retry for the 403 HTTP status code
emitterConfiguration.setCustomRetryForStatusCodes(retryRules);
Finally, the release adds support for storing cookies set by the Collector. This means that the network_userid
property set by the Collector is now kept consistent among events tracked by the same tracker. Cookies are stored in shared preferences with an option to provide a custom cookie jar.
CHANGELOG
Features:
- Add eventIndex and firstEventTimestamp properties to client sessions (#517)
- Add a customizable set of failure HTTP status codes for which collector requests should not be retried (#518)
- Add support for storing cookies in NetworkConnection (#519)
Under the hood:
Version 3.1.2
This patch version fixes a couple of problems relating to context entities, and a logging bug.
Logging can be set as part of the tracker configuration, but is off by default in the Android tracker. Unfortunately, a logic error meant that log levels would only be set if trackerDiagnostic
mode was also configured. Logging now works as expected.
The first entity problem relates to the Lifecycle autotracking feature. When configured, Background
and Foreground
events are fired as the user navigates away from, and back to, the app. Also, a LifecycleEntity
is attached to all events, marking if they occurred when the app was visible or not. Or rather, that's what now correctly happens with this release. Previously, lifecycle entities were mistakenly not added to events until after a Background event had fired.
The minor second problem was in the built-in demo app. Two copies of the application entity were being added to the generated events. This has been fixed by using a different schema for the global context example.
CHANGELOG
Bug fixes:
Version 3.1.1
This patch version brings a single improvement that enables updating the collector endpoint URL for the Emitter (by setting trackerController.network.endpoint
) even in case it is running. Since the Emitter tends to run for longer periods of time (to wait for new events), this helps in many cases where the new endpoint setting would otherwise be ignored.
CHANGELOG
Enhancements:
- Enable updating collector endpoint while Emitter is running (#508)
Version 3.1.0
This version has some improvements to the session management and the tracker control.
About the session management, we noticed that the behaviour of the session timeout checking with the lifecycle events could cause bad interpretation of the session in some edge cases. The previous version of the tracker used to check the timeout based on the state of the app. To make an example, a transition from foreground to background was causing the generation of an application_background
event checking the session with the background timeout, accordingly with the state of the app. This caused a weird behaviour where the session remained the same even if an app was in background for longer than the background timeout. This new version fix that issue.
Another improvement to the session management is the ability to receive the details of the new session (SessionID, SessionIndex, etc.) as soon as the session is renewed. That's a feature that disappeared with the v2 of the native mobile trackers.
We added back another feature that was removed with v2: the ability to pause and resume the emission of events. In cases of low bandwidth or low battery we can allow the app to pause the emission of the events without pausing the ability to track them.
CHANGELOG
Bug fixes:
- Check session for background event using foreground timeout (#499)
Enhancements:
Under the hood:
Snowplow Android Tracker v3.0.3
This release fixes a bug introduced in version 3.0.0 which resulted in multiple of the same screen context entities being added to ScreenView events. The problem occurred when multiple ScreenView were tracked in sequence. Each ScreenView tracked caused the multiplication of the Screen contexts tracked in that same event. This issue affects only the Android tracker.
CHANGELOG
Bug fixes:
Fix multiple ScreenContexts on ScreenView events (#495)
Snowplow Android Tracker v3.0.2
This is a patch release that fixes a problem where the Android IDFA attribute of the platform context remained null
in case ad tracking was previously disabled and later enabled by the user while app was running. This was caused by caching the value since the initialization of the tracker. Instead, this release regularly updates its value while it is null
.
CHANGELOG
Bug fixes:
- Fix updating IDFA during app runtime (#492)
Snowplow Android Tracker v3.0.1
This is a patch release that fixes a bug introduced in version 3.0.0 which resulted in multiple of the same screen context entities being added to events. The problem occurred when tracker configuration was updated (manually or through remote configuration) in which case new state machines for managing the context state were added but old ones weren't removed. This fix removes old state machines on configuration updates and allows only one of the same type to exist.
CHANGELOG
Bug fixes:
Do not allow multiple state machines with the same ID (#489)
Snowplow Android Tracker v3.0.0
This release completes the transition started with the previous major release v2.0, completely removing support for the old v1.0 API. The platform context now includes information about memory, storage, and battery usage. With this new version we provide two new events out-of-the-box: DeepLinkReceived
and MessageNotification
. Furthermore, each event tracked can be attached with a Lifecycle
context indicating if the app is in background or foreground state and a DeepLink
context attached to the first ScreenView
tracked after a DeepLinkReceived
.
CHANGELOG
Enhancements:
- Allow campaign enrichment with DeepLinkReceived events (#480)
- Add convenient methods for DeepLinkReceived event (#474)
- Capture campaign attribution data from deep links (#470)
- Add event for remote and local notifications (#478)
- Add memory, battery and storage info to mobile context (#476)
- Add lifecycle context to indicate app state when the event is tracked (#471)
Under the hood:
Snowplow Android Tracker v2.2.1
This is a patch version that fixes a bug introduced with the version 2.0 which allows multiple tracker instances in the same app. The Session UserID should be common among the instances but with the previous version each instance of the tracker generated its own Session UserID. With this fix, all the instances can share the same Session UserID.
CHANGELOG
Bug fixes:
- Fix Session UserID not consistent among tracker instances (#466)