操作前须知
在更新到 SDK v5 之前,您需要进行以下操作:
安装 SDK
要开始使用 SDK v5,您需要将其添加为项目的依赖。为此请进行下列操作:
-
请移除
build.gradle
文件中所有较旧版本的 SDK。 -
将以下依赖添加至您的
build.gradle
文件:build.gradle dependencies {implementation 'com.adjust.sdk:adjust-android:5.0.0'implementation 'com.android.installreferrer:installreferrer:2.2'// Add the following if you are using the Adjust SDK inside web views on your appimplementation 'com.adjust.sdk:adjust-android-webbridge:5.0.0'}
更新初始化方法
在 SDK v4 中,初始化方法为Adjust.onCreate(AdjustConfig)
。在 SDK v5 中,该方法已变为Adjust.initSdk(AdjustConfig)
。
const adjustConfig = new AdjustConfig(this, appToken, environment);
Adjust.onCreate(adjustConfig); // v4Adjust.initSdk(adjustConfig); // v5
变更 API
SDK v5 中的以下 API 发生了变更。
禁用或启用 SDK
在 SDK v4 中,您可以通过调用带boolean
值的Adjust.setEnabled()
来启用和禁用 SDK。
- 调用
Adjust.setEnabled(false)
来禁用 SDK。 - 调用
Adjust.setEnabled(true)
来启用 SDK。
Adjust.setEnabled(false); // disable SDKAdjust.setEnabled(true); // enable SDK
在 SDK v5 中,为清晰起见,此功能被分成单独的命令。
- 调用
Adjust.disable()
来禁用 SDK。 - 调用
Adjust.enable()
来启用 SDK。
Adjust.disable(); // disable SDKAdjust.enable(); // enable SDK
离线模式
在 SDK v4 中,您可以通过调用带有boolean
值的Adjust.setOfflineMode()
来启用或禁用 SDK 中的离线模式。
Adjust.setOfflineMode(false); // put SDK in offline modeAdjust.setOfflineMode(true); // put SDK back in online mode
在 SDK v5 中,为清晰起见,此功能被分成单独的命令。
- 调用
Adjust.switchToOfflineMode()
将 SDK 设为离线模式。 - 调用
Adjust.switchBackToOnlineMode()
将 SDK 重新设为在线模式。
Adjust.switchToOfflineMode(); // put SDK in offline modeAdjust.switchBackToOnlineMode(); // put SDK back in online mode
预装记录
在 SDK v4 中,对于预安装应用,您可以使用 Adjust SDK,通过使用布尔参数调用AdjustConfig
实例的setPreinstallTrackingEnabled
方法向 Adjust 发送安装数据。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setPreinstallTrackingEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enabledPreinstallTracking
。这种新方法不带参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enablePreinstallTracking();
在归因中启用成本数据
在 SDK v4 中,您可以使用布尔参数调用AdjustConfig
实例的setNeedsCost
方法,使用 SDK 在用户归因数据中发送成本数据。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setNeedsCost(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enableCostDataInAttribution
。这种新方法不带参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enableCostDataInAttribution();
在后台发送信息
在 SDK v4 中,您可以使用 SDK,通过布尔参数调用AdjustConfig
实例的setSendInBackground
方法,在应用于后台运行时向 Adjust 发送信息。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setSendInBackground(true);
在 SDK v5 中,该方法已重命名为enableSendingInBackground
。这种新方法不带参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enableSendingInBackground();
只读取设备 ID 一次
在 SDK v4 中,您可以通过使用布尔值调用AdjustConfig
实例的setReadDeviceInfoOnceEnabled
方法,将 SDK 配置为在初始化时只读取设备 ID 一次。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setReadDeviceInfoOnceEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enableDeviceIdsReadingOnce
。这种新方法不带参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enableDeviceIdsReadingOnce();
会话回传参数
在SDK v5 中,会话回传参数已重命名为统一回传参数。
Adjust.addSessionCallbackParameter("foo", "bar");Adjust.removeSessionCallbackParameter("foo");Adjust.resetSessionCallbackParameters();
Adjust.addGlobalCallbackParameter("foo", "bar");Adjust.removeGlobalCallbackParameter("foo");Adjust.removeGlobalCallbackParameters();
会话合作伙伴参数
在 SDK v5 中,会话合作伙伴参数已重命名为统一合作伙伴参数。
Adjust.addSessionPartnerParameter("foo", "bar");Adjust.removeSessionPartnerParameter("foo");Adjust.resetSessionPartnerParameters();
Adjust.addGlobalPartnerParameter("foo", "bar");Adjust.removeGlobalPartnerParameter("foo");Adjust.removeGlobalPartnerParameters();
事件去重
在 SDK v4 中,事件去重与事件order ID
同时进行且唯一 ID 的数量上限为 10 个。
const event = new AdjustEvent("event_token");event.setOrderId("deduplication_id");Adjust.trackEvent(event);
在 SDK v5 中,该功能与order ID
分离。事件去重添加了名为deduplicationId
的新 ID 字段。用户可以自定义deduplicationId
的数量限制,添加到用于识别重复事件的列表中。默认情况下,上限为 10 。
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setEventDeduplicationIdsMaxSize(20); // if not set, then 10Adjust.initSdk(adjustConfig);
const event = new AdjustEvent("event_token");event.setDeduplicationId("deduplication_id");Adjust.trackEvent(event);
COPPA 合规
在 SDK v4 中,您可以通过布尔参数在 config 对象上调用setCoppaCompliantEnabled
方法来设置COPPA 合规性。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setCoppaCompliantEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enableCoppaCompliance
。该新方法不接受任何参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enableCoppaCompliance();
Play Store 儿童应用
在 SDK v4 中,您可以通过布尔参数在 config 对象上调用setPlayStoreKidsAppEnabled
方法将应用标记为Play 商店儿童应用。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setPlayStoreKidsAppEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enablePlayStoreKidsCompliance
。该新方法不接受任何参数。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.enablePlayStoreKidsCompliance();
设置数据驻留和 URL 策略
在 SDK v4 中,URL 策略和数据驻留域名在AdjustConfig
类中被定义为常量。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(AdjustConfig.DataResidencyEU);
在 SDK v5 中,您需要将选定的一个或多个域名以数组的形式发送。您还可以进行下列设置:
useSubdomains
(boolean
):来源是否为子域名作为前缀。isDataResidency
(boolean
):域名是否用于数据驻留。
const adjustConfig = new AdjustConfig(this, appToken, environment);const domains = ["domain1", "domain2"];const useSubdomains = true;const isDataResidency = false;adjustConfig.setUrlStrategy(domains, useSubdomains, isDataResidency);
请查看下方表格,了解如何在 SDK v5 中配置 URL 策略。
v4 | v5 - 主要和后备域名 | v5 - 使用子域名 | v5 - 数据驻留 |
---|---|---|---|
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 |
示例
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["adjust.net.in", "adjust.com"], true, false);
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["adjust.world", "adjust.com"], true, false);
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["adjust.cn"], true, false);
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["eu.adjust.com"], true, true);
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["tr.adjust.com"], true, true);
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUrlStrategy(["us.adjust.com"], true, true);
全局禁用第三方分享
在 SDK v4 中,您可以调用Adjust.disableThirdPartySharing()
方法来全面禁用第三方信息分享。
Adjust.disableThirdPartySharing();
SDK v5 中已删除该功能。在 SDK v5 中,使用Adjust.trackThirdPartySharing()
方法来启用或禁用第三方共享。
const adjustThirdPartySharing = new AdjustThirdPartySharing(true);Adjust.trackThirdPartySharing(adjustThirdPartySharing);
设备 ID getter
在 SDK v4 中,所有设备 ID getter 方法都会同步运行。在 SDK v5 中,这些方法已改为异步运行。
Adjust.getAdid(function (adid) { alert("Ad Id:\n" + adid);});
Adjust.getAttribution(function (attribution) { alert( "Tracker token = " + attribution.trackerToken + "\n" + "Tracker name = " + attribution.trackerName + "\n" + "Network = " + attribution.network + "\n" + "Campaign = " + attribution.campaign + "\n" + "Adgroup = " + attribution.adgroup + "\n" + "Creative = " + attribution.creative + "\n" + "Click label = " + attribution.clickLabel, );});
Adjust.getSdkVersion(function (sdkVersion) { alert("SDK version:\n" + sdkVersion);});
Adjust.isEnabled(function (isEnabled) { alert("Is SDK enabled? " + isEnabled);});
移除 API
SDK v5 中移除了下列 API。
事件缓冲
SDK v4 支持事件缓冲。该功能可将请求事件、广告收入、推送标签 (Push token) 和其他信息存储在本地缓冲区中以便在之后发送。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setEventBufferingEnabled(true);
SDK v5 中已删除该设置。
自定义用户代理字符串
SDK v4 支持使用用户代理字符串调用AdjustConfig
实例的setUserAgent
方法来设置自定义用户代理。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setUserAgent("user_agent_value");
SDK v5 中已删除该设置。
设置设备是否已知
在 SDK v4 中,您可以调用AdjustConfig
实例的setDeviceKnown
方法,手动告知 SDK 设备是否为已知设备。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setDeviceKnown(true);
SDK v5 中已删除该设置。
延迟 SDK 启动
SDK v4 支持通过在AdjustConfig
实例上调用setDelayStart
方法来延迟 SDK 启动,最多延迟 120 秒 。如果应用在延迟结束前就绪,则可以通过调用Adjust.sendFirstPackages
立即发送信息。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setDelayStart(delay);
Adjust.sendFirstPackages();
在 SDK v5 中这两种方法都已被移除。
通过深度链接进行再归因
在 SDK v4 中,您可以在 Web bridge 中通过调用Adjust.appWillOpenUrl()
方法向 Adjust 发送深度链接 URL。
Adjust.appWillOpenUrl(data, getApplicationContext());
该方法在 SDK v5 中已被移除。
发送特定来源的广告收入
在SDK v4 中,您可以发送来源和负载至 Adjust.trackAdRevenue()
方法来发送特定来源的广告收入。
Adjust.trackAdRevenue(source, payload);
该方法在 SDK v5 中已被移除。
设置应用密钥
SDK v4 支持通过调用AdjustConfig
实例的setAppSecret
方法来设置应用密钥,以此对 SDK 流量进行签名。
const adjustConfig = new AdjustConfig(this, appToken, environment);adjustConfig.setAppSecret(secretId, info1, info2, info3, info4);
SDK v5 中已删除该设置。