- 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
SUPPRESS
log level constant and renamed it fromSUPRESS to SUPPRESS
(#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 [email protected].
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_sharing
andmeasurement_consent
packages if invoked before SDK initialization in subsequent SDK initializations.
- Added support for
TradPlus
ad revenue tracking.
- Added
toMap()
method toAdjustAttribution
class 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 theAdjust
instance.
- Added null check for the
OnDeviceIdsRead
callback object passed toAdjust.getGoogleAdId
method to avoidNullPointerException
.
- Switched from usage of deprecated
PackageInfo.signatures
toPackageInfo.signingInfo
on 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_CN
strategy, but without fallback domains. - Added
setReadDeviceInfoOnceEnabled(boolean)
method toAdjustConfig
to 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
TopOn
andAD(X)
ad revenue tracking. - Added Getters for certain public classes.
- Added sending of
event_callback_id
parameter (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 toAdjustConfig
to 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
verifyPurchase
method of theAdjust
instance.
- 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
setUrlStrategy
method ofAdjustConfig
instance withAdjustConfig.URL_STRATEGY_CN
parameter.
- Changed log type for Samsung & Xiaomi install referrer error logging.
- Added support for Samsung install referrer.
- Added
isAdjustUninstallDetectionPayload()
method toAdjust
interface to know whether payload originates from Adjust or not. - Added support to OAID plugin for MSA SDK v2.0.0.
- Added catching of
NullPointerException
while extracting attribution fields inwebbridge
plugin.
- Updated OAID plugin to read OAID on Huawei devices using Huawei Mobile Sevices Core Ads Identifier SDK.
- Added bundling of Adjust Javascript files to
webbridge
plugin in theasset
folder:- 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_ID
in 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
Generic
ad revenue tracking. - Added sending of
deduplication_id
parameter inevent
package.
- Added catching of
IllegalStateException
while retrievingSharedPreferences
- Added ability to mark your app as COPPA compliant. You can enable this setting by calling
setCoppaCompliantEnabled
method ofAdjustConfig
instance 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
setPlayStoreKidsAppEnabled
method ofAdjustConfig
instance with boolean parametertrue
.
- Removed reading of
network_type
parameter. - Updated docs.
- Added support for
Helium Chartboost
ad revenue tracking.
- Added support for
Unity
ad 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
AsyncTask
with custom implementation. - Added permission
com.google.android.gms.permission.AD_ID
in the example apps for Android 12 & above.
- Added support for
Admost
ad 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
setUrlStrategy
method ofAdjustConfig
instance withAdjustConfig.DATA_RESIDENCY_US
parameter. - Added helper class
AdjustLinkResolution
to 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
setUrlStrategy
method ofAdjustConfig
instance withAdjustConfig.DATA_RESIDENCY_TR
parameter. - Added
trackAdRevenue(AdjustAdRevnue)
method toAdjust
interface to allow tracking of ad revenue by passingAdjustAdRevnue
as parameter. - Added support for
AppLovin MAX
ad 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
setUrlStrategy
method ofAdjustConfig
instance withAdjustConfig.DATA_RESIDENCY_EU
parameter. - 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
sharing
tomeasurement
.
- 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 toAdjustConfig
to 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
setPreinstallTrackingEnabled
method toadjust_config.js
to 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 inAdjustConfig
class 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_revenue
package 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
OAID
identifier with usage of MSA SDK if present in app and supported on device.
- Added
disableThirdPartySharing(Context)
method toAdjust
interface 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-oaid
plugin 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 toAdjust
interface to allow tracking of ad revenue. With this release added support forMoPub
ad revenue tracking.
- Added
getSdkVersion()
method toAdjust
interface to obtain current SDK version string.
- Fixed
R.class
DEX compilation issue when using plugins (#362).
- Added
README
localisation in Chinese, Korean and Japanese. - Added sending of
android_uuid
with each attribution request. - Added Gradle tasks for usage in Adjust non native SDKs.
- Refactored scheduler.
- Started to catch potential exceptions in case of
checkCallingOrSelfPermission
method call. - Renamed Android project modules.
- Changed way how
AdjustAttribution
object is being passed to Unity layer. - Modified paths in Gradle tasks for building JAR files.
- Added
setCallbackId
method onAdjustEvent
object for users to set custom ID on event object which will later be reported in event success/failure callbacks. - Added
callbackId
member toAdjustEventSuccess
class. - Added
callbackId
member toAdjustEventFailure
class. - 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
setReadMobileEquipmentIdentity
method ofAdjustConfig
object as deprecated. - SDK will now fire attribution request each time upon session tracking finished in case it lacks attribution info.
- Removed reading of
vm_isa
parameter. - 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
InstallReferrer
invoke
method.
- Fixed random
OutOfMemoryError
occurrences 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_referrer
parameter insdk_click
package. - 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_click
andsdk_info
packages 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_click
package response contains attribution information. - Added sending of attributable parameters with every
sdk_click
package.
- Replaced
assert
level logs withwarn
level.
- 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 Handler
to 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 (#265).
- Protected
Package Manager
from throwing unexpected exception (#265).
- Added sending of Amazon Fire Advertising Identifier.
- Added
adid
field to the attribution callback response. - Added possibility to set default tracker for the app by adding
adjust_config.properties
file to theassets
folder of your app. Mostly meant to be used by theAdjust Store & Pre-install Tracker Tool
. - Added method
Adjust.getAdid()
to be able to getadid
value 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_segment
to be sent ininjectUserSegmentIntoCriteoEvents
(for all Criteo events). - Moved
customer_id
to be sent ininjectCustomerIdIntoCriteoEvents
(for all Criteo events). - Added new partner parameter
new_customer
to 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_buid
withBUILD.ID
info. - 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
Reflection
class. - Removed unused response types.
- Removed disconnect after
URLConnection
creation. 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
ScheduledThreadPoolExecutor
to 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_click
immediately 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 8
devices due to accessingcalendarWithIdentifier
method.
- Fixed Sociomantic plugin.
- Renamed getting of device identifiers.
- Eased access to Google Play Advertising Id.
- Send
api_level
and replaceos_version
. - Update ProGuard rules to add inner class notation.
- Added gradle to the repository.
- Exposing
setDeviceKnown
method inAdjustConfig
class.
- 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
HttpClient
byHttpURLConnection
. - 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 label
parameter in attribution. - Added injection of optional parameters in Criteo events.
- Added
partner_id
optional 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
Context
instead 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
.jar
file. 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_enabled
to 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
AdjustIo
toAdjust
.
- Added option to disable offline tracking.
- Added
sandbox
environment. - Added sending of
tracking_enabled
parameter.
- Fixed bugs introduced in recent refactorings.
- Added
PackageQueue
persistence handling ofNullPointerExceptions
.
- Added support for SDK wrappers for Unity and Adobe AIR.
- Fixed a crash that resulted from our changed
ActivityPackage
representation 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
ApplicationContext
instead ofActivityContext
to 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.