Before you begin
Here’s what you need to do before updating to SDK v5:
-
SDK v5 supports SDK signature verification natively. If you currently use the SDK signature library, you need to remove the signature library from your app first.
-
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, add the following dependency to your pubspec.yaml
file:
Update the initialization method
In SDK v4, the initialization method is Adjust.start
. This has been changed to Adjust.initSdk
in SDK v5.
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 Adjust.setEnabled
with a bool
value.
In SDK v5, this feature is split into separate commands for clarity.
- Call
Adjust.disable
to disable the SDK. - Call
Adjust.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 set the isSendingInBackgroundEnabled
property on your adjustConfig
instance to true
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 set the preinstallTrackingEnabled
property on your adjustConfig
instance to true
to enable measuring preinstalled apps.
In SDK v5, you need to set the isPreinstallTrackingEnabled
property on your adjustConfig
instance to true
to enable measuring preinstalled apps.
Disable AdServices information reading
In SDK v4, you can set the allowAdServicesInfoReading
property on your adjustConfig
instance to false
to prevent the Adjust SDK from reading AdServices information.
In SDK v5, you need to set the isAdServicesEnabled
property on your adjustConfig
instance to false
to prevent the Adjust SDK from reading AdServices information.
Disable IDFA reading
In SDK v4, you can set the allowIdfaReading
property on your adjustConfig
instance to false
to prevent the Adjust SDK from reading the device’s IDFA.
In SDK v5, you need to set the isIdfaReadingEnabled
property on your adjustConfig
instance to false
to prevent the Adjust SDK from reading the device’s IDFA.
Enable cost data in attribution
In SDK v4, you can set the needsCost
property on your adjustConfig
instance to true
to enable cost data in the device’s attribution information.
In SDK v5, you need to set the isCostDataInAttributionEnabled
property on your adjustConfig
instance to true
to enable cost data in the device’s attribution information.
Enable LinkMe
In SDK v4, you can set the linkMeEnabled
property on your adjustConfig
instance to true
to enable Adjust LinkMe.
In SDK v5, you need to set the isLinkMeEnabled
property on your adjustConfig
instance to true
to enable Adjust LinkMe.
Only read device IDs once
In SDK v4, you can set the readDeviceInfoOnceEnabled
property on your adjustConfig
instance to true
to instruct the SDK to only read device IDs once.
In SDK v5, you need to set the isDeviceIdsReadingOnceEnabled
property on your adjustConfig
instance to true
to instruct the SDK to only read device IDs once.
Offline mode
In SDK v4, you can enable and disable offline mode the SDK by calling Adjust.setOfflineMode
with a bool
argument.
In SDK v5, this feature is split into separate commands for clarity.
- Call
Adjust.switchToOfflineMode
to set the SDK to offline mode. - Call
Adjust.switchBackToOnlineMode
to set the SDK back to online mode.
Session callback parameters
In SDK v4, you can add session parameters by passing a key-value pair to the Adjust.addSessionCallbackParameter
method and remove individual parameters using the Adjust.removeSessionCallbackParameter
method.
In SDK v5, session 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 Adjust.addSessionPartnerParameter
method and remove individual parameters using the Adjust.removeSessionPartnerParameter
method.
In SDK v5, session partner parameters are renamed to global partner parameters.
App Store Subscriptions
In SDK v4, you can set a new subscription by configuring an AdjustAppStoreSubscription
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.
App Store Purchases
In SDK v4, you can set a new purchase by configuring an AdjustAppStorePurchase
object. This object is initialized with three arguments: receipt
, product ID
and transaction ID
.
In SDK v5, you don’t need to pass the receipt
argument as it’s no longer needed for purchase verification.
Play Store Subscriptions
In SDK v4, you can record the date on which the user purchased a subscription by passing a timestamp to the setPurchaseTime
method.
In SDK v5, you need to assign a timestamp to the purchaseTime
property on the adjustPlayStoreSubscription
instance to record the date on which the user purchased a subscription.
Reattribution using deep links
In SDK v4, you can pass your deep link information to the Adjust.appWillOpenUrl
method.
In SDK v5, this has been renamed to Adjust.processDeeplink
for clarity. A new AdjustDeeplink
class has been added for constructing deep links. To process a deep link, instantiate an AdjustDeeplink
object with your deep link URL and pass it to the Adjust.processDeeplink
method.
Launch deferred deep links
In SDK v4, you can set the launchDeferredDeeplink
property on your adjustConfig
instance to true
to enable the SDK to open deep links.
In SDK v5, you need to set the isDeferredDeeplinkOpeningEnabled
property on your adjustConfig
instance to true
to enable the SDK to open deep links.
Deep link resolution
In SDK v4, you can resolve a shortened deep link by passing the url
to the processDeeplink
method.
In SDK v5, you need to send an AdjustDeeplink
object initialized with the deep link url
. This returns the original unshortened deep link.
COPPA compliance
In SDK v4, you can set the coppaCompliantEnabled
property on your adjustConfig
instance to true
to enable COPPA compliance.
In SDK v5, you need to set the isCoppaComplianceEnabled
property on your adjustConfig
instance to a true
to enable COPPA compliance.
Play Store Kids Apps
In SDK v4, you can mark an app as a Play Store Kids app setting the playStoreKidsAppEnabled
property on your adjustConfig
instance to true
. This property 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 set the isPlayStoreKidsComplianceEnabled
property of your adjustConfig
instance to true
to enable compliance.
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 |
---|---|---|---|
adjustConfig.DataResidencyEU | 'eu.adjust.com' | true | true |
adjustConfig.DataResidencyTR | 'tr.adjust.com' | true | true |
adjustConfig.DataResidencyUS | 'us.adjust.com' | true | true |
adjustConfig.UrlStrategyChina | 'adjust.world' , 'adjust.com' | true | false |
adjustConfig.UrlStrategyCn | 'adjust.cn' , 'adjust.com' | true | false |
adjustConfig.UrlStrategyCnOnly | 'adjust.cn' | true | false |
adjustConfig.UrlStrategyIndia | 'adjust.net.in' , 'adjust.com' | true | false |
Examples
Record ad revenue
In SDK v4, you can record ad revenue by calling the trackAdRevenue
method, passing source
and payload
as arguments.
With an updated method in the SDK v4, you can create a new AdjustAdRevenue
object with the source
and record ad revenue by passing this object to the trackAdRevenueNew
method.
In SDK v5, you need to create a new AdjustAdRevenue
object with the source
and record ad revenue by passing this object to the trackAdRevenue
method.
Send ad revenue from a specific source
In SDK v4, ad revenue sources are defined as constants in the adjustConfig
class. In SDK v5, ad revenue sources need to be passed as a string.
v4 | v5 |
---|---|
adjustConfig.AdRevenueAppLovinMAX | 'applovin_max_sdk' |
adjustConfig.AdRevenueSourceAdMob | 'admob_sdk' |
adjustConfig.AdRevenueSourceIronSource | 'ironsource_sdk' |
adjustConfig.AdRevenueSourceAdMost | 'admost_sdk' |
adjustConfig.AdRevenueSourceUnity | 'unity_sdk' |
adjustConfig.AdRevenueSourceHeliumChartboost | 'helium_chartboost_sdk' |
adjustConfig.AdRevenueSourceADX | 'adx_sdk' |
adjustConfig.AdRevenueSourcePublisher | 'publisher_sdk' |
adjustConfig.AdRevenueSourceTradplus | 'tradplus_sdk' |
adjustConfig.AdRevenueSourceTopOn | 'topon_sdk' |
adjustConfig.AdRevenueSourceMopub | 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 set the isSkanAttributionEnabled
property on your adjustConfig
instance to false
to disable SKAdNetwork communication.
Listen for conversion value updates
In SDK v4, you can use the skad4conversionValueUpdatedCallback
property on your adjustConfig
to listen for conversion value updates. Before SKAN4, you could use the conversionValueUpdatedCallback
property.
In SDK v5, you need to assig a callback function to the skanUpdatedCallback
property 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
(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 Adjust.requestTrackingAuthorizationWithCompletionHandler
method.
This has been renamed to Adjust.requestAppTrackingAuthorization
in SDK v5 for clarity.
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 assigning a user string agent to theuserAgent
property on your adjustConfig
instance.
This setting has been removed in SDK v5.
Set whether a device is known
In SDK v4, you can set the isDeviceKnown
property on your adjustConfig
instance 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 setting the delayStart
property on your adjustConfig
instance a delay. You can set up this delay for up to 10 seconds.
This setting has been removed in SDK v5 including the Adjust.checkForNewAttStatus
method. Calling this method would make SDK stop the delay and continue with its work.
Final Android attribution
In SDK v4, you can set the finalAndroidAttributionEnabled
property on your adjustConfig
instance to true
to deliver final Android attribution.
This setting has been removed in SDK v5 since now only the final attribution will be delivered through the attribution callback on the Android platform.
AdjustEvent changes
In SDK v4, you can send a receipt
to the adjustEvent.receipt
property on your adjustEvent
for subscriptions and purchases.
This class property has been removed in SDK v5 since it’s no longer needed for purchase verification.
Disable third party sharing globally
In SDK v4, you can call the Adjust.disableThirdPartySharing
method to globally disable sharing information with third parties globally.
This feature has been removed from SDK v5. In SDK v5, use the Adjust.trackThirdPartySharing
method to enable or disable third party sharing.
Set an App Secret
SDK v4 supports setting an App Secret by calling the setAppSecret
method on your AdjustConfig
instance to sign the SDK traffic with.
This setting has been removed in SDK v5.