Changelog
This page covers every SDK platform and version. A part that applies only to some platforms starts with Platform: …, and a part that applies only to some SDK versions starts with SDK version: ….
Platform:
Platform: Android Version 8.0.0 (Sep 15, 2026)
- Promoted
8.0.0-rc3to stable. This release includes all changes documented in8.0.0-rc1through8.0.0-rc3, with no additional changes.
Version 8.0.0-rc3 (Sep 02, 2026)
- Fixed the SDK being unable to send any data when the app name, app version, or device model contains non-ASCII characters.
Version 8.0.0-rc2 (Aug 11, 2026)
- Fixed the return types of
track(),publishEvent(), andforwardAdImpression()to correctly useAsyncFuture<Void?>.
Version 8.0.0-rc1 (Aug 03, 2026)
- Added persistent global event dimensions through
.setGlobalDimension0(),.setGlobalDimension1(), and.setGlobalDimension2(). - Added opt-in connection tracking through
JustTrackSdkBuilder.setEnableConnectionTracking(), which attaches thejt_connection_typedimension to events. - Added
JtPurchaseEvent.Actionand constructor overloads for purchase view and click events. - Added the JSON
Content-Typeheader to HTTP POST requests. Campaign.idnow exposes the external campaign ID as aStringinstead of the internal numeric ID.- Remote config now fetches at most once per hour by default instead of once per day, and only pending experiment assignments are activated.
- Builder methods now return
JustTrackSdkBuilderdirectly instead of the removedSdkBuilderinterface. .setExperimentVariant()now requires non-null experiment, variant, and tags-list arguments.- Updated the ironSource integration adapter to 3.0.0 and migrated it to the Unity LevelPlay 3.x API.
IronSourceIntegrationAdapterno longer accepts a user ID in its constructor. - Removed the deprecated
JustTrackSdk.getTestGroupId()method. - Removed the
SdkBuilderinterface and its deprecatedsetEnableBroadcastReceiver()method. - Removed
Attribution.type. UseAttribution.campaign.typefor the campaign type. - Removed the Adjoe integration.
Version 5.1.2 (Jul 10, 2026)
- Bumped the version to keep it aligned with the iOS SDK version. No functional changes included in this release.
Version 7.1.3 (Jul 23, 2026)
- Fixed the background service reporting an incorrect SDK version.
Version 7.1.2 (Jun 17, 2026)
- Allow background sync scheduling without successful attribution.
Version 7.1.1 (Jun 08, 2026)
Added
- Added background syncing of events.
- The SDK now removes stale assignments after
.fetch()completes.
Version 7.1.0 (Mar 06, 2026)
Added
- Added
.setLoggingEnabled()to the SDK builder to control SDK logging. - Added new predefined dimensions.
- Added
.setPackageName()and.setApplicationVersion()to the SDK builder. - Added
.setServerUrl()to the SDK builder to configure a custom server URL. - Added
Actionenum toJtProgressionEvent. - Added
.track()method for publishing events..publishEvent()has been deprecated. - Added remote config support with experiment assignments via
.getRemoteConfig(). - Added HTTP request logging to the console for debugging.
Changed
- SDK logs are no longer printed to the console by default. Use
.setLoggingEnabled()on the builder to enable them. - Targeted Android API level 35.
- Migrated to tracking API v4.
- Updated UnityAds integration to support SDK version 4.16.1 and above.
- Replaced unnecessary error-level logs with warning and info levels.
Removed
- Removed AdColony integration leftovers.
- Removed the background sender.
Bug-Fixes
- Fixed a crash when the Firebase ID in
onSuccessis null. - Fixed device type returning "table" instead of "tablet".
- Fixed a database race condition by using a singleton pattern.
- Fixed session tracking to prevent duplicate sessions.
Version 6.0.0 (Jan 22, 2026)
Changed
- Third-party integrations (AppLovin, Firebase, IronSource) are now decoupled from the main SDK module.
JustTrackSdk.forwardAdImpression()now returns a Future.- Converted public API classes to Kotlin.
Removed
- Removed automatic support for third-party integrations.
Version 5.1.1 (Sep 30, 2025)
Bug-Fixes
- Fixed ANR for some instances when the application is in background.
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.
Version 8.0.0 (Sep 15, 2026)
- Promoted
8.0.0-rc2to stable. This release includes all changes documented in8.0.0-rc1through8.0.0-rc2, with no additional changes.
Version 8.0.0-rc2 (Sep 04, 2026)
- Fixed the
User-Agentheader carrying raw non-ASCII characters when the app name or app version contained them. Both fields are now percent-escaped.
Version 8.0.0-rc1 (Aug 03, 2026)
- Added
.handle(deeplink:)toJustTrackSdk. Call it fromapplication(_:open:options:),application(_:continue:restorationHandler:), or SwiftUI's.onOpenURL. The SDK extracts thegbraidquery parameter and includes it in the attribution request, triggering a re-attribution when a new value arrives. - Added global dimensions through
.set(globalDimension0:),.set(globalDimension1:), and.set(globalDimension2:). Values persist across sessions and are attached to every event asjt_global_0,jt_global_1, andjt_global_2. Passnilto clear a dimension. A value set directly on an event takes precedence over the global one. - Added
.set(enableConnectionTracking:)to the SDK builder. When enabled, every tracked event carries ajt_connection_typedimension with the valueonlineoroffline. It's disabled by default. - Added the predefined dimensions
jt_connection_type,jt_global_0,jt_global_1, andjt_global_2. - Added an
Actionenum (view,click) toJtPurchaseEvent, together with matching convenience initializers. - Added
godottoPlatformType. Dimensionis now aString-backed enum instead of anInt-backed one, and its raw values are the wire names (for example,jt_action). Usedimension.rawValueinstead of the removeddimension.stringValue.Campaign.idchanged fromInttoStringand now contains the campaign's external ID instead of the internal numeric ID.- The default remote config fetch interval (
JusttrackRemoteConfigSettings.defaultMinFetchIntervalInSec) is reduced from 24 hours to 1 hour. JusttrackRemoteConfig.activate(_:)now only enrolls assignments that are still pending. Passing already activated assignments does nothing instead of sending a redundant enrollment request.- The console log prefix changed from
JustTrackSdk:toJustTrackSDK:, and the SDK no longer usesprint. .set(firebaseAppInstanceId:)is deduplicated the same way the custom user ID is. The same value isn't sent twice for the same install, and a pending value is retried on app start, on reconnect, and when the install ID changes.- More error-level logs are downgraded to warning or info level, covering claims, HTTP failures, invalid user input, IDFA retrieval, and adapter integration failures.
- Removed the deprecated
testGroupIdproperty fromJustTrackSdk. UseremoteConfigor.setExperimentVariant()for experiment handling. - Removed
AttributionResponse.type. - Removed the
SDKBuilderprotocol. UseJustTrackSdkBuilderdirectly. - Removed the Adjoe integration, including the public
AdjoeIntegrationclass. - Removed
JTInAppPurchaseTracker.hfrom the framework's public headers. The in-app purchase tracker is now written in Swift and is an internal detail. - Removed server-driven filtering of log messages, metrics, and events.
Version 5.1.2 (Jul 10, 2026)
- Fix the AppLovin banner ad crash when running with the ironSource Ad Quality SDK.
Version 7.1.1 (Jun 08, 2026)
- Bumped the version to keep it aligned with the Android SDK version. No functional changes included in this release.
Version 7.1.0 (Mar 06, 2026)
Added
- Added
.set(isLoggingEnabled:)to the SDK builder to control SDK logging. - Added new predefined dimensions.
- Added
.set(bundleId:)and.set(applicationVersion:versionCode:)to the SDK builder. - Added
.set(serverUrl:)to the SDK builder to configure a custom server URL. - Added
Actionenum toJtProgressionEvent. - Added
.track()method for publishing events..publish(event:)has been deprecated. - Added remote config support with experiment assignments via the
remoteConfigproperty. - Added HTTP request logging to the console for debugging.
Changed
- SDK logs are no longer printed to the console by default. Use
.set(isLoggingEnabled:)on the builder to enable them. - Migrated to tracking API v4.
- Replaced unnecessary error-level logs with warning and info levels.
- Added thread-safety guard (
dispatch_once) to swizzling methods.
Version 6.0.0 (Jan 22, 2026)
Added
- Added support for third-party adapter SDKs (AppLovin, Firebase, IronSource, UnityAds).
Changed
.forward(adImpression:)now returns a Future.
Removed
- Third-party integrations (AppLovin, Firebase, IronSource) are now decoupled from the main SDK module.
- Removed deprecated methods (
UserIdSource, etc.).
Version 5.1.1 (Sep 30, 2025)
Changed
- Increased version number only.
Version 5.1.0 (Sep 8, 2025)
Changed
- Deprecated
JusttrackSdk.getTestGroupId().
Added
- Added
JusttrackSdk.setExperimentVariant().
Bug-Fixes
- Callbacks for AppLovin MAX no longer report duplicate ad impression events on Firebase.
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
RecruiterfromAttributionResponse. - 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.
- The
createAffiliateLink()instance method ofJustTrackSdkhas been deprecated. - The
getUserId()instance method ofJustTrackSdkhas been renamed togetJusttrackUserId()and deprecated. - The
set(customUserId: String)instance method ofJustTrackSdkhas been renamed toset(userId: String). - The
getInstallId()instance method ofJustTrackSdkhas been renamed togetInstallInstanceId(). - The
networkinstance property ofAttributionResponsehas been renamed topartner. - The
formatinstance property ofAdImpressionhas been renamed tounit.
Version 4.8.0 (Mar 19, 2025)
Changed
- Minor optimizations.
Version 4.7.0 (January 22, 2025)
Changed
- Added support for StoreKit 2.
Version 4.6.1 (October 30, 2024)
Changed
- Increased version number only.
Version 4.6.0 (October 22, 2024)
Changed
- Change SDK version scheme to support semantic versioning.
Version 4.5.6 (July 22, 2024)
Bug fixes
- Added handling for scenarios where ATT is requested while the app is in inactive state.
Version 4.5.5 (13th June 2024)
Bug fixes
- Fixed attribution on iOS 17.4.0 and iOS 17.4.1.
Version 4.5.4 (31th May 2024)
Added
- ATT request workaround for iOS 17.4 where iOS doesn't wait for user response.
Changed
- The minimum supported iOS version was raised to iOS 12.
Bug fixes
- A crash was fixed when integrating with AppLovin 12.x.
Version 4.5.3 (29th April 2024)
Added
- The SDK now contains a privacy manifest file.
Version 4.5.2 (8th April 2024)
Added
- The SDK is now available via Carthage and the Swift Package Manager.
Changed
- The SDK now reads the IDFA automatically after the user accepts the ATT request even if this happens after the SDK has been initialized.
- The casing of enum variants has been unified to
lowerCamelCase. All variants of theDimensionenum as well as some AdFormat` variants have been affected. - The
userIdandadvertiserIdInfoproperties have been replaced with async methodsgetUserId()andgetAdvertiserIdInfo(). - The
createAffiliateLink() -> StringandcreateAffiliateLink(channel: String) throws -> Stringmethods have become asynchronous and now have the following signatures:createAffiliateLink() -> Future<String>andcreateAffiliateLink(channel: String) -> Future<String>respectively.
Bug fixes
- The SDK no longer resets the SKAd conversion value after installing from SKAdNetwork v4 and higher ads.
- User event timestamps now have millisecond precision.
Version 4.5.1 (5th February 2024)
Bug fixes
- Removed the application delegate wrapper as it wasn't always forwarding calls correctly.
Version 4.5.0 (12th December 2023)
Changed
- 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.
- The JustTrackSDK can now only be initialized from the main thread. If you need to initialize it from another thread, use
DispatchQueue.main.syncto move the call to the main thread. JustTrackSdk.forwardAdImpressionnow requires you to construct anAdImpressionobject instead of passing individual parameters.
Version 4.4.1 (30th August 2023)
Bug fixes
- Initializing the SDK multiple times no longer causes multiple instances running concurrently.
Version 4.4.0 (14th July 2023)
Added
JustTrackSdk.userIdwas 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.attributionand is now a property.JustTrackSdk.getRetargetingParameterswas renamed toJustTrackSdk.retargetingParametersand is now a property.JustTrackSdk.getPreliminaryRetargetingParameterswas renamed toJustTrackSdk.preliminaryRetargetingParametersand is now a property.JustTrackSdk.getAppVersionAtInstallwas renamed toJustTrackSdk.attributionand is now a property.JustTrackSdk.getSdkVersionwas renamed toJustTrackSdk.sdkVersionand is now a property.JustTrackSdk.getAdvertiserIdInfowas renamed toJustTrackSdk.advertiserIdInfoand is now a property.JustTrackSdk.getTestGroupIdwas renamed toJustTrackSdk.testGroupIdand is now a property.JustTrackSdk.publishEventwas renamed toJustTrackSdk.publish(event:).JustTrackSdk.registerAttributionListenerwas renamed toJustTrackSdk.register(attributionListener:).JustTrackSdk.registerRetargetingParametersListenerwas renamed toJustTrackSdk.register(retargetingParametersListener:).JustTrackSdk.registerPreliminaryRetargetingParametersListenerwas renamed toJustTrackSdk.register(preliminaryRetargetingParametersListener:).JustTrackSdk.onDestroywas renamed toJustTrackSdk.shutdown.JustTrackSdk.getAffiliateLinkwas renamed toJustTrackSdk.createAffiliateLink(channel:)and can now throw an error instead of returning a future which can fail. A version without a parameter that doesn't throw any errors was also added.JustTrackSdk.publishFirebaseAppInstanceIdwas renamed toJustTrackSdk.set(firebaseAppInstanceId:).- The
AdvertiserIdInfoandAttributionResponseprotocols now provide properties instead of getter methods. - XCode 14.0 or newer is now required.
Removed
JustTrackSdk.getCachedAttributionwas removed.
Version 4.3.8 (29th March 2023)
Added
JustTrack.getInstancenow returns the current SDK instance if one was already created.set(automaticInAppPurchaseTracking: Bool)was 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)
Bug fixes
- Added support to integrate with AppLovin 10.x.
- Added support to integrate with Unity Ads 4.6.0.
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 the.rewarded_videovalue was renamed torewarded..rewarded_interstitial,.native, and.app_openhave been added as new values, too. - The
JustTrackSDKFirebaseandJustTrackSDKironSourcepods were merged into theJustTrackSDKpod.
Bug fixes
- The correct device model is now reported to the justtrack backend, improving attribution precision.
Version 4.3.5 (16th December 2022)
Changed
- Forwarding in-app purchases no longer requires you to manually supply the receipt as 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.
Bug fixes
- The reported app version was fixed and now provides the name you specify instead of the version code only.
- The SDK no longer reports requesting the tracking permission multiple times if the method is called more than once.
Version 4.3.3 (8th November 2022)
Added
- The SDK now provides the token for Apple Search Ads to the backend.
- You can now provide a custom user ID to the backend.
- The SDK is now available as a CocoaPod.
Changed
- The SDK now imposes restrictions about the data you can send to the backend.
- The integration with Google Ads campaigns was improved.
- The native integration with IronSource was changed to allow specifying the user ID source.
Version 4.3.2 (4th August 2022)
Changed
- The SDK now provides a method
forwardAdImpressionto report ad impressions to the justtrack backend.
Version 4.3.1 (7th July 2022)
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. - The test group ID is now computed based on the IDFV instead of the IDFA.
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 integration.
Version 4.2.8 (30th March 2022)
Added
-
The SDK can now retrieve the Firebase instance ID of a user and send it to the justtrack backend.
Version 4.2.6 (11th February 2022)
Changed
- Improved attribution precision.
Version 4.2.5 (17th December 2021)
Added
- Added
JustTrack.requestTrackingAuthorizationto allow the user to opt in for tracking.
Changed
- Improved the precision of the retrieved device model name.
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 now sends
session_app_openevents correctly.
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.
- Increased likelihood that events reach the backend if the user is only using the app for a short time.
- Added call to
SKAdNetwork.registerAppForAdNetworkAttribution.
Version 4.2.0 (23rd 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 session ID is now included in all events sent to the backend.
- You now have to name the provider of the tracking ID when initializing the SDK.
Removed
- Removed
with(realTime:)from all interfaces again as well asrealTimeevent functionality. - It's no longer possible to set the duration for progression events by hand.
Version 4.1.0 (21st May 2021)
Added
- Added
with(realTime:)to user events to send events without any delay. - Added
registerAttributionListener,registerRetargetingParametersListener, andregisterPreliminaryRetargetingParametersListenerto the SDK as well as needed companion types. - Added
getRetargetingParametersandgetPreliminaryRetargetingParametersto the SDK.
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. - Events are now persisted until they reached the justtrack servers at least once.
- There is now a short delay before sending user events to batch them.
- The justtrack SDK is now licensed under the MIT license.
- The attribution format was changed slightly and more information is now provided with each attribution.
- Added the current version name (if available) to the app version send to the backend.
- The SDK now fetches the attribution again after 5 seconds (default, can be changed) after a re-attribution opportunity was detected.
Removed
- Removed units for level, currency, and average count.
Version 2.4.2 (11th January 2021)
Changed
- Use build number as version if available.
Bug fixes
- Use correct locale when formatting dates.
Version 2.3.3 (10th December 2020)
Added
- Created the SDK and released it onto an unsuspecting world.
Version 8.0.0 (Sep 15, 2026)
- Promoted
8.0.0-rc1to stable, with no additional changes.
Version 8.0.0-rc1 (Aug 06, 2026)
- Added global dimensions through
setGlobalDimension0(),setGlobalDimension1(), andsetGlobalDimension2(). Values persist across app launches and are attached to every event asjt_global_0,jt_global_1, andjt_global_2. Passnullto clear a dimension. - Added
.withEnableConnectionTracking()to the SDK builder. When enabled, every tracked event carries ajt_connection_typedimension with the valueonlineoroffline. It's disabled by default. - Added a
JtPurchaseActiontype ('click' | 'view') and a typedJtPurchaseEventconstructor overload that accepts it, so the supported actions are discoverable from the types. - Android: added support for Google Play Billing Library 8.x.
- Updated Android native SDK to 8.0.0-rc1.
- Updated iOS native SDK to 8.0.0-rc1.
AttributionCampaign.idis now astringand carries the campaign's external ID. It previously inherited a numericidfromAttributionNamed.- Event values are classified by their shape instead of with
instanceof. AMoneyorValuethat didn't come from this exact copy of the package — a plain object, a value restored from JSON, or an instance from a second copy of the package in the bundle — is now recognized instead of being published without its value. - Removed
getTestGroupId(). Use remote config orsetExperimentVariant()for experiment handling. - Removed
typefrom the attribution data.
Version 7.1.2 (Jul 24, 2026)
Android
- Updated Android native SDK to 7.1.3.
- Fixed the background service reporting an incorrect SDK version.
Version 7.1.1 (Jun 09, 2026)
Android
- Updated Android native SDK to 7.1.1.
- Added background syncing of events.
- The SDK now removes stale assignments after .fetch() completes.
iOS
- Updated iOS native SDK to 7.1.1.
- Bumped the version to keep it aligned with the Android SDK version. No functional changes included in this release.
Version 7.1.0 (Mar 06, 2026)
Added
- Added
.track()method for publishing events..publishEvent()is now deprecated. - Added remote config support with experiment assignments via
.getRemoteConfig(). - Added
.withServerUrl()to the SDK builder to configure a custom backend URL. - Added new dimensions for event tracking.
- Added
.withLoggingEnabled()to the SDK builder. - Added
jt_actiontype forJtProgressionEvent. - Added
viewandclickaction types forJtPurchaseEvent. - Added integration adapters for Meta and Google ODM.
- Added
.withApplicationId()and.withApplicationVersion()to the SDK builder for custom package name and version reporting.
Changed
- Updated Android native SDK to 7.1.0.
- Updated iOS native SDK to 7.1.0.
- Updated Firebase adapter to 1.0.3.
- Updated Meta adapter to 1.0.0.
- Updated AppLovin adapter to 2.0.3.
Bug-Fixes
- Fixed missing spec adapter file for iOS new architecture.
- Fixed
forwardAdImpressionissue. - Fixed log output not displaying correctly.
Version 6.0.0 (Jan 23, 2026)
Added
- Support adapter for AppLovin.
- Support adapter for IronSource.
- Support adapter for Firebase.
Changed
- Third-party integrations (AppLovin, Firebase, IronSource) are now decoupled from the main SDK module.
- Updated Android SDK to 6.0.0.
- Updated iOS SDK to 6.0.0.
Removed
- Removed automatic support for third-party integrations.
Version 5.1.1 (Sep 30, 2025)
Changed
- Updated Android SDK to 5.1.1.
- Updated iOS SDK to 5.1.1.
Version 5.1.0 (Sep 8, 2025)
Changed
- Deprecated
JusttrackSdk.getTestGroupId(). - Updated Android SDK to 5.1.0.
- Updated iOS SDK to 5.1.0.
Added
- Added
JusttrackSdk.setExperimentVariant().
Version 5.0.1 (Jun 10, 2025)
Changed
- Updated Android SDK to 5.0.1.
- Updated iOS SDK to 5.0.1.
Version 5.0.0 (May 13, 2025)
Added
- Extended support for user data privacy by introducing new methods.
- Enabled verbatimModuleSyntax and fixed type-only imports.
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
createAffiliateLink(). - Renamed
getUserId()togetJusttrackUserId()and deprecated it. - Renamed
setCustomUserId()tosetUserId(). - Renamed
installIdtoinstallInstanceId. - Renamed
Attribution.getNetwork()toAttribution.getPartner(). - Renamed
AdImpression.formattoAdImpression.unit. - Firebase integration no longer enabled by default.
Version 4.8.0 (Mar 19, 2025)
Changed
- Updated Android SDK to 4.8.0.
- Updated iOS SDK to 4.8.0.
Version 4.7.0 (January 22, 2025)
Changed
- Fixed createAffiliateLink function.
Version 4.6.1 (November 5, 2024)
Changed
- Updated Android SDK to 4.6.1.
- Updated iOS SDK to 4.6.1.
Version 4.6.0 (October 22, 2024)
Changed
- Updated Android SDK to 4.6.0.
- Updated iOS SDK to 4.6.0.
Version 4.5.6 (July 22, 2024)
Changed
- Updated Android SDK to 4.5.6.
- Updated iOS SDK to 4.5.6.
Version 4.5.5 (13th June 2024)
Changed
- Updated Android SDK to 4.5.5.
- Updated iOS SDK to 4.5.5.
Version 4.5.4 (3rd June 2024)
Changed
- Updated Android SDK to 4.5.4.
- Updated iOS SDK to 4.5.4.
- Increase React Native version to 0.74.
Version 4.5.3 (2nd May 2024)
Changed
- Updated Android SDK to 4.5.3.
- Updated iOS SDK to 4.5.3.
Version 4.5.2 (9th April 2024)
Added
- Added SDK builder
JusttrackSdkBuilderfor initializing the SDK.
Changed
- Updated Android SDK to 4.5.2.
- Updated iOS SDK to 4.5.2.
Version 4.5.1 (5th February 2024)
Changed
- Updated Android SDK to 4.5.1.
- Updated iOS SDK to 4.5.1.
Version 4.5.0 (21st December 2023)
Added
- Added iOS SDK at version 4.5.0. The package now supports both Android and iOS.
Changed
- Updated Android SDK to 4.5.0.
- 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.- The new React Native architecture is now supported as well.
Version 4.4.1 (30th August 2023)
Changed
- Updated Android SDK to 4.4.1.
IronSourceUserIdSourcehas been renamed toUserIdSource.
Version 4.4.0 (14th July 2023)
Added
- Added
getUserIdto provide the justtrack user ID directly.
Changed
- Updated Android SDK to 4.4.0.
- Renamed
attributeUsertogetAttribution. - Renamed
getAffiliateLinktocreateAffiliateLink. - Renamed
publishFirebaseAppInstanceIdtosetFirebaseAppInstanceId.
Removed
- Removed the exception classes
AffiliateLinkFailedandAttributeUserFailed. - Removed
getCachedAttribution. UsegetUserIdorgetAttributioninstead.
Version 4.3.8 (29th March 2023)
Added
- You can now provide a custom user ID to the backend.
- The SDK can now automatically track in-app purchases. This is enabled by default.
Changed
- Updated Android SDK to 4.3.8.
- 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.
AdUnitwas renamed toAdFormat.
Removed
getSdkwas removed fromJustTrackSdkModule. UseJustTrack.getInstanceinstead.
Version 4.3.2 (4th August 2022)
Changed
- Updated Android SDK to 4.3.2.
Version 4.3.1 (7th July 2022)
Changed
- Updated Android SDK to 4.3.1.
Version 4.3.0 (6th May 2022)
Changed
- Updated Android SDK to 4.3.0.
Version 4.2.9 (1st April 2022)
Added
- The SDK now provides methods to integrate with Firebase.
Changed
- Updated Android SDK to 4.2.9.
- Renamed all occurrences of the Firebase instance ID to Firebase app instance ID. For example,
publishFirebaseInstanceIdis now calledpublishFirebaseAppInstanceId.
Version 4.2.4 (12th 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
- Updated Android SDK to 4.2.4.
Version 4.2.3 (26th August 2021)
Changed
- Updated Android SDK to 4.2.3.
Version 4.2.2 (2nd August 2021)
Changed
- Updated Android SDK to 4.2.2.
Version 4.2.1 (28th July 2021)
Changed
- Updated Android SDK to 4.2.1.
Version 4.2.0 (25th June 2021)
Changed
- Updated Android SDK to 4.2.0.
- When supplying a tracking ID, you now also have to provide the source of that ID.
Removed
- Removed ability to publish events in real time again.
Version 4.1.1 (18th May 2021)
Added
- Added ability to send events in real time.
Changed
- Updated Android SDK to 4.1.1.
Version 4.1.0 (18th May 2021)
Changed
- Updated Android SDK to 4.1.0.
Version 4.0.1 (30th April 2021)
Changed
- Updated Android SDK to 4.0.1.
Bug fixes
- Fixed predefined events to publish their custom parameters with the correct dimensions.
Version 4.0.0 (26th 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. Events can still be published from a single string, though.
- Standard events now carry built-in dimensions next to the three custom dimensions.
publishEventwas simplified and now accepts any user event instance instead of creating it with multiple methods for the different cases.- The justtrack SDK is now licensed under the MIT license.
- There is now a short delay before sending user events to batch them.
- Added the current version name (if available) to the app version send to the backend.
Added
- Added
JustTrackErrorclass on JavaScript side to better represent errors. All promises returned by the SDK should throw that error in case of an error. - Added
UserEventclass to collect all details of a user event. - Added the
EventDetailsclass to group event name, category, element, and action. Only the event name is mandatory.
Removed
- Removed units for level, currency, and average count.
- Removed
publishRichEventandpublishUnitEventfunctions.
Version 3.2.0 (6th April 2021)
Changed
- Added campaign type and incent flag on channel to attribution response.
- Changed retargeting parameters to carry an URI instead of an URL (i.e., renamed the property).
Added
- 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). Added therefore
getPreliminaryRetargetingParametersandregisterPreliminaryRetargetingParametersListeneras well as the corresponding result types.
Bug fixes
registerAttributionListenerno longer calls the listener withAttributionDataobjects whosecreatedAtfield is anumberinstead of aDate.
Version 3.1.0 (17th 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
reFetchReAttributionDelaySecondsto the SDK options.
Version 3.0.1 (23rd February 2021)
Bug fixes
- Converted reference held by the RN module to a strong one to avoid the SDK getting released too early.
Version 3.0.0 (22nd February 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.
- Renamed various parts of the attribution response:
uuid->userIdsubId->sourceIdsubAppId->sourceBundleIdadSetId->adsetId(small S)
- 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 - 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. There is anIntentHandlingReactActivitywhich implements this and extendsReactActivityavailable to use. - The
JustTrackSdkModulehas been rewritten from Kotlin to Java.
Added
- Initializing the SDK now can take an options object instead of the tracking ID.
There you can set (besides the tracking ID) the
inactivityTimeFrameandreAttributionTimeFrame. - Added
getRetargetingParametersto theJustTrackSdkinterface. It provides the retargeting parameters the app was started with (if any, otherwisenull). - Added
registerAttributionListenerandregisterRetargetingParametersListenerto the SDK.
Bug fixes
- Fixed wrong ad unit names in IronSource integration.
Version 2.4.0 (8th December 2020)
Added
- Added
integrateWithIronSource().
Changed
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.
- Fixed a problem with
publishFirebaseInstanceIdnot resolving (RN only).
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
- Updated native SDK to 2.3.0
- An attribution now includes the campaign name,
subId,subAppId,adSetId,recruiter, andcreatedAtfields.
Version 8.0.0 (Sep 15, 2026)
- Promoted
8.0.0-rc2to stable. This release includes all changes documented in8.0.0-rc1through8.0.0-rc2, with no additional changes.
Version 8.0.0-rc2 (Aug 11, 2026)
- Replaced the undeclared dependency on Plastic SCM's private Newtonsoft namespace with the official
com.unity.nuget.newtonsoft-jsonpackage. - Updated the Android native SDK to
8.0.0-rc2.
Version 8.0.0-rc1 (Aug 04, 2026)
- Added optional connection tracking, which attaches the connection type to tracked events as the
jt_connection_typedimension. - Added
SetGlobalDimension0,SetGlobalDimension1, andSetGlobalDimension2for dimensions applied to all future events. - Added
VIEWandCLICKactions and strongly typed constructors toJtPurchaseEvent. - Added
ApplicationVersionfor configuring a custom version name and version code during runtime initialization. - Added automatic in-app purchase tracking on Android for apps using Google Play Billing Library 8 or 9.
- Updated the Android and iOS native SDKs to 8.0.0-rc1.
- Updated attribution parsing.
AttributionCampaign.Idis now a string that carries the campaign's external ID. - Updated runtime initialization to accept the connection-tracking option and an
ApplicationVersionvalue. - Removed
GetTestGroupIdfrom the public SDK API. - Fixed the editor so that creating a justtrack SDK instance marks the scene as modified.
Version 5.1.2 (Jul 10, 2026)
iOS
- Fix the AppLovin banner ad crash when running with the ironSource Ad Quality SDK.
- Updated iOS native SDK to 5.1.2.
Version 7.1.6 (Jul 23, 2026)
Android
- Updated Android native SDK to 7.1.3.
- Fixed the background service reporting an incorrect SDK version.
Version 7.1.5 (Jul 17, 2026)
- Fixed the runtime constructor not resolving third-party adapter dependencies.
- Updated the iOS AppLovin adapter to 1.0.2.
Version 7.1.3 (Jun 23, 2026)
- Add support for runtime SDK initialization via constructor.
Version 7.1.2 (Jun 17, 2026)
Android
- Updated Android native SDK to 7.1.2.
- Allow background sync scheduling without successful attribution.
Version 7.1.1 (Jun 10, 2026)
Android
- Updated Android native SDK to 7.1.1.
- Added background syncing of events.
- The SDK now removes stale assignments after .fetch() completes.
iOS
- Updated iOS native SDK to 7.1.1.
- Bumped the version to keep it aligned with the Android SDK version. No functional changes included in this release.
Version 7.1.0 (Mar 06, 2026)
Added
- Added WebGL platform support.
- Added new ad impression dimensions.
- Added a method to set a custom backend URL for the SDK.
- Added the ability for users to set a custom package name and app version on Android and iOS.
- Added
.Track()method. - Added
JtProgressionEventevent enum action. - Added remote config methods.
- Added editor (Edit Mode) unit tests.
Changed
- Disabled console logs by default and added a parameter to enable them.
- Added documentation to all public methods.
- Merged
SDKBaseAgentlogic intoJustTrackSDKto reduce bloat. - Made
JustTrackCodeGenerator.cscompletely static, fixed nullability issues. - Moved iOS Unity SDK bridge into Unity.
- Adjusted the iOS project based on the linkage type from the Podfile.
- Renamed the SDK version variable for consistency.
Removed
- Removed MiniJson in favor of Unity's built-in JSON utilities.
Bug-Fixes
- Fixed base SDK agent not working for Android correctly.
- Fixed the native bridge for iOS.
- Adjusted XcodeProjectModifier for improved iOS build compatibility.
Version 6.0.0 (Jan 22, 2026)
Added
- Added callbacks to the publish event method.
- Added method with callbacks for
ForwardAdImpression. - Added manual method for reporting IAP.
Changed
- Third-party integrations (AppLovin, Firebase, IronSource) are now decoupled from the main SDK module.
- Assign adapter version according to application dependency.
- Fixed requesting ATT permission when the Request Tracking Permission option is ON.
- Show backend error message when setting up API token.
Removed
- Removed automatic support for third-party integrations.
Version 5.1.1 (Sep 30, 2025)
Changed
- Updated Android SDK to 5.1.1.
- Updated iOS SDK to 5.1.1.
Version 5.1.0 (Sep 8, 2025)
Changed
- Deprecated
JusttrackSdk.getTestGroupId(). - Updated Android SDK to 5.1.0.
- Updated iOS SDK to 5.1.0.
Added
- Added
JusttrackSdk.setExperimentVariant().
Version 5.0.1 (Jun 10, 2025)
Changed
- Updated Android SDK to 5.0.1.
- Updated iOS SDK to 5.0.1.
Version 5.0.0 (May 13, 2025)
Added
- Extended support for user data privacy by introducing new methods.
Removed
- Removed
RecruiterfromAttributionResponse. - 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(). - Renamed
JustTrackSDK.GetUserId()toJustTrackSDK.GetJusttrackUserId()and deprecated it. - Renamed
JustTrackSDK.SetCustomUserId()toJustTrackSDK.SetUserId(). - Renamed
JustTrackSDK.GetInstanceId()toJustTrackSDK.GetInstallInstanceId(). - Renamed
AttributionResponse.NetworktoAttributionResponse.Partner. - Renamed
AdImpression.FormattoAdImpression.Unit.
Version 4.8.0 (Mar 19, 2025)
Bug-Fixes
- Fixed issue for unity dependencies not having upper limit versioning.
Added
- Public method for getting ATT status.
- Support for ironSource 8.5.0 and above.
Version 4.7.0 (January 22, 2025)
Changed
- Decoupled the Facebook Audience Network Adapter from ATT settings.
Version 4.6.1 (October 30, 2024)
Bug-Fixes
- Android Integrity resolution is fixed.
Version 4.6.0 (October 22, 2024)
Changed
- Change SDK version scheme to support semantic versioning.
- Updated Android SDK to 4.6.0.
- Updated iOS SDK to 4.6.0.
Version 4.5.6 (July 22, 2024)
Changed
- Updated Android SDK to 4.5.6.
- Updated iOS SDK to 4.5.6.
Version 4.5.5 (13th June 2024)
Changed
- Updated Android SDK to 4.5.5.
- Updated iOS SDK to 4.5.5.
Version 4.5.4 (31th May 2024)
Changed
- Updated Android SDK to 4.5.4.
- Updated iOS SDK to 4.5.4.
Added
- Support for IronSource 8.0.0 was added.
Version 4.5.3 (29th April 2024)
Changed
- Updated Android SDK to 4.5.3.
- Updated iOS SDK to 4.5.3.
Version 4.5.2 (8th April 2024)
Changed
- Updated Android SDK to 4.5.2.
- Updated iOS SDK to 4.5.2.
Version 4.5.1 (5th February 2024)
Changed
- Updated Android SDK to 4.5.1.
- Updated iOS SDK to 4.5.1.
Version 4.5.0 (12th December 2023)
Changed
- Updated Android SDK to 4.5.0.
- Updated iOS SDK to 4.5.0.
- 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.
JustTrackSDK.ForwardAdImpressionnow requires you to construct anAdImpressionobject instead of passing individual parameters.- The support for using Gradle templates was improved.
Version 4.4.1 (30th August 2023)
Changed
- Updated Android SDK to 4.4.1.
- Updated iOS SDK to 4.4.1.
- The IronSource integration now uses
GetUserIdinstead ofGetAttribution, completing the integration faster. - The SDK no longer uses pre-processor defines to select available features at runtime (reducing the amount of pauses because of recompiling during development of an app or game).
Bug fixes
- Manually integrating with IronSource twice no longer results in duplicated events.
Version 4.4.0 (14th July 2023)
Added
JustTrackSDK.GetUserIdwas added to retrieve the justtrack user ID in a callback.
Changed
- Updated Android SDK to 4.4.0.
- Updated iOS SDK to 4.4.0.
- The justtrack SDK now provides the user and test group ID without waiting for the justtrack backend.
JustTrackSDK.GetAffiliateLinkwas renamed toJustTrackSDK.CreateAffiliateLink.JustTrackSDK.PublishFirebaseAppInstanceIdwas renamed toJustTrackSDK.SetFirebaseAppInstanceId.- XCode 14.0 or newer is now required to build on iOS.
Bug fixes
- A potential deadlock has been removed upon initialization.
Version 4.3.8 (29th March 2023)
Added
SetAutomaticInAppPurchaseTrackingwas added to configure automatic in-app purchase tracking. It's enabled by default.
Changed
- Updated Android SDK to 4.3.8.
- Updated iOS SDK to 4.3.8.
Removed
- You can now no longer manually forward in-app purchases. Use the automatic integration instead.
Version 4.3.7 (17th March 2023)
Changed
- Updated Android SDK to 4.3.7.
- Updated iOS SDK to 4.3.7.
Bug fixes
- Fixed a crash caused by multiple callbacks from Java to C# at the same time.
Version 4.3.6 (2nd March 2023)
Added
- The SDK can now integrate with AdColony, AppLovin, Chartboost, and Unity Ads.
Changed
- Updated Android SDK to 4.3.6.
- Updated iOS SDK to 4.3.6.
- Renamed
AdUnittoAdFormat, added more options and added ability to forward arbitrary ad formats as well.
Bug fixes
- Fixed handling of Java classes and objects on C# side to deterministically free their resources again.
Version 4.3.5 (16th December 2022)
Changed
- Updated Android SDK to 4.3.5.
- Updated iOS SDK to 4.3.5.
- You no longer need to manually supply the receipt data as token on iOS to track in-app purchases.
Version 4.3.4 (6th December 2022)
Added
- The SDK now provides a method to track in-app purchases.
Changed
- Updated Android SDK to 4.3.4.
- Updated iOS SDK to 4.3.4.
- 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.
Version 4.3.3 (11th November 2022)
Added
- The SDK now provides a function
JustTrackSDK.SetCustomUserIdto forward a custom user ID to the justtrack backend.
Changed
- Updated Android SDK to 4.3.3.
- Updated iOS SDK to 4.3.3.
- The iOS SDK is now integrated by including CocoaPod dependencies instead of distributed with the Unity version of the SDK.
- The GameObject of the SDK now removes its parent GameObject (if any) as it needs to mark itself as DontDestroyOnLoad (which requires that there is no parent).
Bug fixes
- Requesting the tracking permission multiple times no longer publishes the corresponding tracking events multiple times.
Version 4.3.2 (4th August 2022)
Changed
- Updated Android SDK to 4.3.2.
- Updated iOS SDK to 4.3.2.
- The setting for the tracking provider was simplified and is now called attribution provider.
- The SDK now provides a method
ForwardAdImpressionto report ad impressions to the justtrack backend. - The SDK now validates the configuration on build time and fails the build if invalid settings are detected.
Bug fixes
- Fixed a bug which would cause the SDK to lose its configuration upon upgrade.
Version 4.3.1 (7th July 2022)
Changed
- Updated Android SDK to 4.3.1.
- Updated iOS SDK to 4.3.1.
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 callback resolves) should you have registered a listener.
- Updated Android SDK to 4.3.0.
- Updated iOS SDK to 4.3.0.
Version 4.2.9 (31st March 2022)
Changed
- Renamed all occurrences of the Firebase instance ID to Firebase app instance ID. For example,
PublishFirebaseInstanceIdis now calledPublishFirebaseAppInstanceId. - Updated Android SDK to 4.2.9.
- Updated iOS SDK to 4.2.9.
Bug fixes
- The code generated by the justtrack SDK is now marked
Preserve, preventing it from getting stripped by too aggressive code optimization.
Version 4.2.8 (30th March 2022)
Added
- Added
JustTrackSDK.OnTrackingAuthorizationto query for the status of the tracking permission. - The SDK can now automatically detect the Firebase instance ID of a user and send it to the justtrack backend.
Changed
- Updated Android SDK to 4.2.8.
- Updated iOS SDK to 4.2.8.
- The SDK now verifies the validity of an API token in the Unity editor.
- The SDK now verifies that you are using the External Dependency Manager for Unity. If it doesn't find it, it shows a warning and assists you in adding it to your game.
Version 4.2.6 (11th February 2022)
Changed
- Updated Android SDK to 4.2.6.
- Updated iOS SDK to 4.2.6.
Version 4.2.5 (17th December 2021)
Added
- The SDK now provides an easy way to request permission to track a user on iOS.
Changed
- Updated Android SDK to 4.2.5.
- Updated iOS SDK to 4.2.5.
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
- Updated Android SDK to 4.2.4.
- Updated iOS SDK to 4.2.4.
- The SDK now includes logic to retry fetching the attribution if it failed last time and some time has passed.
Version 4.2.3 (24th August 2021)
Changed
- The SDK now automatically handles a network reconnect when fetching an attribution.
- Updated Android SDK to 4.2.3.
- Updated iOS SDK to 4.2.3.
- Refactored the settings of the SDK. They're now stored as a resource, so you can instantiate the SDK at runtime.
- There is now only one API token per platform instead of one for development and release.
Version 4.2.2 (29th July 2021)
Added
- The SDK now adds the justtrack backend as a receiver for SDKAdNetwork attribution postbacks (for iOS 15).
Changed
- Updated Android SDK to 4.2.2.
- Updated iOS SDK to 4.2.2.
Version 4.2.1 (1st July 2021)
Bug fixes
- Fixed a missing parameter when constructing standard events with a unit for Android.
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 on Android. - The session ID is now included in all events sent to the backend.
- Setting a tracking ID now also requires you to name the provider of that tracking ID.
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
- The SDK will now suggest you add some small generated code to work around limitations of the IL2CPP compiler to integrate with IronSource.
Version 4.1.2 (27th May 2021)
Removed
- Removed the external dependency manager from Google as dependency as Google removed their scoped registry. You have to provide a version of it now yourself.
Version 4.1.1 (21st May 2021)
Changed
- Fixed bad version constraint for dependency.
Version 4.1.0 (19th May 2021)
Changed
- Updated Android SDK to 4.1.1.
- Updated iOS SDK to 4.1.0.
Version 4.0.1 (30th April 2021)
Changed
- Updated Android SDK to 4.0.1.
Bug fixes
- Fixed predefined events to publish their custom parameters with the correct dimensions.
Version 4.0.0 (28th April 2021)
Added
- Added
AttributionCampaign,AttributionChannel,AttributionNetworkclasses and changed the representation of an attribution slightly. - Added
CustomUserEvent,Dimension,EventDetails,StandardUserEvent, andUserEventclasses, enums, and interfaces. - Added support for retargeting attributions. You can now get a new attribution if a user clicks on a retargeting campaign while your game is already running.
Changed
- Updated Android SDK to 4.0.0.
AttributionResponseandAttributionRecruiternow carry additional fields.- Renamed
UnitstoUnit. PublishEventnow accepts a string, an instance ofEventDetails, or a completeUserEvent.- Predefined events are now represented by classes instead of constants.
Removed
- Removed AttributionNamed class.
Version 2.4.5 (14th March 2021)
Changed
- Added support to provide the SDK as a Unity package.
Version 2.4.4 (3rd March 2021)
Bug fixes
- Initialize the correct SDK agent when running in the editor.
Version 2.4.3 (20th January 2021)
Bug fixes
- Avoid initializing the SDK multiple times at the same time.
Version 2.4.2 (12th January 2021)
Added
- Added field to query whether IronSource was already initialized.
Changed
- Merged both prefabs into single prefab and extended logic to take care of all integration logic automatically.
- Updated Android and iOS SDKs to 2.4.2.
Bug fixes
- Correctly forward IronSource ad impressions on Android.
Platform: Flutter
Version 1.0.0
- Initial release of the justtrack SDK for Flutter.
Version 1.0.0
- Initial release of the justtrack SDK for Godot.
Version 1.0.0 (Sep 29, 2026)
- Initial release of the justtrack SDK for Unreal Engine, wrapping the native justtrack Android and iOS SDKs.
- Added
UJustTrackSubsystemwith Blueprint and C++ APIs for initialization, lifecycle control, event tracking, global dimensions, attribution, remote config, and iOS tracking authorization. - Added editor configuration under Project Settings > Plugins > justtrack SDK, including per-platform API tokens and optional initialization on startup.