-
1.7.0 Nov 2024
TealiumInitProvider
added to automatically execute the minimum amount of Tealium work on the Main Thread at app launch- This will register for Application/Activity lifecycle events at launch
- This allows for
Tealium
instances to be safely created off of the Android Main Thread. Tealium
instances have a grace period of 10s (by default) from launch to be created in order to ensure accurate Activity tracking- This time limit is configurable either by:
- updating the content-provider's meta-data using AndroidManifest merge rules
- or by removing it using AndroidManifest merge rules, and calling
ActivityManager.getInstance(context, <timeout in seconds>)
inApplication.onCreate()
before anyTealium
instances are created.
- This time limit is configurable either by:
Batching.batchSize
now actively restricts size to be between 1 and 10Dispatch.remove(key: String)
method added to allow for removing data- this was added to the
interface
in a backward compatible way, but any custom implementations are advised to override the default implementation.
- this was added to the
- BugFix: RemoteCommands not being processed when expected
- Remote Command processing now inline with tealium-swift
- RemoteCommand events are now processed earlier in the dispatch process, unless explicitly forbidden by a
DispatchValidator
(e.g. Consent or a custom suppliedDispatchValidator
) - The exceptions to this are for Batching, Connectivity and Low Battery.
- important - Users upgrading to
kotlin-core:1.7.0
are advised to updatekotlin-remotecommand-dispatcher
to1.5.0
to avoid the possibility of duplicated events
- BugFix: Queued events sent on backgrounding sometimes caused ANRs or OOM
- Queue dispatches are now dispatched in batches according to the configured batch size to minimize memory requirements
- These dispatches are also processed on the Tealium processing thread.
- RemoteCommandDispatcher 1.5.0
- RemoteCommand events no longer processed on
onDispatchSend
but only ononRemoteCommandSend
(WebView controlled) andonProcessRemoteCommand
(JSON controlled) - important - Users upgrading to
kotlin-remotecommand-dispatcher:1.5.0
are advised to updatekotlin-core
to1.7.0
to avoid the possibility of missed events
- RemoteCommand events no longer processed on
- Location 1.1.3
- BugFix: Stopping location tracking threw exceptions under some conditions
-
1.6.1 Oct 2024
- Added proper error handling for loadFromFile in JsonLoader
- VisitorService 1.2.1
- Added proper error handle when saving VisitorProfile
-
1.6.0 May 2024
HttpClient
now supports only retrying on retryable response codes.- BugFix:
ResourceRetriever
refresh interval affecting library settings being fetched too often - BugFix: Reinstated missing
ResourceEntity
class - RemoteCommandDispatcher 1.4.0
- Adding a RemoteCommand with a remote URL config, now supports falling back to loading from an
Asset
names{command id}.json
on the first launch.- if a file name is also provided, then it will use that name to lookup the
Asset
- if a file name is also provided, then it will use that name to lookup the
- It is also now safe to omit the
.json
extension on thefilename
parameter when adding a new remote command, though the.json
extension of the actual file should still be present. - BugFix: Refresh interval was not being adhered to
- Note -
com.tealium:kotlin-core
module dependency minimum raised to1.6.0
- Adding a RemoteCommand with a remote URL config, now supports falling back to loading from an
- TagManagementDispatcher 1.2.2
- WebView is refreshed on new session to ensure latest IQ configuration is available.
-
1.5.5 Sep 2023
- BugFix: proguard adjustment resolve missing
BatchDispatch$Companion
class. - Minor lint warning fixes
- BugFix: proguard adjustment resolve missing
-
1.5.4 Aug 2023
- Core 1.5.4
- Session Data Expiration BugFix: fixes an issue whereby session scoped data may not be expired on launch
- Event Router events Buffering: buffers events until sdk is ready so events are not missed during startup
- Database Lock crash BugFix: Some uncaught exceptions in persistence led to possible crashes
- ProGuard rules updates to reinstate incorrectly obfuscated
BatchDispatch
class
- AdIdentifier 1.1.2
- BugFix: DataLayer writes moved onto Tealium background thread
- Core 1.5.4
-
1.5.3 Jun 2023
- Database BugFix: add database status check before performing writable actions, and allow event queueing until database is fully operational
- Library Settings BugFix: update how remote settings were fetched and saved
- Module Manager BugFix: update to thread-safe collection
-
1.5.2 Apr 2023
- Connectivity Collector BugFix:
- Fixes an issue in the event where there is a blank string returned from
telephonyManager.networkOperator
- Fixes an issue in the event where there is a blank string returned from
- Deep Link Reporting BugFix:
- Deep Link handling limited to Activities launched with Intents where action == Intent.ACTION_VIEW
- Empty Uris are ignored, and deep links that match what is already stored is a no-op
- Handling pushed onto Tealium background thread.
- Connectivity Collector BugFix:
-
1.5.1 Oct 2022
- BugFix - Fixes an edge case where events can arrive at dispatchers in the incorrect order
-
1.5.0 Oct 2022
- Visitor Switching
- Additional TealiumConfig option
visitorIdentityKey
to configure where to find a known identity in the DataLayer - Known identities are hashed and linked to the
tealium_visitor_id
to allow better switching between returning identities
- Additional TealiumConfig option
- Additional listeners
VisitorIdUpdatedListener
- notifies when the visitor id has been updated, either as a result of switching identities or of resetting the visitor idDataLayerUpdatedListener
onDataUpdated(String, Any)
- notifies that a value has been updated in the DataLayeronDataRemoved(Set<String>)
- notifies that the given keys have been removed from the DataLayer, either by user interaction or data expiration
- RemoteCommandDispatcher 1.2.0
- Support for default mapping
all_events
andall_views
in the JSON mappings file to enable triggering specified commands in response to every view/event
- Support for default mapping
- TagManagement 1.2.0
QueryParameterProvider
- allows additional parameters to be added to the URL used for the TagManagement module- Improved WebView instantiation and page load management
- Kotlin Dependency updates
- Stdlib: 1.6.21
- Coroutines: 1.6.2
- Visitor Switching
-
1.4.3 Sep 2022
- Core 1.4.3
- DeviceCollector Bug fix - Correct calculation for tealium_logical_resolution
- TagManagement 1.1.3
- Bug fix - Relocate sessionCountingEnabled to fix miscount on fresh launch
- VisitorService 1.1.1
- Bug fix - Move VisitorService profile override to earlier initialization
- Location: Add missing Proguard rules for new classes
- Core 1.4.3
-
1.4.2 Jun 2022
- Core 1.4.2
- Add
overrideConsentCategoriesKey
toTealiumConfig
to allow for a custom consent categories key
- Add
- Core 1.4.2
-
1.4.1 Jun 2022
- Core 1.4.1
- Fix: Update Consent Status to return string instead of enum value
- Core 1.4.1
-
1.4.0 May 2022
- Core 1.4.0
- Add
gatherTrackData
to exposed all datalayer and collectors variables
- Add
- Core 1.4.0
-
1.3.3 Apr 2022
- Core 1.3.3
- Update remote command dependency
- RemoteCommandDispatcher 1.1.1
- Add remote command names and versions to datalayer
- Core 1.3.3
-
1.3.2 Mar 2022
- Core 1.3.2
events
property added toTealiumConfig
to enable adding listeners on startup, as some events could be missed during startup.
- Lifecycle 1.1.1
- Fix: Default values for some attributes causing missed events when combined with TagManagement
- InAppPurchase 1.0.1
- Additional
purchase_date
key provided in ISO-8601 format
- Additional
- Core 1.3.2
-
Tag Management 1.1.2 Feb 2022
- Add
sessionCountingEnabled
toTealiumConfig
to enable/disable session counting for TealiumIQ
- Add
-
1.3.1 Feb 2022
- Core 1.3.1
- Stability fix for failed WebView creation
- Stability fix for connectivity exception handling
- InApp Purchase auto tracking 1.0.0 release.
- Core 1.3.1
-
1.3.0 Nov 2021
- Core 1.3.0
- Missing variables reinstated from the Java library:
- Default:
tealium_random
andwas_queued
- DeviceCollector -
device_battery_percent
anddevice_ischarging
- TimeCollector -
timestamp_epoch
- Default:
- DataLayer performance improvements, and additional support for storing
JSONArray
objects - Dates now get formatted as ISO 8601 as standard
- Dependency updates to Kotlin, Coroutines, Android Target Version, AGP 7, Java 11, MockK, Robolectric
- BugFixes:
- Opaque URI's are now appropriately handled by the DeepLinkHandler
- Deprecations to unused code
- Missing variables reinstated from the Java library:
- AutoTracking 1.0.0
- New activity tracking module to automatically track screen view events
- AdIdentifier 1.1.0
- Support for new AppSet identifier
- Dependency Updates in line with Core.
- CollectDispatcher 1.1.0, TagManagementDispatcher 1.1.0
- Serialization standardized to use
JsonUtils
- Dependency Updates in line with Core.
- Serialization standardized to use
- CrashReporter 1.1.0, HostedDataLayer 1.1.0, InstallReferrer 1.1.0, Lifecycle 1.1.0, Location 1.1.0, Media 1.1.0, RemoteCommandDispatcher 1.1.0
- Dependency Updates in line with Core.
- VisitorService 1.1.0
- Additional configuration option to override the Tealium Profile name to use when updating a Visitor:
config.overrideVisitorServiceProfile
- Serialization/Deserialization performance improvements
- Dependency Updates in line with Core.
- BugFix:
- Date parsing exception when dates are 0
- Additional configuration option to override the Tealium Profile name to use when updating a Visitor:
- Core 1.3.0
-
1.2.8 Oct 2021
-
Core 1.2.8
config.logLevel
added to enable overriding the log level derived from the Environmentconsent_last_updated
timestamp is now added to the payload by the Consent Manager for each event- Payload key constants migrated to
Dispatch.Keys.XXX
for ease of access - Bug Fixes
app_name
now falls back to a non-localized version of the app label- Event router crashes caused by threading
screen_title
re-added to the TealiumView payload by default, and set to the viewName when one is not provided in the context data- Unnecessary logging removed when trying to load
tealium-settings.json
as an Asset - Where multiple deep links occur during a Session, previous deep link params are now removed from the datalayer prior to adding the new ones
-
CollectDispatcher 1.0.6, HostedDataLayer 1.0.4, RemoteCommandDispatcher 1.0.5, TagManagement 1.0.7
- event key references updated to use the new
Dispatch.Keys.XXX
- note, these are only present in Core 1.2.8+ so should ensure the latest version is in use.
- event key references updated to use the new
-
-
1.2.7 Sep 2021
- Core 1.2.7
- Support for logical resolution in DeviceData
- Core 1.2.7
-
1.2.6 Jul 2021
- Core 1.2.6
- Add support for existingVisitorId to TealiumConfig
- Add support to override profile for Consent Logging using consentManagerLoggingProfile
- Consent Logging event routed through all enabled Dispatchers
- Update values for app_build and app_version
- Tag Management Dispatcher 1.0.6
- Support for Consent Logging profile override
- Collect Dispatcher 1.0.5
- Support for Consent Logging profile override
- Visitor Service 1.0.5
- Bug fix: deserializing stored long values
- Core 1.2.6
-
1.2.5 May 2021
- Core 1.2.5
- BugFix: HttpClient post update fixes issues with consent logging failures.
- HttpClient execution moved onto IO dispatcher for better asynchronous performance
- Core 1.2.5
-
1.2.4 Apr 2021
- Core 1.2.4
- New enabled_modules and enabled_modules_versions data layer keys added in keeping with the Swift SDK. Both are arrays of strings, containing a sorted list of Modules in use and their Version number - latest versions of all modules required to retrieve their version. note module names have also been changed from UPPER_SNAKE_CASE to PascalCase to match Swift.
- New Config option remoteApiEnabled to allow disabling of remote_api events when using the RemoteCommands and TagManagement modules
- New Config option overrideCollectProfile to allow overriding the value of tealium_profile in the event payload, thus routing events to a different Tealium Profile to the one set on the TealiumConfig object.
- BugFix - added support for both application/json and x-www-form-urlencoded content types when using the HttpRemoteCommand
- BugFix - fixed an issue with specific collections not being encoded correctly.
- Core 1.2.4
-
1.2.3 Mar 2021
- Core 1.2.3
- Consent Management: Add option for setting a custom consent policy.
- Add new
device_language
,os_name
to DeviceCollector
- Crash Reporter 1.0.2
- Update keys for CrashReporter:
crash_exception_name
changed tocrash_name
,crash_exception_cause
changed tocrash_cause
- Update keys for CrashReporter:
- Core 1.2.3
-
1.2.2 Mar 2021
- Core 1.2.2
- Add
request_uuid
to event/view payload
- Add
- TagManagement Dispatcher 1.0.4, RemoteCommand Dispatcher 1.0.3
- Bug Fix: Route HttpRemoteCommand to background thread for execution.
- Test updates
- Core 1.2.2
-
1.2.1 Mar 2021
- Proguard and Consumer Rules revision; some public classes were missed initially, and the consumer rules have been revised.
- Core 1.2.1, Collect Dispatcher 1.0.3, TagManagement Dispatcher 1.0.3, Install Referrer 1.0.2, Lifecycle 1.0.3, Location 1.0.3, VisitorService 1.0.3, RemoteCommand Dispatcher 1.0.2, Hosted DataLayer 1.0.2, Crash Reporter 1.0.1, Ad Identifier 1.0.1
-
1.2.0 Jan 2021
- Consent Management
- Consent Expiration - Introduces the ability to set an expiration for provided consent.
- Deprecated consentManagerEnabled config property; setting a valid ConsentPolicy will automatically enable the Consent Manager.
- Bug Fix - Incorrect consent collector logic
- Visitor Id - new method to allow manually regenerating a Visitor Id for the device.
- Proguard - Initial proguard rules added to generated binaries and consumer proguard rules.
- AdIdentifier 1.0.0
- Initial release of the AdIdentifier module - if available, then the ad identifier will be added to each Dispatch
- CrashReporter 1.0.0
- Initial release of the CrashReporter module - uncaught exceptions causing a crash are recorded and any crash data is sent on the next dispatch when the app is next launched.
- Collect Dispatcher 1.0.2, Hosted DataLayer 1.0.1, InstallReferrer 1.0.1, Lifecycle 1.0.2, Location 1.0.2, RemoteCommand Dispatcher 1.0.1, TagManagement Dispatcher 1.0.1, Visitor Service 1.0.2
- Proguard - Initial proguard rules added to generated binaries and consumer proguard rules.
- Consent Management
-
1.1.0 Nov. 2020
- Timed Events support for reporting the time taken between user events of interest.
- New device_model and device_manufacturer data keys provided by the DeviceCollector
- Automated unit and instrumented tests for PRs into master using Github Actions.
- Collect Dispatcher 1.0.1
- Additional Collect URL overrides
- Test coverage increase
- Hosted Datalayer 1.0.0
- Test coverage increase
- Lifecycle 1.0.1
- Bug Fix: missing autotracked key on sleep events
- Test coverage increase
- Location 1.0.1
- Bug Fix: issue with automatically adding nearby geofences
- Test coverage increase
- Visitor Service 1.0.1
- Non-breaking change for testability purposes
- Test coverage increase
-
1.0.0 Oct. 2020
- New and improved modular Tealium Kotlin for Android
- Release includes modifications based on feedback
- JSON controlled Remote Commands
- Hosted Data layer support
-
0.1.2 Sept 2020
- Tealium multi-instance management added
- Some utilities/modules updated to better support multiple instances
-
0.1.1 Sept 2020
- Maven dependency fix
- Additional Dispatch payload logging
-
0.1.0 Beta Release: August 2020
- Tealium Core
- Support for the following modules:
- Tag Management Dispatcher
- Collect Dispatcher
- Install Referrer
- Location
- Lifecycle Tracking
- Visitor Service
- Remote Commands
- Hosted Data Layer
- Crash Reporter