Before you begin
Here's what you need to do before updating to SDK v5:
The minimum supported API versions for SDK v5 have been updated. If your app targets a lower version, you need to update it first.
- iOS: 12.0
- Android: 21
Install the SDK
To start using SDK v5, you need to add it as a dependency in your project. To do this:
Download the SDK archive from GitHub
Copy the C++ files from the
dist
directory and add them to your Cocos2d-x project(Android only): add the paths of the C++ files to the
LOCAL_SRC_FILES
section of yourAndroid.mk
file.If you're using CMake, add the following list of sources and headers to your
CMakeLists.txt
file:(Android only): download the latest
adjust-android.aar
from the GitHub releases page and import it into your Android Studio project.(iOS only): download the latest
AdjustSdk.framework
from the GitHub releases page and link it in your Xcode project.
Set up the Signature library
SDK v5 uses the SDK signature library to encrypt information sent from the Adjust SDK to Adjust's servers. You MUST add the signature library to your project to use SDK v5.
Android apps
- Download the latest
adjust-android-signature.aar
from the Adjust Signature library GitHub repository. - Add the
.aar
to your Android Studio project.
iOS apps
- Download the latest
AdjustSigSdk-iOS-Static.a
from the Adjust Signature library GitHub repository. - Link the
.a
in your Xcode project.
Update your app's privacy manifest (iOS only)
To inform the App Store of the Adjust SDK's privacy requirements, you need to merge your privacy manifest with Adjust's privacy manifests.
- Add the Adjust SDK privacy manifest properties to your app's privacy manifest.
- Add the Signature library privacy manifest properties to your app's privacy manifest.
Update the initialization method
In SDK v4, the initialization method is Adjust2dx::start(adjustConfig)
. This has been changed to Adjust2dx::initSdk(adjustConfig)
.
Changed APIs
The following APIs have been changed in SDK v5.
Disable and enable the SDK
In SDK v4, you can enable and disable the SDK by calling Adjust2dx::setEnabled
with a bool
value.
In SDK v5, this feature is split into separate commands for clarity.
- Call
Adjust2dx::disable()
to disable the SDK. - Call
Adjust2dx::enable()
to enable the SDK.
Send information in background
In SDK v4, you can set the sendInBackground
property on your adjustConfig
instance to true
to enable the SDK to send information to Adjust while your app is running in the background.
In SDK v5, you need to call the enableSendingInBackground
method of your adjustConfig
instance to enable the SDK to send information to Adjust while your app is running in the background.
Preinstalled app measurement
In SDK v4, you can call the setPreinstallTrackingEnabled
method of your adjustConfig
instance with a true
argument to enable measuring preinstalled apps.
In SDK v5, you need to call the enablePreinstallTracking
method of your adjustConfig
instance to enable measuring preinstalled apps.
Disable AdServices information reading
In SDK v4, you can call the setAllowAdServicesInfoReading
method on your adjustConfig
with the value false
to prevent the Adjust SDK from reading AdServices information.
In SDK v5, you need to call the disableAdServices
method on your adjustConfig
instance to prevent the Adjust SDK from reading AdServices information. The default state is true
.
Disable IDFA reading
In SDK v4, you can call the setAllowIdfaReading
method on your adjustConfig
with the value false
to prevent the Adjust SDK from reading the device's IDFA.
In SDK v5, you need to call the disableIdfaReading
method on your adjustConfig
instance to prevent the Adjust SDK from reading the device's IDFA. The default state is true
.
Enable cost data in attribution
In SDK v4, you can call the setNeedsCost
method on your adjustConfig
instance with the value true
to enable cost data in the device's attribution information.
In SDK v5, you need to call the enableCostDataInAttribution
method on your adjustConfig
instance to enable cost data in the device's attribution information. The default state is false
.
Enable LinkMe
In SDK v4, you can call the setLinkMeEnabled
method on your adjustConfig
instance with the value true
to enable Adjust LinkMe.
In SDK v5, you need to call the enableLinkMe
method on your adjustConfig
instance to enable Adjust LinkMe. The default state is false
.
Only read device IDs once
In SDK v4, you can call the setReadDeviceInfoOnceEnabled
method on your adjustConfig
with the value true
to instruct the SDK to only read device IDs once.
In SDK v5, you need to call the enableDeviceIdsReadingOnce
method on your adjustConfig
to instruct the SDK to only read device IDs once. The default state is false
.
Offline mode
In SDK v4, you can enable and disable offline mode the SDK by calling Adjust2dx::setOfflineMode
with a bool
argument.
In SDK v5, this feature is split into separate commands for clarity.
- Call
Adjust2dx::switchToOfflineMode
to set the SDK to offline mode. - Call
Adjust2dx::switchBackToOnlineMode
to set the SDK back to online mode.
Session callback parameters
In SDK v4, you can add session callback parameters by passing a key-value pair to the Adjust2dx::addSessionCallbackParameter
method and remove individual parameters using the Adjust2dx::removeSessionCallbackParameter
method.
In SDK v5, session callback parameters are renamed to global parameters.
Session partner parameters
In SDK v4, you can add session partner parameters by passing a key-value pair to the Adjust2dx::addSessionPartnerParameter
method and remove individual parameters using the Adjust2dx::removeSessionPartnerParameter
method.
In SDK v5, session partner parameters are renamed to global partner parameters.
Event deduplication
In SDK v4, event deduplication is coupled with the event transaction ID
and is limited to a maximum of 10 unique IDs.
In SDK v5, the feature is decoupled from transaction ID
. A new ID field called deduplicationId
has been added for event deduplication.
You can set a custom limit on the number of deduplicationId
that can be added to the list for identifying duplicate events. By default, the limit is set to 10.
App Store Subscriptions
In SDK v4, you can set a new subscription by configuring an AdjustAppStoreSubscription2dx
object. This object is initialized with four arguments: price
, currency
, transactionId
, and receipt
.
In SDK v5, you don't need to pass the receipt
argument as it's no longer needed for purchase verification.
Reattribution using deep links
In SDK v4, you can pass your deep link information to the Adjust2dx::appWillOpenUrl
method.
In SDK v5, this has been renamed to Adjust2dx::processDeeplink
for clarity. A new AdjustDeeplink2dx
class has been added for constructing deep links. To process a deep link, instantiate an AdjustDeeplink2dx
object with your deep link URL and pass it to the Adjust2dx::processDeeplink
method.
Deep link resolution
In SDK v4, you can resolve a shortened deep link by passing the url
to the Adjust2dx::processDeeplink
method.
In SDK v5, you need to send an AdjustDeeplink2dx
object initialized with the deep link url
. This returns the original unshortened deep link.
COPPA compliance
In SDK v4, you can call the coppaCompliantEnabled
method on your adjustConfig
instance with the value true
to enable COPPA compliance.
In SDK v5, you need to call the enableCoppaCompliance
method on your adjustConfig
instance to enable COPPA compliance. The default state is false
.
Play Store Kids Apps
In SDK v4, you can mark an app as a Play Store Kids app by calling the setPlayStoreKidsAppEnabled
method on your adjustConfig
instance with the value true
. This is read during SDK initialization, which means that the value can't be updated once the SDK is initialized.
In SDK v5, you need to call the enablePlayStoreKidsCompliance
method of your adjustConfig
instance to enable compliance. The default state is false
.
Set data residency and URL strategy
In SDK v4, URL strategy and data residency domains are defined as constants in the AdjustConfig
class.
In SDK v5, you need to pass your chosen domain or domains as an array. You need to also set the following:
useSubdomains
(bool
): Whether the domain should be treated as an Adjust domain. Iftrue
, the SDK will prefix the domains with Adjust-specific subdomains. Iffalse
, the SDK will use the provided domain as-is, without adding any prefixes.isDataResidency
(bool
): Whether the domain should be used for data residency.
Check the table below to see how to configure your URL strategy in SDK v5.
v4 | v5 - main and fallback domain | v5 - use sub domains | v5 - is Data Residency |
---|---|---|---|
AdjustDataResidencyEU | "eu.adjust.com" | true | true |
AdjustDataResidencyTR | "tr.adjust.com" | true | true |
AdjustDataResidencyUS | "us.adjust.com" | true | true |
AdjustUrlStrategyChina | "adjust.world" , "adjust.com" | true | false |
AdjustUrlStrategyCn | "adjust.cn" , "adjust.com" | true | false |
AdjustUrlStrategyCnOnly | "adjust.cn" | true | false |
AdjustUrlStrategyIndia | "adjust.net.in" , "adjust.com" | true | false |
Examples
Record ad revenue
In SDK v4, you can record ad revenue by instantiating an AdjustAdRevenue2dx
object with an ad revenue source constant.
In SDK v5, you need to instantiate an AdjustAdRevenue
object with a string source
.
v4 | v5 |
---|---|
AdjustAdRevenueSourceAppLovinMAX | "applovin_max_sdk" |
AdjustAdRevenueSourceAdMob | "admob_sdk" |
AdjustAdRevenueSourceIronSource | "ironsource_sdk" |
AdjustAdRevenueSourceAdMostSource | "admost_sdk" |
AdjustAdRevenueSourceUnity | "unity_sdk" |
AdjustAdRevenueSourceHeliumChartboost | "helium_chartboost_sdk" |
AdjustAdRevenueSourceAdx | "adx_sdk" |
AdjustAdRevenueSourcePublisher | "publisher_sdk" |
AdjustAdRevenueSourceTopOn | "topon_sdk" |
AdjustAdRevenueSourceMopub | No longer supported |
Disable SKAdNetwork communication
In SDK v4, you can prevent the SDK from communicating with SKAdNetwork by calling the adjustConfig.deactivateSKAdNetworkHandling
method.
In SDK v5, you need to call the disableSkanAttribution
method on your adjustConfig
instance to disable SKAdNetwork communication. The default state is true
.
Listen for conversion value updates
In SDK v4, you can call the setPostbackConversionValueUpdatedCallback
method on your adjustConfig
to listen for conversion value updates. Before SKAN4, you could use the setConversionValueUpdatedCallback
method.
In SDK v5, you need to assign a callback function to the setSkanUpdatedCallback
method of your adjustConfig
object.
Update conversion values
In SDK v4, you can use one of these methods to send updated conversion values to Adjust:
To update conversion values in SDK v5, use the updateSkanConversionValue
method with the following arguments:
conversionValue
(int
): The updated conversion valuecoarseValue
(std::string
): The updated coarse conversion valuelockWindow
(bool
): Whether to send the postback before the conversion window ends
App Tracking Transparency authorization wrapper
In SDK v4, you can handle changes to a user's ATT authorization status using the Adjust2dx::requestTrackingAuthorizationWithCompletionHandler
method.
This has been renamed to Adjust2dx::requestAppTrackingAuthorization
in SDK v5 for clarity.
Get device information
In SDK v4, all device information getter methods run synchronously. In SDK v5, these methods have been changed to run asynchronously. You can add a callback function to handle the information when the asynchronous process completes
Removed APIs
The following APIs have been removed in SDK v5.
Event buffering
SDK v4 supports event buffering. This feature stores requests event, ad revenue, push tokens, and other information on a local buffer to send at a later date.
This setting has been removed in SDK v5.
Custom user agent string
SDK v4 supports setting a custom User Agent by calling adjustConfig.setUserAgent
with a user agent string.
This setting has been removed in SDK v5.
Set whether a device is known
In SDK v4, you can call the adjustConfig.setDeviceKnown
method to manually inform the SDK whether a device is known.
This setting has been removed in SDK v5.
Delay SDK start
SDK v4 supports delaying the start of the SDK by calling adjustConfig.setDelayStart
with up to 10 seconds of delay.
This method has been removed in SDK v5. The Adjust2dx::sendFirstPackages()
method that interrupts this delay has also been removed.
Disable third party sharing globally
In SDK v4, you can call the Adjust2dx::disableThirdPartySharing
method to globally disable sharing information with third parties globally.
This feature has been removed from SDK v5. In SDK v5, use the Adjust2dx::trackThirdPartySharing
method to enable or disable third party sharing.