Changelog
Version 5.1.0 (Sep 8, 2025)
Changed
- Deprecated
JusttrackSdk.getTestGroupId().
- Added
JusttrackSdk.setExperimentVariant(). - Added
leaderads format.
Bug-Fixes
- Fixed issue with 16kb build.
Version 5.0.1 (Jun 10, 2025)
Bug-Fixes
- Fixed migration issue from 4.8.0 onward.
Version 5.0.0 (May 13, 2025)
Added
- Extended support for user data privacy by introducing new methods.
Removed
- Removed
RecruiterfromgetAttribution(). - Removed playtime calculation.
- Removed multiple predefined events.
Changed
- All predefined event classes have been renamed, some have been removed or merged. See the latest predefined event page for more information.
- Deprecated
JusttrackSdk.createAffiliateLink(). - Deprecated
SdkBuilder.setUrlShortener(). - Renamed
JusttrackSdk.getUserId()toJusttrackSdk.getJusttrackUserId()and deprecated it. - Renamed
JusttrackSdk.setCustomUserId()toJusttrackSdk.setUserId(). - Renamed
installIdtoinstallInstanceId. - Renamed
Attribution.getNetwork()toAttribution.getPartner(). - Renamed
AdImpression.formattoAdImpression.unit. - Renamed
PromiseCallbacktoCallback. - Firebase integration no longer enabled by default.
Bug-Fixes
- Fixed install referrer issue.
Version 4.8.0 (Mar 19, 2025)
Bug fixes
- Fixed network timeout issue not handling properly.
- Fixed multiple ANR issues.
Changed
- Unassigned test group ID for fixed GAID.
Version 4.7.0 (January 22, 2025)
Changed
- Optimized fraud detection logic.
Version 4.6.1 (October 30, 2024)
Changed
- Increased version number only.
Version 4.6.0 (October 22, 2024)
Added
- Added fraud detection measure
- Support 16kb page in Android15
getSdkVersionadded additional methodint getPatch()
Changed
- Change SDK version scheme to support semantic versioning.
getAppVersionAtInstallnow containsString getVersionName()andString getVersionCode()
Version 4.5.6 (July 22, 2024)
Bug fixes
- Fixed Install Referrer not working properly.
Version 4.5.5 (13th June 2024)
Changed
- Increased version number only.
Version 4.5.4 (31th May 2024)
Changed
- Change Kotlin version from 1.6 to 1.8.
Version 4.5.3 (29th April 2024)
Changed
- Support for IronSource 8.0.0 was added.
Version 4.5.2 (8th April 2024)
Bug fixes
- The timestamps on user events now carry the millisecond the event happened instead of just the second.
Version 4.5.1 (5th February 2024)
Changed
- Increased version number only.
Version 4.5.0 (12th December 2023)
Changes
- The
UserEventclasses have been changed such that you can now submit named custom dimensions instead of dimensions custom1/2/3. - All predefined event classes have been renamed, some have been removed or merged. See the migration guide you received for more details.
forwardAdImpressionnow requires you to construct anAdImpressionobject instead of passing individual parameters.
Bug fixes
- An issue was fixed on certain devices which would result in an invalid Advertiser ID to be reported.
- An issue was fixed which would have caused some internal events to be duplicated in some cases.
Removed
- The
EventDetailsclass has been removed, the event name is now just a single string.
Version 4.4.1 (30th August 2023)
Changed
- Methods returning
Future<?>have been changed to returnFuture<Void>(which always resolves to null). - All methods returning
Future<T>have been changed to returnAsyncFuture<T>, allowing you to await the result from a coroutine usingAsyncFuture.await. JustTrackSdk.toPromisehas been deprecated in favor ofAsyncFuture.registerPromiseCallback.
Bug fixes
- Fixed a bug which would cause some methods of the predefined events to get obfuscated.
- Fixed a bug which would cause a crash if the AppSetId info is null.
- The handling of being in restricted mode when targeting Android SDK 33+ has been improved.
Version 4.4.0 (14th July 2023)
Added
JustTrackSdk.getUserIdwas added to retrieve a future for the justtrack user ID.
Changed
- The justtrack SDK now provides the user and test group ID without waiting for the justtrack backend.
JustTrackSdk.attributeUserwas renamed toJustTrackSdk.getAttribution.JustTrackSdk.onDestroywas renamed toJustTrackSdk.shutdown.JustTrackSdk.getAffiliateLinkwas renamed toJustTrackSdk.createAffiliateLink.JustTrackSdk.publishFirebaseAppInstanceIdwas renamed toJustTrackSdk.setFirebaseAppInstanceId.- Support was added to track in-app purchases made by version 6 of the BillingClient library.
- The bounds of many dependencies have been relaxed. OkHttp has been removed as a dependency.
Removed
JustTrackSdk.getCachedAttributionwas removed. UsegetUserIdorgetAttributioninstead.- The version of
JustTrackSdk.integrateWithIronSourcewithout any parameters was removed. UseintegrateWithIronSource(IronSourceUserIdSource.JustTrack)instead. SdkBuilder.setEnableIronSourceIntegration(booean)was removed. UsesetEnableIronSourceIntegration(boolean, IronSourceUserIdSource.JustTrack)instead.
Bug fixes
- The justtrack SDK no longer performs disk I/O on the main thread.
- A potential deadlock has been removed when calling
JustTrack.notifyAppStartfrom another thread while initializing the justtrack SDK at the same time.
Version 4.3.8 (29th March 2023)
Added
JustTrack.getInstancenow returns the current SDK instance if one was already created.setAutomaticInAppPurchaseTrackingwas added to configure automatic in-app purchase tracking. It's enabled by default.
Removed
- You can now no longer manually forward in-app purchases. Use the automatic integration instead.
Version 4.3.7 (17th March 2023)
Added
runCallbacksOnMainThreadwas added to the SDK builder to ensure all callbacks from the SDK run on the main thread.
Bug fixes
- Fixed a problem with the Unity Ads integration on minified builds.
Version 4.3.6 (2nd March 2023)
Added
forwardAdImpressioncan now be called with an arbitrary string parameter instead of anAdFormat.integrateWithAdColonywas added to automatically track ad impressions from AdColony.integrateWithAppLovinwas added to automatically track ad impressions from AppLovin.integrateWithChartboostwas added to automatically track ad impressions from Chartboost.integrateWithUnityAdswas added to automatically track ad impressions from Unity Ads.
Changed
- The
AdUnitenum was renamed toAdFormatand theRewardedVideovalue was renamed toRewarded.RewardedInterstitial,Native, andAppOpenhave been added as new values, too. - The SDK now forwards the App Set ID to the backend.
Removed
- The deprecated versions of
forwardAdImpressionhave been removed.
Version 4.3.5 (16th December 2022)
Changed
- Removed the length restriction for the in-app purchase token.
Version 4.3.4 (2nd December 2022)
Added
- The SDK now provides a method to track in-app purchases.
Changed
- You can now attach a currency to the events you are sending.
- If you are forwarding ad impressions, you now have to specify the currency for the revenue of the event.
- The integration with IronSource was changed to allow specifying the user ID source.
Version 4.3.3 (26th October 2022)
Added
- The SDK now provides the install source to the backend.
- You can now provide a custom user ID to the backend.
- Support for deep links was improved.
Changed
- The AD_ID permission was added to support Android 13.
- The SDK now imposes restrictions about the data you can send to the backend.
- The integration with Google Ads campaigns was improved.
Version 4.3.2 (4th August 2022)
Changed
- The SDK now provides a method
forwardAdImpressionto report ad impressions to the justtrack backend.
Bug fixes
- The SDK now validates the advertiser ID before handing it out to an app.
Version 4.3.1 (7th July 2022)
Changed
- Updated
androidx.lifecycle:lifecycle-processfrom2.4.1to2.5.0.
Bug fixes
- The SDK now stores internal logs and metrics more carefully to avoid excessive memory usage.
Version 4.3.0 (6th May 2022)
Changed
- The SDK now handles timeouts while collecting information for a correct attribution better. This will make it more likely to receive an attribution event after the initial
Futureresolves should you have registered a listener.
Version 4.2.9 (1st April 2022)
Changed
- Renamed all occurrences of the Firebase instance ID to Firebase app instance ID. For example,
publishFirebaseInstanceIdis now calledpublishFirebaseAppInstanceId.
Bug fixes
- The SDK now retrieves the Firebase app instance ID instead of the Firebase (installation) instance ID during automatic integration.
Version 4.2.8 (30th March 2022)
Added
- The SDK can now automatically detect the Firebase instance ID of a user and send it to the justtrack backend.
Changed
- Updated
androidx.lifecycle:lifecycle-processfrom2.4.0to2.4.1. - Updated
com.squareup.okhttp3:okhttpfrom3.14.9to4.9.3. - The targeted Android SDK version was changed from 31 to 30.
Bug fixes
- The SDK no longer crashes if it's destroyed while an HTTP request is still running.
- The SDK no longer deadlocks if someone is publishing hundreds of events per second.
Version 4.2.6 (11th February 2022)
Changed
- Updated
com.google.android.gms:play-services-ads-identifierfrom18.0.1to18.0.1. - The minimum Android SDK version was raised from 16 to 21.
- Improved attribution precision.
Version 4.2.5 (17th December 2021)
Changed
- Updated
com.google.android.gms:play-services-ads-identifierfrom17.1.0to18.0.0.
Version 4.2.4 (11th November 2021)
Added
- The SDK now provides methods to get the advertiser ID of the user and the test group ID of the user.
Changed
- The SDK now includes logic to retry fetching the attribution if it failed last time and some time has passed.
Bug fixes
- The SDK no longer blocks upon handling a new intent, instead this is done on a worker thread.
- The SDK no longer deadlocks when processing an event while handling an event produced from the session manager.
- The SDK no longer reports the end of the last session a second time upon the next app start.
Version 4.2.3 (25th August 2021)
Changed
- The SDK now automatically handles a network reconnect when fetching an attribution.
- Improved the error messages when you try to use an invalid API token.
- The SDK will now automatically send the revenue value with user events generated from ad impressions to the backend.
Version 4.2.2 (29th July 2021)
Changed
- Increased version to align with unity version.
Version 4.2.1 (28th July 2021)
Changed
- Increased likelihood that events reach the backend if the user is only using the app for a short time.
- Removed session debouncing logic, this is now completely handled on backend side.
Bug fixes
- Fixed a bug which could cause events to be published multiple times.
Version 4.2.0 (25th June 2021)
Changed
- Events tracking the progress of a user for a level or quest have been extended to automatically track the progress of the user and provide the duration the app was active during that time upon completion.
- The SDK no longer requests the
READ_PHONE_STATEandACCESS_WIFI_STATEpermissions. - The session ID is now included in all events sent to the backend.
setTrackingIdnow takes the provider of the tracking ID as a second parameter.- There can be only a single instance of the SDK from now on.
- Events without a unit are now tracked with a value of 0 (previously there were tracked with a value of 1).
Removed
- Removed
setRealTimefrom all interfaces again as well asrealTimeevent functionality. - It's no longer possible to set the duration for progression events by hand.
Bug fixes
- Fixed a bug where in some locales string would be converted to upper/lower case with the wrong locale.
Version 4.1.1 (18th Mai 2021)
Added
- Added
setRealTimetoHasCustomDimensionsto send predefined events without any delay.
Version 4.1.0 (17th Mai 2021)
Added
- Added
setRealTimeto theUserEventBuilderto send events without any delay.
Removed
- Removed
setCurrentActivityfromSdkBuilderinterface as it's no longer required.
Changed
- Replaced
com.google.android.gms:play-services-ads:20.0.0dependency withcom.google.android.gms:play-services-ads-identifier:17.0.0. - Added new dependency
androidx.lifecycle:lifecycle-process:2.3.1. - Events are now persisted until they reached the justtrack servers at least once.
- Updated predefined user events:
- Added
UserCardShowEvent - Added
UserNotificationClickEvent - Added
UserCardClickEvent - Added
AdOfferwallShowEvent - Added
AdInterstitialShowEvent - Added
AdRewardedShowEvent - Added
AdBannerShowEvent - Changed unit on
AdOfferwallCloseEventfrom seconds or milliseconds to count. - Changed unit on
AdInterstitialCloseEventfrom seconds or milliseconds to count. - Changed unit on
AdRewardedCloseEventfrom seconds or milliseconds to count. - Changed unit on
AdBannerCloseEventfrom seconds or milliseconds to count.
- Added
Bug fixes
- Fixed the timestamp on events which are constructed at app start and sent later.
Version 4.0.1 (30th April 2021)
Bug fixes
- Fixed predefined events to publish their custom parameters with the correct dimensions.
Version 4.0.0 (22nd April 2021)
Changed
- The implementation for standard events changed significantly. Each standard event now has an associated class and should be created via an instance of this class.
- Standard events now carry built-in dimensions next to the three custom dimensions.
- A
UserEventnow takes aEventDetailsinstance instead of aStringas thenameparameter. You can create aEventDetailsinstance from a string, leaving category, element, and action empty. - There is now a short delay before sending user events to batch them.
- The justtrack SDK is now licensed under the MIT license.
- Added the current version name (if available) to the app version send to the backend.
- The
JustTrackSdkBuilderhas been simplified and now only depends on anActivityorApplication.
Added
- Added the
EventDetailsclass to group event name, category, element, and action. Only the event name is mandatory. - Added a static class justtrack to record application start and load times before initializing the SDK.
Removed
- Removed units for level, currency, and average count.
- Removed
setEnableActivityTrackingfrom theSdkBuilderinterface.
Version 3.2.0 (6th April 2021)
Changed
AttributionResponse#getCampaign(),AttributionResponse#getChannel()andAttributionResponse#getNetwork()now returnCampaign,ChannelandNetworkinterfaces instead of the oldIdStringinterface.RetargetingParameters#getUrl()was replaced byRetargetingParameters#getUri()to allow URIs with an unknown protocol (e.g., your app name) to be returned.
Added
- Added
Campaign,ChannelandNetworkinterfaces. - Added
Campaign#getType()to retrieve the type of a campaign. - Added
Channel#isIncent()to retrieve the incent flag of the channel. - Added support for a preliminary retargeting result. This allows you to already display some welcome screen while the SDK is still waiting for the retargeting attribution to be confirmed by the justtrack backend (as this can take a few seconds). Therefore there is a new interface
PreliminaryRetargetingParameters, a new methodJustTrackSdk#getPreliminaryRetargetingParameters(), a new listener interfacePreliminaryRetargetingParametersListenerand a new methodJustTrackSdk#registerPreliminaryRetargetingParametersListener(PreliminaryRetargetingParametersListener)to register said listener. After obtaining an instance ofPreliminaryRetargetingParameters, you canvalidate()them to check whether the user did really a retargeting campaign or whether they e.g. crafted theIntentby hand.
Version 3.1.0 (16th March 2021)
Changed
- The SDK now fetches the attribution again after 5 seconds (default, can be changed) after a re-attribution opportunity was detected.
Added
- Added
setReFetchReAttributionDelaySecondsto the SDK builder to control when attributions are fetched a second time after a re-attribution opportunity was detected.
Version 3.0.0 (22nd February 2021)
Changed
- Renamed various parts of the attribution response:
uuid>userIdsubId>sourceIdsubAppId>sourceBundleIdadSetId>adsetId(small S)recruiter.clientId>recruiter.packageId
- Added
recruiter.userId,recruiter.platform,installId,userType,sourcePlacementto the attribution response - Updated
okhttpdependency to 3.14.9 and play-services-ads dependency to 19.7.0 JustTrackSdkBuilderandExistingJustTrackSdkBuildernow take anIntentas the second parameter.- Starting with this version, you have to implement
Activity#onNewIntent(Intent)to allow the SDK to detect receiving intents while the app is already running.
Added
- Added
setInactivityTimeFrame(long)andsetReAttributionTimeFrame(long)to theSdkBuilderinterface. Use it to specify how often we need to fetch for a new (re-)attribution. By default we will fetch a new attribution every 14 days or after the SDK wasn't initialized for more than 48 hours. - Added
getRetargetingParametersto theJustTrackSdkinterface. It provides the retargeting parameters the app was started with (if any, otherwisenull). - Added
registerAttributionListenerandregisterRetargetingParametersListenerto the SDK as well as needed companion types. - Added
onNewIntentto the SDK to notify it about new intents (if you don't callsetIntentin your activity).
Version 2.4.2 (11th January 2021)
Changed
- The SDK now waits for some time before retrying requests.
- Allow the advertiser ID to be missing if we have a tracking ID.
Version 2.4.1 (11th December 2020)
Bug fixes
- Fixed wrong ad unit names in IronSource integration.
Version 2.4.0 (8th December 2020)
Added
- Added
integrateWithIronSource()toJustTrackSdkinterface. - Added
setEnableIronSourceIntegration(boolean)toSdkBuilderinterface. - When you have the IronSource SDK integrated into your app, you can now automatically sent the
userIdto IronSource as well as subscribing to impression events as user events by callingintegrateWithIronSource()orsetEnableIronSourceIntegration(true).
Version 2.3.3 (22th October 2020)
Changed
- The Logger interface was changed and supports additional fields now.
- The SDK now automatically sends logs to the justtrack backend.
- The SDK now sends additional information about the install referrer to the backend.
Bug fixes
- The SDK now correctly reports the Version of the app upon install.
Version 2.3.2 (8th October 2020)
Added
- Added setFirebaseInstanceId and publishFirebaseInstanceId methods to forward a firebase ID to the justtrack backend.
Version 2.3.1 (17th September 2020)
Changed
- The SDK now automatically publishes SESSION_APP_OPEN events each time the SDK detects an app launch.
Version 2.3.0 (7th September 2020)
Added
- Added getCachedAttribution method.
Changed
- The SDK will now automatically fetch a new attribution should the first attribution be younger than 15 minutes to make sure any changes on the backend side are propagated to the app eventually.
- An attribution now includes the campaign ID and name instead of just the ID.
Bug fixes
- Fixed a race condition resulting in invalid date strings.
Removed
- Removed the old event tracking ("notify"-calls) as the server side no longer accepts these messages.
- Removed
getAppInstallCountmethod.
Version 2.2.3 (29th July 2020)
Added
- You can now get an existing SDK instance if one exists
- You can specify an activity which is currently active should you instantiate the SDK while the activity is already running (see
SdkBuilder#setCurrentActivity).
Changed
- We're now sending the Android version instead of the Linux kernel version to the backend.
Version 2.2.2 (17th July 2020)
Added
- Added
levelandcurrencyunits.
Version 2.2.1 (13th July 2020)
Added
- Added
setEnableBroadcastReceiver(boolean)andsetEnableActivityTracking(boolean)methods toSdkBuilder.
Changed
- Changed package name to
io.justtrackand updated domains to*.justtrack.io. - It's no longer legal to call
get()of a future returned by the SDK on the main thread.