- Optimized the logic behind the
processAndResolveDeeplinkmethod to immediately return links that have already been resolved.
- Updated the Adjust Signature library version to 3.47.0.
- Added support for configuring store information via the
AdjustStoreInfoobject. You can now specify the store name and store app ID usingsetStoreInfomethod on yourAdjustConfiginstance. This enables the SDK to record the intended app store source during initialization.
- Added ability to initialize the SDK for the first session in delayed mode. You can start the SDK in the delayed mode by calling the
enableFirstSessionDelaymethod on yourAdjustConfiginstance. To end the delay, make sure to callendFirstSessionDelaymethod ofAdjustinstance. For more details about this feature, refer to the official documentation.
- Added ability to send organic search referrer together with deep link.
- Added
jsonResponsefield (JSON string) toAdjustAttributionwhere every key-value pair sent by the backend as part of the attribution response can be found. Equivalently, one can also findjsonResponsefield being part of the attribution instance in the web bridge API.
- Fixed occasional NPE occurrences when app was entering background (adjust#630).
- Updated Gradle version to 8.8.0.
- Updated the Adjust Signature library version to 3.35.2.
- Updated
isEnabledlistener to be invoked from the main thread.
- Switched to depending on a specific version of the signature library.
- Fixed ANR while reading install referrer from Shared Preferences during SDK initialization.
- Fixed typo in
SUPPRESSlog level constant and renamed it fromSUPRESS to SUPPRESS(adjust#613).
- Added validation when passing callback / partner parameters and third party sharing granular options / partner sharing setting parameters in web bridge.
- Updated some log messages to add more clarity.
We're excited to release our major new SDK version (v5). Among many internal improvements, our spoofing protection solution is now included out of the box, reinforcing our commitment to accurate, actionable, and fraud-free data.
To try out SDK v5 in your app, you can follow our new v4 to v5 migration guide.
On our Signature releases page, you can find the latest version of the Signature library to integrate into your app.
If you are a current Adjust client and have questions about SDK v5, please email sdk-v5@adjust.com.
In case you were using beta version of the SDK v5, please switch to the official v5 release.
- Fixed occasional crash while invoking deeplink resolution callback.
- Added sending of the additional SDK observability parameters for debugging purposes.
- Added support for Samsung CloudDev SDK to read Google Play Advertising Identifier.
- Removed webbridge unused code.
- Fixed occasional invalid signature cases when SDK package payload would be altered right before sending.
- Updated order of tracking of
third_party_sharingandmeasurement_consentpackages if invoked before SDK initialization in subsequent SDK initializations.
- Added support for
TradPlusad revenue tracking.
- Added
toMap()method toAdjustAttributionclass to get all its fields in aMap<String, String>(thanks to @ntsk). - Added ability to process shortened deep links and provide the unshortened link back as a response. You can achieve this by invoking
processDeeplink(Uri url, Context context, OnDeeplinkResolvedListener callback)method of theAdjustinstance.
- Added null check for the
OnDeviceIdsReadcallback object passed toAdjust.getGoogleAdIdmethod to avoidNullPointerException.
- Switched from usage of deprecated
PackageInfo.signaturestoPackageInfo.signingInfoon devices running Android 9 or later. - Switched from usage of deprecated
Class.newInstance()toClass.getDeclaredConstructor().newInstance()on devices running Android 14 or later.
- Added a new type of URL strategy called
AdjustConfig.URL_STRATEGY_CN_ONLY. This URL strategy representsAdjustConfig.URL_STRATEGY_CNstrategy, but without fallback domains. - Added
setReadDeviceInfoOnceEnabled(boolean)method toAdjustConfigto indicate if device info to be read only once.
- Added support for Meta install referrer.
- Added support for Google Play Games on PC.
- Added support for
TopOnandAD(X)ad revenue tracking. - Added Getters for certain public classes.
- Added sending of
event_callback_idparameter (if set) with the event payload. - Updated Gradle version 8.1.1.
- Added support for SigV3 library. Update authorization header building logic to use
adj_signing_id. - Added
setFinalAttributionEnabled(boolean)method toAdjustConfigto indicate if only final attribution is needed in attribution callback (by default attribution callback return intermediate attribution as well before final attribution if not enabled with this setter method).
- Added support for purchase verification. In case you are using this feature, you can now use it by calling
verifyPurchasemethod of theAdjustinstance.
- Added sending of App Set Identifier.
- Updated Samsung Install Referrer library version to 3.0.1.
- Updated IMEI reading attempt to only once.
- Added catching of exceptions in referrer plugins when thrown anytime while retrieving referrer.
- Fixed Duplicate class error caused by compiler generating package
a.a.
- Added support for Vivo install referrer.
- Added support for setting a new China Url Strategy. You can choose this setting by calling
setUrlStrategymethod ofAdjustConfiginstance withAdjustConfig.URL_STRATEGY_CNparameter.
- Changed log type for Samsung & Xiaomi install referrer error logging.
- Added support for Samsung install referrer.
- Added
isAdjustUninstallDetectionPayload()method toAdjustinterface to know whether payload originates from Adjust or not. - Added support to OAID plugin for MSA SDK v2.0.0.
- Added catching of
NullPointerExceptionwhile extracting attribution fields inwebbridgeplugin.
- Updated OAID plugin to read OAID on Huawei devices using Huawei Mobile Sevices Core Ads Identifier SDK.
- Added bundling of Adjust Javascript files to
webbridgeplugin in theassetfolder:- In case you add web bridge AAR from release page to your app, make sure to remove any previous JAR version you had.
- There is no need for you to keep (and update) Adjust Javascript files inside of your app's assets folder - feel free to delete them since they are now bundled inside of the AAR.
- Added partner sharing settings to the third party sharing feature.
- Added permission
com.google.android.gms.permission.AD_IDin the SDK's mainfest.
- Typo in Xiaomi Install Referrer's maven artifact id.
- Updated Gradle version 7.3.3 and other dependencies.
- Added support for Xiaomi install referrer.
- Added support to get Facebook install referrer information in attribution callback.
- Added support to publish AAR in maven repository.
- Added support for
Genericad revenue tracking. - Added sending of
deduplication_idparameter ineventpackage.
- Added catching of
IllegalStateExceptionwhile retrievingSharedPreferences
- Added ability to mark your app as COPPA compliant. You can enable this setting by calling
setCoppaCompliantEnabledmethod ofAdjustConfiginstance with boolean parametertrue. - Added ability to mark your app as app for the kids in accordance to Google Play Families policies. You can enable this setting by calling
setPlayStoreKidsAppEnabledmethod ofAdjustConfiginstance with boolean parametertrue.
- Removed reading of
network_typeparameter. - Updated docs.
- Added support for
Helium Chartboostad revenue tracking.
- Added support for
Unityad revenue tracking.
- Updated docs.
- Added support to OAID plugin for MSA SDK v1.1.0.
- Removed reading of MAC address.
- Updated Gradle version 7.0.4 and Gradle Javadoc task.
- Fixed crash while iterating through the running processes.
- Fixed ANR while reading Google Play Advertising Id.
- Added extraction & usage of application context for all the APIs.
- Added caching of IDs in the IMEI plugin to avoid frequent reads.
- Added Huawei Install Referrer Track ID support.
- Replaced deprecated
AsyncTaskwith custom implementation. - Added permission
com.google.android.gms.permission.AD_IDin the example apps for Android 12 & above.
- Added support for
Admostad revenue tracking.
- Added support for Android TV.
- Added support to OAID plugin for MSA SDK v1.0.26.
- Improved logging.
- Fixed missing authorization header in retry requests.
- Added deep link URL decoding before parsing its parameters.
- [beta] Added data residency support for US region. You can choose this setting by calling
setUrlStrategymethod ofAdjustConfiginstance withAdjustConfig.DATA_RESIDENCY_USparameter. - Added helper class
AdjustLinkResolutionto assist with resolution of links which are wrapping Adjust deep link.
- Removed 5 decimal places formatting for ad revenue value.
- [beta] Added data residency support for Turkey region. You can choose this setting by calling
setUrlStrategymethod ofAdjustConfiginstance withAdjustConfig.DATA_RESIDENCY_TRparameter. - Added
trackAdRevenue(AdjustAdRevnue)method toAdjustinterface to allow tracking of ad revenue by passingAdjustAdRevnueas parameter. - Added support for
AppLovin MAXad revenue tracking.
- Removed unused ad revenue constants from
AdjustConfig.
- [beta] Added data residency feature. Support for EU data residency region is added. You can choose this setting by calling
setUrlStrategymethod ofAdjustConfiginstance withAdjustConfig.DATA_RESIDENCY_EUparameter. - Added preinstall tracking with usage of system installer receiver.
- Added support for MSA SDK v1.0.25 to OAID plugin.
- Changed the measurement consent parameter name from
sharingtomeasurement.
- Added Facebook audience network ad revenue source string.
- Changed minimum supported API version to 17 for
webbridge, to avoid insecure JavaScript potential injections on lower API versions. - Moved reading of install referrer details to background thread after service connection establishes.
- Added improved measurement consent management and third party sharing system.
- Added possibility to get cost data information in attribution callback.
- Added
setNeedsCost(boolean)method toAdjustConfigto indicate if cost data is needed in attribution callback (by default cost data will not be part of attribution callback if not enabled with this setter method). - Added
setPreinstallTrackingEnabledmethod toadjust_config.jsto allow enabling of preintall tracking from web bridge plugin.
- Switched from usage of deprecated
getNetworkType()method togetDataNetworkType()on devices running Android 11 or later.
- Added support to OAID plugin for MSA SDK v1.0.23.
- Changed host name verifier used for testing purposes to allow only localhost addresses.
- Added
setUrlStrategy(String)method inAdjustConfigclass to allow setting of URL strategy for specific market.
- Added new ways of handling preinstall campaigns.
- Added reading of additional fields which Play Install Referrer API introduced in v2.0.
- Added support to OAID plugin for MSA SDK v1.0.13.
- Added subscription tracking feature.
- Updated OAID reading logic by adding retry mechanism.
- Fixed memory leak issue caused by holding reference to web view object inside of web bridge (thanks to @evgentset).
- Added check for presence of Huawei content provider.
- Added persistence of Huawei referrer information.
- Updated Google Play Advertising Id reading logic.
- Added support for Huawei App Gallery install referrer.
- Added support for signature library as a plugin.
- Added more aggressive sending retry logic for install session package.
- Added additional parameters to
ad_revenuepackage payload.
- Added timeout when reading Google Play Advertising Identifier.
- Added external device ID support.
- Added AndroidX support for example apps.
- Added support to Adjust OAID plugin for reading
OAIDidentifier with usage of MSA SDK if present in app and supported on device.
- Added
disableThirdPartySharing(Context)method toAdjustinterface to allow disabling of data sharing with third parties outside of Adjust ecosystem.
- Fixed occasional crash when attempting to unbind from OAID service (relevant only for OAID plugin users).
- Fixed issue in v4.18.2 where released JAR in Maven was empty (thanks to @calvarez-ov).
- Added Korean localisation for OAID plugin document.
- Updated Gradle tasks because of path changes in Android Studio and Gradle 3.5.1.
- Added
adjust-android-oaidplugin and support for reading Huawei Advertising Identifier (OAID).
- Fixed low vulnerability issue by adding checks for FB app authenticity when requesting
fb_id(thanks to @StanKocken).
- Added
trackAdRevenue(String, JSONObject)method toAdjustinterface to allow tracking of ad revenue. With this release added support forMoPubad revenue tracking.
- Added
getSdkVersion()method toAdjustinterface to obtain current SDK version string.
- Fixed
R.classDEX compilation issue when using plugins (adjust#362).
- Added
READMElocalisation in Chinese, Korean and Japanese. - Added sending of
android_uuidwith each attribution request. - Added Gradle tasks for usage in Adjust non native SDKs.
- Refactored scheduler.
- Started to catch potential exceptions in case of
checkCallingOrSelfPermissionmethod call. - Renamed Android project modules.
- Changed way how
AdjustAttributionobject is being passed to Unity layer. - Modified paths in Gradle tasks for building JAR files.
- Added
setCallbackIdmethod onAdjustEventobject for users to set custom ID on event object which will later be reported in event success/failure callbacks. - Added
callbackIdmember toAdjustEventSuccessclass. - Added
callbackIdmember toAdjustEventFailureclass. - Added support for tracking Facebook Pixel events with Android web view SDK.
- Aligned feature set of Android web view SDK with native Android SDK.
- Added example app which demonstrates how Android web view SDK can be used to track Facebook Pixel events.
- Marked
setReadMobileEquipmentIdentitymethod ofAdjustConfigobject as deprecated. - SDK will now fire attribution request each time upon session tracking finished in case it lacks attribution info.
- Removed reading of
vm_isaparameter. - Removed unneccessary reflection calls.
- Added
Adjust.appWillOpenUrl(Uri, Context)method to enable deep link caching.
- Marked
Adjust.appWillOpenUrl(Uri)method as deprecated. Please, useAdjust.appWillOpenUrl(Uri, Context)method instead.
- Added
Adjust.gdprForgetMe(Context)method to enable possibility for user to be forgotten in accordance with GDPR law.
- Added additional null checks into
InstallReferrerinvokemethod.
- Fixed random
OutOfMemoryErroroccurrences when reading/writing referrers array.
- Capturing information about silently ignored runtime exceptions by scheduled executor.
- Send referrer information upon enabling SDK if it was launched as disabled.
- Fixed handling of malformed referrer string values.
- Formatting all strings with US locale.
- Added support for new Google referrer API (https://developer.android.com/google/play/installreferrer/library.html).
- Added
Adjust.getAmazonAdId()method to obtain value of Amazon Advertising Identifier. - Added possibility to read Mobile Equipment Identity for non Google Play store apps.
- Added usage of app secret in authorization header.
- Added sending of
raw_referrerparameter insdk_clickpackage. - Added reading of MCC.
- Added reading of MNC.
- Added reading of network type.
- Added reading of connectivity type.
- Added log messages for saved actions to be done when the SDK starts.
- Not sending
sdk_clickandsdk_infopackages when SDK is disabled. - Setting enable/disable or offline/online is now queued.
- Guaranteeing that first package is sent even with event buffering turned ON.
- Not creating first session package if SDK is disabled before first launch.
- Saving referrer in local storage and send it only after first session.
- Saving push token in local storage and send it only after first session.
- Added check if
sdk_clickpackage response contains attribution information. - Added sending of attributable parameters with every
sdk_clickpackage.
- Replaced
assertlevel logs withwarnlevel.
- Removed connection validity checks.
- Refactored networking code.
- Added sending of the app's install time.
- Added sending of the app's update time.
- Added connection validity checks.
- Garanteed that access of
Activity Handlerto internal methods is done through it's executor. - Updated gradle version.
- Fixed random occurrence of attribution request being fired before session request.
- Fixed query string parsing.
- Using separate executor in background timer like previously done for foreground timer.
- Prevented creation of multiple threads (adjust#265).
- Protected
Package Managerfrom throwing unexpected exception (adjust#265).
- Added sending of Amazon Fire Advertising Identifier.
- Added
adidfield to the attribution callback response. - Added possibility to set default tracker for the app by adding
adjust_config.propertiesfile to theassetsfolder of your app. Mostly meant to be used by theAdjust Store & Pre-install Tracker Tool. - Added method
Adjust.getAdid()to be able to getadidvalue at any time after obtaining it, not only when session/event callbacks have been triggered. - Added methd
Adjust.getAttribution()to be able to get current attribution value at any time after obtaining it, not only when attribution callback has been triggered.
- Updated Criteo plugin:
- Added new partner parameter
user_segmentto be sent ininjectUserSegmentIntoCriteoEvents(for all Criteo events). - Moved
customer_idto be sent ininjectCustomerIdIntoCriteoEvents(for all Criteo events). - Added new partner parameter
new_customerto be sent ininjectTransactionConfirmedIntoEvent.
- Added new partner parameter
- Firing attribution request as soon as install has been tracked, regardless of presence of attribution callback implementation in user's app.
- Refactored attribution timer code.
- Updated docs.
- Now reading push token value from activity state file when sending package.
- Removed native C++ code for checking CPU architecture.
- Added sending of
os_buidwithBUILD.IDinfo. - Added sending of the Fire Advertising ID and it's tracking enabled/disabled information.
- Added sending of the vm ISA information from native code.
- Removed unnecessary attribution changed listner check.
- Using reflection to get locale information due to old method deprecation.
- Sending push token with dedicated package called
sdk_info. - Refactored
Reflectionclass. - Removed unused response types.
- Removed disconnect after
URLConnectioncreation. Allow to do it after response is read.
- Fixed bug in network communication for some Android API levels from SDK v4.10.1.
SDK v4.10.1 should not be integrated, since we noticed errors in network communication for some Android API levels.
- Setting explicit keep alive time for
ScheduledThreadPoolExecutorto prevent wrong default of older APIs.
- Added support for suppress log level.
- Added possibility to delay first session.
- Added support for session parameters to be sent in every session/event.
- Added possibility to inject custom user agent to each request.
- Added teardown method.
- Added reading of the permissions from the manifest.
- Updated docs.
- Added background tracking feature.
- Added deferred deep link callback listener with decision whether deep link should be launched or not.
- Send whole referrer and deep link with sdk_click.
- Send
sdk_clickimmediately with a dedicated handler. - Updated docs.
- Correct behaviour so the SDK does not start when is put enabled/disabled or online/offline.
- Added delegate callbacks for tracked events and sessions.
- Fixed errors on
pre iOS 8devices due to accessingcalendarWithIdentifiermethod.
- Fixed Sociomantic plugin.
- Renamed getting of device identifiers.
- Eased access to Google Play Advertising Id.
- Send
api_leveland replaceos_version. - Update ProGuard rules to add inner class notation.
- Added gradle to the repository.
- Exposing
setDeviceKnownmethod inAdjustConfigclass.
- Updated different tools versions.
- Explicit cast of read objects.
- Explicit naming of deep link recipient.
- Explicit setting of target package of deep link.
- Added pom.xml files for plugins to publish in maven repository.
- Updated Criteo plugin to send deep link.
- Added support for Trademob plugin.
- Catch possible error in reading files, a class cast exception, if trying to read different file than expected.
- Replaced
HttpClientbyHttpURLConnection. - Sending full referrer if it contains an adjust parameter(s).
- Checking if state is valid to prevent exception.
- Preventing access to invalid state.
- Updated docs.
- Added Sociomantic
partner_id. - Added reading of responses to click packages.
- Revenue logs match value send.
- Install referrer does not send the first session.
- Timer is not created every time it starts.
- Hash functions are now accessible for plugins.
- Added new
click labelparameter in attribution. - Added injection of optional parameters in Criteo events.
- Added
partner_idoptional parameter in Criteo.
- Added support for muti-process apps.
- Updated Criteo plugin.
- Updated Criteo plugin.
- Changed Google Play Services availability check.
- Prefixed Sociomantic params to avoid ambiguities.
- Added Sociomantic plugin.
- Updated documentation to Google play services v7.
- Fixed Criteo product string parsing.
- Formatting string using US locale.
- Updated Criteo Plugin with new events.
- Improved serialization and migration.
- Added config objects to launch SDK and track events.
- Added sending of currency with revenue.
- Added partner parameters feature.
- Added offline mode feature.
- Added Criteo plugin that allows to track Criteo type of events.
- Replaced response data delegate with attribution changed delegate.
- Changed Android SDK target to 21, a.k.a, Lollipop.
- You can now call the Adjust API with a
Contextinstead of anActivity. - Updated pom.xml for Maven.
- Added creation of the plugin mechanism for the SDK.
- Added usage of Google Advertisement ID as default device ID. If Google Play Services is present, don't send MAC Address.
- Removed Google Play Services
.jarfile. Only the one provided by the app is needed.
- Added opening of the deep link if the server responds with one after the install.
- Fixed check for malformed app token.
- Fixed bug that didn't handle malformed app token properly.
- Added sending of
tracking_enabledto know if the user opted out of tracking.
- Always sending Google Play Services Advertisement Id.
- Added new response data fields for tracker information.
- Added Android Studio build via gradle.properties.
- Removed static dependency to Google Play Services library.
- Obtaining Google Advertising ID via reflection.
- Added local repository in Maven for Google Play Services dependency.
- Added Gradle build fix.
- Added deep link parameters.
- Fixed new fields on migrating devices.
- Added option to disable and enable the SDK temporarily.
- Added support for Google Play Services Advertising ID.
- Added In-App source access.
- Added listener to support In-App source access.
- Renamed
AdjustIotoAdjust.
- Added option to disable offline tracking.
- Added
sandboxenvironment. - Added sending of
tracking_enabledparameter.
- Fixed bugs introduced in recent refactorings.
- Added
PackageQueuepersistence handling ofNullPointerExceptions.
- Added support for SDK wrappers for Unity and Adobe AIR.
- Fixed a crash that resulted from our changed
ActivityPackagerepresentation that was introduced inv2.1.2.
- Performed big code cleanup.
- Fixed context crash.
- Updated version in pom.xml file.
- Added event buffering feature.
- Added default tracker feature.
- Fixed memory leaking issue.
- Using
ApplicationContextinstead ofActivityContextto avoid leakage.
- Added support for iOS 7.
- Added session aggregation.
- Added meta information for sessions and events.
- Added offline tracking feature.
- Added persistent storage (crash safe).
- Added multi-threading.
- Added migration guide.
- Initial release of the adjust SDK for Android.