操作前须知
在更新到 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)
。
Adjust.onCreate(adjustConfig) // v4Adjust.initSdk(adjustConfig) // v5
Adjust.onCreate(adjustConfig); // v4Adjust.initSdk(adjustConfig); // v5
配置 SDK 签名库
SDK v5 包含SDK 签名库。您可以按照签名库集成指南中的测试步骤对此进行测试。
签名保护功能默认处于禁用状态。要启用该功能,您需要:
- 执行签名验证。
- 在测试前提供应用的 SHA-1 指纹。
安装 v5 SDK 后,您需要更新现有的 Adjust 代码以使用新的 API。
新 API
SDK v5 中添加了下列 API。
Install Referrer getter
SDK v5 包含用于调取 Install Referrer 信息的新 getter 方法。
Adjust.getGooglePlayInstallReferrer( applicationContext, object : OnGooglePlayInstallReferrerReadListener { override fun onInstallReferrerRead(referrerDetails: GooglePlayInstallReferrerDetails) {} override fun onFailure(message: String) {} })
AdjustHuaweiReferrer.getHuaweiAdsInstallReferrer( applicationContext, object : OnHuaweiInstallReferrerReadListener() { fun onInstallReferrerDetailsRead(referrerDetails: HuaweiInstallReferrerDetails?) {} fun onFail(message: String?) {} })
AdjustHuaweiReferrer.getHuaweiAppGalleryInstallReferrer( applicationContext, object : OnHuaweiInstallReferrerReadListener() { fun onInstallReferrerDetailsRead(referrerDetails: HuaweiInstallReferrerDetails?) {} fun onFail(message: String?) {} })
AdjustSamsungReferrer.getSamsungInstallReferrer( applicationContext, object : OnSamsungInstallReferrerReadListener() { fun onSamsungInstallReferrerRead(referrerDetails: SamsungInstallReferrerDetails?) {} fun onFail(message: String?) {} })
AdjustVivoReferrer.getVivoInstallReferrer( applicationContext, object : OnVivoInstallReferrerReadListener() { fun onVivoInstallReferrerRead(referrerDetails: VivoInstallReferrerDetails?) {} fun onFail(message: String?) {} })
AdjustXiaomiReferrer.getXiaomiInstallReferrer( applicationContext, object : OnXiaomiInstallReferrerReadListener() { fun onXiaomiInstallReferrerRead(referrerDetails: XiaomiInstallReferrerDetails?) {} fun onFail(message: String?) {} })
Adjust.getGooglePlayInstallReferrer(getApplicationContext(), new OnGooglePlayInstallReferrerReadListener() { @Override public void onInstallReferrerRead(GooglePlayInstallReferrerDetails referrerDetails) { }
@Override public void onFailure(String message) { }});
AdjustHuaweiReferrer.getHuaweiAdsInstallReferrer(getApplicationContext(), new OnHuaweiInstallReferrerReadListener() { @Override public void onInstallReferrerDetailsRead(HuaweiInstallReferrerDetails referrerDetails) { }
@Override public void onFail(String message) { }});
AdjustHuaweiReferrer.getHuaweiAppGalleryInstallReferrer(getApplicationContext(), new OnHuaweiInstallReferrerReadListener() { @Override public void onInstallReferrerDetailsRead(HuaweiInstallReferrerDetails referrerDetails) { }
@Override public void onFail(String message) { }});
AdjustSamsungReferrer.getSamsungInstallReferrer(getApplicationContext(), new OnSamsungInstallReferrerReadListener() { @Override public void onSamsungInstallReferrerRead(SamsungInstallReferrerDetails referrerDetails) { }
@Override public void onFail(String message) { }});
AdjustVivoReferrer.getVivoInstallReferrer(getApplicationContext(), new OnVivoInstallReferrerReadListener() { @Override public void onVivoInstallReferrerRead(VivoInstallReferrerDetails referrerDetails) { }
@Override public void onFail(String message) { }});
AdjustXiaomiReferrer.getXiaomiInstallReferrer(getApplicationContext(), new OnXiaomiInstallReferrerReadListener() { @Override public void onXiaomiInstallReferrerRead(XiaomiInstallReferrerDetails referrerDetails) { }
@Override public void onFail(String message) { }});
变更 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
Adjust.setEnabled(false); // disable SDKAdjust.setEnabled(true); // enable SDK
在 SDK v5 中,为清晰起见,此功能被分成单独的命令。
- 调用
Adjust.disable()
来禁用 SDK。 - 调用
Adjust.enable()
来启用 SDK。
Adjust.disable() // disable SDKAdjust.enable() // 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
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
Adjust.switchToOfflineMode(); // put SDK in offline modeAdjust.switchBackToOnlineMode(); // put SDK back in online mode
预装记录
在 SDK v4 中,您可以使用一个布尔参数调用AdjustConfig
实例中的setPreinstallTrackingEnabled
方法,使用 SDK 记录来自用户设备上预安装应用中的活动。
adjustConfig.setPreinstallTrackingEnabled(true)
adjustConfig.setPreinstallTrackingEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enablePreinstallTracking
。该方法不带参数。
adjustConfig.enablePreinstallTracking()
adjustConfig.enablePreinstallTracking();
发送会话信息
在 SDK v4 中,您需要实现ActivityLifecycleCallbacks
并在 Activity 恢复和暂停时分别调用Adjust.onResume()
和Adjust.onPause()
来注册 Activity 生命周期回传。
在 SDK v5 中,ActivityLifecycleCallbacks
功能由 SDK 处理。请从代码中移除所有自定义活动生命周期回传。
会话回传参数
在SDK v5 中,会话回传参数已重命名为统一回传参数。
Adjust.addSessionCallbackParameter("foo", "bar")Adjust.removeSessionCallbackParameter("foo")Adjust.resetSessionCallbackParameters()
Adjust.addGlobalCallbackParameter("foo", "bar")Adjust.removeGlobalCallbackParameter("foo")Adjust.removeGlobalCallbackParameters()
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()
Adjust.addSessionPartnerParameter("foo", "bar");Adjust.removeSessionPartnerParameter("foo");Adjust.resetSessionPartnerParameters();
Adjust.addGlobalPartnerParameter("foo", "bar");Adjust.removeGlobalPartnerParameter("foo");Adjust.removeGlobalPartnerParameters();
事件去重
在 SDK v4 中,事件去重与事件order ID
同时进行且唯一 ID 的数量上限为 10 个。
val event = AdjustEvent("event_token")event.setOrderId("deduplication_id")Adjust.trackEvent(event)
AdjustEvent event = new AdjustEvent("event_token");event.setOrderId("deduplication_id");Adjust.trackEvent(event);
在 SDK v5 中,该功能与order ID
分离。事件去重添加了名为deduplicationId
的新 ID 字段。用户可以自定义deduplicationId
的数量限制,添加到用于识别重复事件的列表中。默认情况下,上限为 10 。
val adjustConfig = AdjustConfig(this, appToken, environment)
adjustConfig.setEventDeduplicationIdsMaxSize(20) // if not set, then 10Adjust.initSdk(adjustConfig)
val event = AdjustEvent("event_token")event.setDeduplicationId("deduplication_id")Adjust.trackEvent(event)
AdjustConfig adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setEventDeduplicationIdsMaxSize(20); // if not set, then 10Adjust.initSdk(adjustConfig);
AdjustEvent event = new AdjustEvent("event_token");event.setDeduplicationId("deduplication_id");Adjust.trackEvent(event);
AdjustAttribution 类
在 SDK v4 中,AdjustAttribution
调用包含一个名为adid
的属性。在 SDK v5 中,adid
属性已从AdjustAttribution
类中移除。您可以使用getAdid()
getter 方法获取设备的 ADID。
通过深度链接进行再归因
向 Adjust SDK 传输深度链接数据的方法已被重命名。
- v4:
Adjust.appWillOpenUrl()
。 - v5:
Adjust.processDeeplink()
。
Adjust.appWillOpenUrl(url, applicationContext) //v4Adjust.processDeeplink(adjustDeepLink, applicationContext) //v5
Adjust.appWillOpenUrl(url, getApplicationContext()); //v4Adjust.processDeeplink(adjustDeepLink, getApplicationContext()); //v5
延迟深度链接回传
在 SDK v4 中,您可以调用setOnDeeplinkResponseListener
方法处理延迟深度链接回传。
adjustConfig.setOnDeeplinkResponseListener { deeplink -> Log.d("example", "Deferred deep link callback called!") true}
adjustConfig.setOnDeeplinkResponseListener(new OnDeeplinkResponseListener() { @Override public boolean launchReceivedDeeplink(Uri deeplink) { Log.d("example", "Deferred deep link callback called!"); return true; } });
在 SDK v5 中,为清晰起见,该方法已被重命名为setOnDeferredDeeplinkResponseListener
。所有参数都是相同的。
adjustConfig.setOnDeferredDeeplinkResponseListener {uri -> Log.d("example", "Deferred deep link callback called!") true }
adjustConfig.setOnDeferredDeeplinkResponseListener(new OnDeferredDeeplinkResponseListener() { @Override public boolean launchReceivedDeeplink(Uri deeplink) { Log.d("example", "Deferred deep link callback called!"); return true; } });
COPPA 合规
在 SDK v4 中,您可以使用布尔值在AdjustConfig
实例上调用setCoppaCompliantEnabled
方法,将应用标记为 COPPA 合规。
adjustConfig.setCoppaCompliantEnabled(true)
adjustConfig.setCoppaCompliantEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enableCoppaCompliance
。该方法不带参数。
adjustConfig.enableCoppaCompliance()
adjustConfig.enableCoppaCompliance();
Play Store 儿童应用
在 SDK v4 中,您可以通过布尔参数在AdjustConfig
实例上调用setPlayStoreKidsAppEnabled
方法将应用标记为Play 商店儿童应用。
adjustConfig.setPlayStoreKidsAppEnabled(true)
adjustConfig.setPlayStoreKidsAppEnabled(true);
在 SDK v5 中,为清晰起见,该方法已被重命名为enablePlayStoreKidsCompliance
。该方法不带参数。
adjustConfig.enablePlayStoreKidsCompliance()
adjustConfig.enablePlayStoreKidsCompliance();
发送特定来源的广告收入
在 SDK v4 中,广告收入来源被定义为AdjustConfig
类中的常量。在 SDK v5 中,广告收入来源需要以字符串形式传递。
val adjustAdRevenue = AdjustAdRevenue(AdjustConfig.AD_REVENUE_APPLOVIN_MAX) // v4val adjustAdRevenue = AdjustAdRevenue("applovin_max_sdk") // v5
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AD_REVENUE_APPLOVIN_MAX); // v4AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue("applovin_max_sdk"); // v5
v4 | v5 |
---|---|
AdjustConfig.AD_REVENUE_APPLOVIN_MAX | "applovin_max_sdk" |
AdjustConfig.AD_REVENUE_ADMOB | "admob_sdk" |
AdjustConfig.AD_REVENUE_IRONSOURCE | "ironsource_sdk" |
AdjustConfig.AD_REVENUE_ADMOST | "admost_sdk" |
AdjustConfig.AD_REVENUE_UNITY | "unity_sdk" |
AdjustConfig.AD_REVENUE_HELIUM_CHARTBOOST | "helium_chartboost_sdk" |
AdjustConfig.AD_REVENUE_ADX | "adx_sdk" |
AdjustConfig.AD_REVENUE_SOURCE_PUBLISHER | "publisher_sdk" |
AdjustConfig.AD_REVENUE_TRADPLUS | "tradplus_sdk" |
AdjustConfig.AD_REVENUE_TOPON | "topon_sdk" |
AdjustConfig.AD_REVENUE_MOPUB | "mopub" |
设置数据驻留和 URL 策略
在 SDK v4 中,URL 策略和数据驻留域名在AdjustConfig
类中被定义为常量。
adjustConfig.setUrlStrategy(AdjustConfig.DATA_RESIDENCY_EU)
adjustConfig.setUrlStrategy(AdjustConfig.DATA_RESIDENCY_EU);
在 SDK v5 中,您需要将选定的一个或多个域名以数组的形式发送。您还可以进行下列设置:
useSubdomains
(boolean
):来源是否为子域名作为前缀。isDataResidency
(boolean
):域名是否用于数据驻留。
val domains: List<string> = mutableListOf("domain") // eg. eu.adjust.comval useSubdomains = true // or falseval isDataResidency = false // or true for data residencyadjustConfig.setUrlStrategy(domains, useSubdomains, isDataResidency)
List<string> domains = Arrays.asList("domain"); // eg. eu.adjust.comboolean useSubdomains = true; // or falseboolean isDataResidency = false; // or true for data residencyadjustConfig.setUrlStrategy(domains, useSubdomains, isDataResidency);
请查看下方表格,了解如何在 SDK v5 中配置 URL 策略。
v4 | v5 - 主要和后备域名 | v5 - 使用子域名 | v5 - 数据驻留 |
---|---|---|---|
AdjustConfig.DATA_RESIDENCY_EU | "eu.adjust.com" | true | true |
AdjustConfig.DATA_RESIDENCY_TR | "tr.adjust.com" | true | true |
AdjustConfig.DATA_RESIDENCY_US | "us.adjust.com" | true | true |
AdjustConfig.URL_STRATEGY_CHINA | "adjust.world" : "adjust.com" | true | false |
AdjustConfig.URL_STRATEGY_CN | "adjust.cn" : "adjust.com" | true | false |
AdjustConfig.URL_STRATEGY_CN_ONLY | "adjust.cn" | true | false |
AdjustConfig.URL_STRATEGY_INDIA | "adjust.net.in" : "adjust.com" | true | false |
示例
adjustConfig.setUrlStrategy(listOf("adjust.net.in", "adjust.com"), true, false)
adjustConfig.setUrlStrategy(listOf("adjust.world", "adjust.com"), true, false)
adjustConfig.setUrlStrategy(listOf("adjust.cn"), true, false)
adjustConfig.setUrlStrategy(listOf("eu.adjust.com"), true, true)
adjustConfig.setUrlStrategy(listOf("tr.adjust.com"), true, true)
adjustConfig.setUrlStrategy(listOf("us.adjust.com"), true, true)
config.setUrlStrategy(Arrays.asList("adjust.net.in", "adjust.com"), true, false);
adjustConfig.setUrlStrategy(Arrays.asList("adjust.world", "adjust.com"), true, false);
adjustConfig.setUrlStrategy(Arrays.asList("adjust.cn"), true, false);
adjustConfig.setUrlStrategy(Arrays.asList("eu.adjust.com"), true, true);
adjustConfig.setUrlStrategy(Arrays.asList("tr.adjust.com"), true, true);
adjustConfig.setUrlStrategy(Arrays.asList("us.adjust.com"), true, true);
设备 ID getter
在 SDK v4 中,所有设备 ID getter 方法都会同步运行。在 SDK v5 中,这些方法已改为异步运行。
Adjust.getGoogleAdId(this, object : OnGoogleAdIdReadListener { override fun onGoogleAdIdRead(googleAdId: String) {}})
Adjust.getAdid { adid -> // read adid}
Adjust.getAttribution {attribution -> // read attribution}
AdjustOaid.getOaid(applicationContext, object : OnOaidReadListener() { fun onOaidRead(oaid: String?) {} fun onFail(message: String?) {} })
Adjust.getAmazonAdId(applicationContext, object : OnAmazonAdIdReadListener { override fun onAmazonAdIdRead(amazonAdId: String) {} })
Adjust.getSdkVersion {sdkVersion -> // read sdk version}
Adjust.isEnabled(applicationContext) { isEnabled -> // read isEnabled}
Adjust.getGoogleAdId(this, new OnGoogleAdIdReadListener() { @Override public void onGoogleAdIdRead(String googleAdId) {}});
Adjust.getAdid(new OnAdidReadListener() { @Override public void onAdidRead(String adid) { }});
Adjust.getAttribution(new OnAttributionReadListener() { @Override public void onAttributionRead(AdjustAttribution attribution) { }});
AdjustOaid.getOaid(getApplicationContext(), new OnOaidReadListener() { @Override public void onOaidRead(String oaid) { }
@Override public void onFail(String message) { }});
Adjust.getAmazonAdId(getApplicationContext(), new OnAmazonAdIdReadListener() { @Override public void onAmazonAdIdRead(String amazonAdId) { }});
Adjust.getSdkVersion(new OnSdkVersionReadListener() { @Override public void onSdkVersionRead(String sdkVersion) { }});
Adjust.isEnabled(getApplicationContext(), new OnIsEnabledListener() { @Override public void onIsEnabledRead(boolean isEnabled) {
}});
移除 API
SDK v5 中移除了下列 API。
事件缓冲
SDK v4 支持事件缓冲。该功能可将请求事件、广告收入、推送标签 (Push token) 和其他信息存储在本地缓冲区中以便在之后发送。
adjustConfig.setEventBufferingEnabled(true)
adjustConfig.setEventBufferingEnabled(true);
SDK v5 中已删除该设置。
自定义用户代理字符串
SDK v4 支持使用用户代理字符串调用 AdjustConfig.setUserAgent()
来设置自定义用户代理。
adjustConfig.setUserAgent("user_agent_value")
adjustConfig.setUserAgent("user_agent_value");
SDK v5 中已删除该设置。
设置设备是否已知
在 SDK v4 中,您可以调用AdjustConfig.setDeviceKnown()
方法,手动告知 SDK 设备是否为已知设备。
adjustConfig.setDeviceKnown(true)
adjustConfig.setDeviceKnown(true);
SDK v5 中已删除该设置。
延迟 SDK 启动
SDK v4 支持通过调用AdjustConfig.setDelayStart()
来延迟 SDK 的启动,最多延迟 120 秒 。
adjustConfig.setDelayStart(delay)
adjustConfig.setDelayStart(delay);
SDK v5 中已删除该设置。
全局禁用第三方分享
在 SDK v4 中,您可以调用Adjust.disableThirdPartySharing()
方法来全面禁用第三方信息分享。
Adjust.disableThirdPartySharing(applicationContext)
Adjust.disableThirdPartySharing(getApplicationContext());
SDK v5 中已删除该功能。在 SDK v5 中,使用Adjust.trackThirdPartySharing()
方法来启用或禁用第三方共享。
val adjustThirdPartySharing = AdjustThirdPartySharing(true)Adjust.trackThirdPartySharing(adjustThirdPartySharing)
AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);Adjust.trackThirdPartySharing(adjustThirdPartySharing);
设置应用密钥
SDK v4 支持通过在AdjustConfig
实例上调用setAppSecret
方法来设置应用密钥,对 SDK 流量进行签名。
adjustConfig.setAppSecret(secretId, info1, info2, info3, info4)
adjustConfig.setAppSecret(secretId, info1, info2, info3, info4);
SDK v5 中已删除该设置。
新插件
SDK v5 中添加了下列插件:
Huawei Install Referrer 插件
SDK v5 支持华为 Install Referrer 插件,以记录设备的华为 Install Referrer 信息。要添加插件,请将下列依赖添加至您的build.gradle
文件:
dependencies { implementation 'com.adjust.sdk:adjust-android-huawei-referrer:5.0.0'}
Meta Install Referrer 插件
SDK v5 支持 Meta Install Referrer 插件,以记录Meta Install Referrer信息。要阅读此信息:
-
将以下依赖添加至您的
build.gradle
文件:build.gradle dependencies {implementation 'com.adjust.sdk:adjust-android-meta-referrer:5.0.0'} -
将应用 ID 作为
String
参数传递至AdjustConfig.setFbAppId
方法。
val config = AdjustConfig(this, appToken, environment)config.setFbAppId(<fb_app_id_string>)Adjust.initSdk(config)
AdjustConfig config = new AdjustConfig(this, appToken, environment);config.setFbAppId(<fb_app_id_string>);Adjust.initSdk(config);
移除插件
SDK v5 中移除了下列插件:
- Criteo
- Trademob
- Sociomantic