操作前须知
在更新到 SDK v5 之前,您需要进行以下操作:
- SDK v5 支持SDK 签名验证。如果您当前正在使用 SDK 签名库,则需要先将其卸载。
- 如果您的应用针对的是低于21的 API 版本,则需要先更新应用才能使用 SDK v5。
安装 SDK
要开始使用 SDK v5,您需要将其添加为项目的依赖。为此请进行下列操作:
-
请移除build.gradle
文件中所有较旧版本的 SDK。
-
将以下依赖添加至您的build.gradle
文件:
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 app
implementation 'com.adjust.sdk:adjust-android-webbridge:5.0.0'
更新初始化方法
在 SDK v4 中,初始化方法为Adjust.onCreate(AdjustConfig)
。在 SDK v5 中,该方法已变为Adjust.initSdk(AdjustConfig)
。
Adjust.onCreate(adjustConfig) // v4
Adjust.initSdk(adjustConfig) // v5
Adjust.onCreate(adjustConfig); // v4
Adjust.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(
object : OnGooglePlayInstallReferrerReadListener {
override fun onInstallReferrerRead(referrerDetails: GooglePlayInstallReferrerDetails) {}
override fun onFailure(message: String) {}
AdjustHuaweiReferrer.getHuaweiAdsInstallReferrer(
object : OnHuaweiInstallReferrerReadListener() {
fun onInstallReferrerDetailsRead(referrerDetails: HuaweiInstallReferrerDetails?) {}
fun onFail(message: String?) {}
AdjustHuaweiReferrer.getHuaweiAppGalleryInstallReferrer(
object : OnHuaweiInstallReferrerReadListener() {
fun onInstallReferrerDetailsRead(referrerDetails: HuaweiInstallReferrerDetails?) {}
fun onFail(message: String?) {}
AdjustSamsungReferrer.getSamsungInstallReferrer(
object : OnSamsungInstallReferrerReadListener() {
fun onSamsungInstallReferrerRead(referrerDetails: SamsungInstallReferrerDetails?) {}
fun onFail(message: String?) {}
AdjustVivoReferrer.getVivoInstallReferrer(
object : OnVivoInstallReferrerReadListener() {
fun onVivoInstallReferrerRead(referrerDetails: VivoInstallReferrerDetails?) {}
fun onFail(message: String?) {}
AdjustXiaomiReferrer.getXiaomiInstallReferrer(
object : OnXiaomiInstallReferrerReadListener() {
fun onXiaomiInstallReferrerRead(referrerDetails: XiaomiInstallReferrerDetails?) {}
fun onFail(message: String?) {}
Adjust.getGooglePlayInstallReferrer(getApplicationContext(), new OnGooglePlayInstallReferrerReadListener() {
public void onInstallReferrerRead(GooglePlayInstallReferrerDetails referrerDetails) {
public void onFailure(String message) {
AdjustHuaweiReferrer.getHuaweiAdsInstallReferrer(getApplicationContext(), new OnHuaweiInstallReferrerReadListener() {
public void onInstallReferrerDetailsRead(HuaweiInstallReferrerDetails referrerDetails) {
public void onFail(String message) {
AdjustHuaweiReferrer.getHuaweiAppGalleryInstallReferrer(getApplicationContext(), new OnHuaweiInstallReferrerReadListener() {
public void onInstallReferrerDetailsRead(HuaweiInstallReferrerDetails referrerDetails) {
public void onFail(String message) {
AdjustSamsungReferrer.getSamsungInstallReferrer(getApplicationContext(), new OnSamsungInstallReferrerReadListener() {
public void onSamsungInstallReferrerRead(SamsungInstallReferrerDetails referrerDetails) {
public void onFail(String message) {
AdjustVivoReferrer.getVivoInstallReferrer(getApplicationContext(), new OnVivoInstallReferrerReadListener() {
public void onVivoInstallReferrerRead(VivoInstallReferrerDetails referrerDetails) {
public void onFail(String message) {
AdjustXiaomiReferrer.getXiaomiInstallReferrer(getApplicationContext(), new OnXiaomiInstallReferrerReadListener() {
public void onXiaomiInstallReferrerRead(XiaomiInstallReferrerDetails referrerDetails) {
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 SDK
Adjust.setEnabled(true) // enable SDK
Adjust.setEnabled(false); // disable SDK
Adjust.setEnabled(true); // enable SDK
在 SDK v5 中,为清晰起见,此功能被分成单独的命令。
- 调用
Adjust.disable()
来禁用 SDK。
- 调用
Adjust.enable()
来启用 SDK。
Adjust.disable() // disable SDK
Adjust.enable() // enable SDK
Adjust.disable(); // disable SDK
Adjust.enable(); // enable SDK
离线模式
在 SDK v4 中,您可以通过调用带有boolean
值的Adjust.setOfflineMode()
来启用或禁用 SDK 中的离线模式。
Adjust.setOfflineMode(false) // put SDK in offline mode
Adjust.setOfflineMode(true) // put SDK back in online mode
Adjust.setOfflineMode(false); // put SDK in offline mode
Adjust.setOfflineMode(true); // put SDK back in online mode
在 SDK v5 中,为清晰起见,此功能被分成单独的命令。
- 调用
Adjust.switchToOfflineMode()
将 SDK 设为离线模式。
- 调用
Adjust.switchBackToOnlineMode()
将 SDK 重新设为在线模式。
Adjust.switchToOfflineMode() // put SDK in offline mode
Adjust.switchBackToOnlineMode() // put SDK back in online mode
Adjust.switchToOfflineMode(); // put SDK in offline mode
Adjust.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")
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 10
Adjust.initSdk(adjustConfig)
val event = AdjustEvent("event_token")
event.setDeduplicationId("deduplication_id")
AdjustConfig adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setEventDeduplicationIdsMaxSize(20); // if not set, then 10
Adjust.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) //v4
Adjust.processDeeplink(adjustDeepLink, applicationContext) //v5
Adjust.appWillOpenUrl(url, getApplicationContext()); //v4
Adjust.processDeeplink(adjustDeepLink, getApplicationContext()); //v5
延迟深度链接回传
在 SDK v4 中,您可以调用setOnDeeplinkResponseListener
方法处理延迟深度链接回传。
adjustConfig.setOnDeeplinkResponseListener { deeplink ->
Log.d("example", "Deferred deep link callback called!")
adjustConfig.setOnDeeplinkResponseListener(new OnDeeplinkResponseListener() {
public boolean launchReceivedDeeplink(Uri deeplink) {
Log.d("example", "Deferred deep link callback called!");
在 SDK v5 中,为清晰起见,该方法已被重命名为setOnDeferredDeeplinkResponseListener
。所有参数都是相同的。
adjustConfig.setOnDeferredDeeplinkResponseListener {uri ->
Log.d("example", "Deferred deep link callback called!")
adjustConfig.setOnDeferredDeeplinkResponseListener(new OnDeferredDeeplinkResponseListener() {
public boolean launchReceivedDeeplink(Uri deeplink) {
Log.d("example", "Deferred deep link callback called!");
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) // v4
val adjustAdRevenue = AdjustAdRevenue("applovin_max_sdk") // v5
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AD_REVENUE_APPLOVIN_MAX); // v4
AdjustAdRevenue 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.com
val useSubdomains = true // or false
val isDataResidency = false // or true for data residency
adjustConfig.setUrlStrategy(domains, useSubdomains, isDataResidency)
List<string> domains = Arrays.asList("domain"); // eg. eu.adjust.com
boolean useSubdomains = true; // or false
boolean isDataResidency = false; // or true for data residency
adjustConfig.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.getAttribution {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 ->
Adjust.isEnabled(applicationContext) { isEnabled ->
Adjust.getGoogleAdId(this, new OnGoogleAdIdReadListener() {
public void onGoogleAdIdRead(String googleAdId) {}
Adjust.getAdid(new OnAdidReadListener() {
public void onAdidRead(String adid) {
Adjust.getAttribution(new OnAttributionReadListener() {
public void onAttributionRead(AdjustAttribution attribution) {
AdjustOaid.getOaid(getApplicationContext(), new OnOaidReadListener() {
public void onOaidRead(String oaid) {
public void onFail(String message) {
Adjust.getAmazonAdId(getApplicationContext(), new OnAmazonAdIdReadListener() {
public void onAmazonAdIdRead(String amazonAdId) {
Adjust.getSdkVersion(new OnSdkVersionReadListener() {
public void onSdkVersionRead(String sdkVersion) {
Adjust.isEnabled(getApplicationContext(), new OnIsEnabledListener() {
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
文件:
implementation 'com.adjust.sdk:adjust-android-huawei-referrer:5.0.0'
Meta Install Referrer 插件
SDK v5 支持 Meta Install Referrer 插件,以记录Meta Install Referrer信息。要阅读此信息:
-
将以下依赖添加至您的 build.gradle
文件:
implementation 'com.adjust.sdk:adjust-android-meta-referrer:5.0.0'
-
在应用控制面板中找到您的 Meta app ID。更多信息,请参考 Meta 的应用控制面板文档。
-
将应用 ID 作为 String
参数传递至 AdjustConfig.setFbAppId
方法。
val config = AdjustConfig(this, appToken, environment)
config.setFbAppId(<fb_app_id_string>)
AdjustConfig config = new AdjustConfig(this, appToken, environment);
config.setFbAppId(<fb_app_id_string>);
移除插件
SDK v5 中移除了下列插件:
- Criteo
- Trademob
- Sociomantic