adjust-icon

SDK v5 迁移指南

操作前须知

在更新到 SDK v5 之前,您需要进行以下操作:

  1. SDK v5 支持SDK 签名验证。如果您当前正在使用 SDK 签名库,则需要先将其卸载。
  2. SDK v5 支持的最低 API 版本已更新。如果您的应用目标版本较低,请先进行更新。
    • iOS: 12.0
    • 安卓: 21

安装 beta SDK

在安装 SDK v5 之前,请先从项目中移除所有 SDK v4 资源和代码。

如果您希望将变更附加至现有项目,请按照下列步骤操作,移除所有 Adjust SDK v4 资源:

  1. 删除Assets目录中现有的Adjust安装。

  2. 从 Xcode 项目中删除所有对Adjust的引用。

    • 删除项目 Libraries 部分下的Adjust目录。
    • 打开 General 选项卡,删除 Frameworks, Libraries, and Embedded Content 下的Adjust.a库。
    • 可选 : SDK v4 会在应用目标的 Other Linker Flags 设置下添加-ObjC标记。只有在 SDK 自动添加的情况下才能移除此标记。
  3. 请删除 Android Studio 项目中所有对Adjust的引用。

    • 在项目的libs目录中找到并删除adjust-android.jar库。

从项目中移除所有 SDK v4 资源后,请从GitHub 发布页面下载 Adjust unitypackage并将其导入您的项目中。

变更

安装 v5 SDK 后,您需要更新现有的 Adjust 代码以使用新的 API。

SDK 命名空间

SDK 命名空间已从com.adjust.sdk重命名为AdjustSdk

初始化方法

在 SDK v4 中,SDK 的初始化方法是配置AdjustConfig对象并将其传递至Adjust.start()方法。

AdjustConfig adjustConfig = new AdjustConfig("appToken", AdjustEnvironment.Sandbox);
Adjust.start(adjustConfig);

在 SDK v5 中,该方法已重命名为Adjust.InitSdk()

AdjustConfig adjustConfig = new AdjustConfig("appToken", AdjustEnvironment.Sandbox);
Adjust.InitSdk(adjustConfig);

配置

本节介绍 SDK 配置变更。

设置日志级别

在 SDK v4 中,您可以通过向AdjustConfig.setLogLevel()方法传递AdjustLogLevel常量来设置日志级别。

adjustConfig.setLogLevel(AdjustLogLevel.Verbose);

在 SDK v5 中,您需要为AdjustConfig实例的LogLevel属性指定一个AdjustLogLevel常量。

adjustConfig.LogLevel = AdjustLogLevel.Verbose;

禁用或启用 SDK

在 SDK v4 中,您可以通过调用带bool值的Adjust.setEnabled()来启用和禁用 SDK。

  • 调用Adjust.setEnabled(false)来禁用 SDK。
  • 调用Adjust.setEnabled(true)来启用 SDK。
Adjust.setEnabled(false); // Disable the SDK
Adjust.setEnabled(true); // Enable the SDK

在 SDK v5 中,为清晰起见,此功能被分成单独的命令。

  • 调用Adjust.Disable()来禁用 SDK。
  • 调用Adjust.Enable()来启用 SDK。
Adjust.Disable(); // Disable the SDK
Adjust.Enable(); // Enable the SDK

在后台发送信息

在 SDK v4 中,您可以使用true参数调用AdjustConfig.setSendInBackground()方法,让 SDK 在应用在后台运行时向 Adjust 发送信息。

adjustConfig.setSendInBackground(true);

在 SDK v5 中,您需要将AdjustConfig实例上的IsSendingInBackgroundEnabled属性设置为true,以此允许 SDK 在应用后台运行时向 Adjust 发送信息。

adjustConfig.IsSendingInBackgroundEnabled = true;

预安装应用监测

在 SDK v4 中,您可以使用AdjustConfig.setPreinstallTrackingEnabled方法启用对预安装应用的监测。

adjustConfig.setPreinstallTrackingEnabled(true);

在 SDK v5 中,您需要将AdjustConfig实例的IsPreinstallTrackingEnabled属性设置为true

adjustConfig.IsPreinstallTrackingEnabled = true;

在 SDK v4 中,您可以使用AdjustConfig.setPreinstallFilePath方法配置包含预安装应用信息的路径。

adjustConfig.setPreinstallFilePath("path");

在 SDK v5 中,您需要将AdjustConfig实例的PreinstallFilePath属性设置为包含预安装应用信息的文件路径。

adjustConfig.PreinstallFilePath = "path";

在 SDK v4 中,您可以使用AdjustConfig.setDefaultTracker()方法设置默认链接识别码来监测预安装应用的安装。

adjustConfig.setDefaultTracker("abc123");

在 SDK v5 中,您需要将链接直接指定给AdjustConfig实例的DefaultTracker属性。

adjustConfig.DefaultTracker = "abc123";

设置外部设备 ID

在 SDK v4 中,您可以通过向AdjustConfig.setExternalDeviceId()方法传递 ID 来设置外部设备 ID。

adjustConfig.setExternalDeviceId("unique-custom-device-id");

在 SDK v5 中,您需要直接将 ID 指定至AdjustConfig实例的ExternalDeviceID属性。

adjustConfig.ExternalDeviceId = "unique-custom-device-id";

设置 Meta App ID

在SDK v4 中,您可以使用 AdjustConfig.setFbAppId() 方法设置 Meta App ID。

adjustConfig.setFbAppId("fb-app-id");

在 SDK v5 中,您需要将 Meta App ID 指定至AdjustConfig实例的FbAppId属性。

adjustConfig.FbAppId = "fb-app-id";

禁用 AdServices 信息读取

在 SDK v4 中,您可以使用false参数调用AdjustConfig.setAllowAdServicesInfoReading()方法来阻止 Adjust SDK 读取 AdServices 信息。

adjustConfig.setAllowAdServicesInfoReading(false);

在 SDK v5 中,您需要将AdjustConfig实例的IsAdServicesEnabled属性设置为false,以防止 Adjust SDK 读取 AdServices 信息。

adjustConfig.IsAdServicesEnabled = false;

禁用 IDFA 读取

在 SDK v4 中,您可以使用false参数调用AdjustConfig.setAllowIdfaReading()方法来阻止 Adjust SDK 读取设备的 IDFA。

adjustConfig.setAllowIdfaReading(false);

在 SDK v5 中,您需要将AdjustConfig实例的IsIdfaReadingEnabled属性设置为false,以防止 Adjust SDK 读取设备的 IDFA。

adjustConfig.IsIdfaReadingEnabled = false;

在归因中启用成本数据

在 SDK v4 中,您可以通过调用带true参数的Adjust.setNeedsCost()方法在设备归因信息中启用成本数据。

adjustConfig.setNeedsCost(true);

在 SDK v5 中,您需要将AdjustConfig实例的IsCostDataInAttributionEnabled属性设置为true,才能在设备的归因信息中包含成本数据。

adjustConfig.IsCostDataInAttributionEnabled = true;

启用 LinkMe

在 SDK v4 中,您可以通过调用带有true参数的AdjustConfig.setLinkMeEnabled()方法来启用Adjust LinkMe

adjustConfig.setLinkMeEnabled(true);

在 SDK v5 中,您需要将AdjustConfig实例的IsLinkMeEnabled属性设置为true,才能启用 LinkMe。

adjustConfig.IsLinkMeEnabled = true;

只读取设备 ID 一次

在 SDK v4 中,您可以通过调用带有true参数的AdjustConfig.setReadDeviceInfoOnceEnabled()方法来指示 SDK 在启动时仅读取一次设备标识符。

adjustConfig.setReadDeviceInfoOnceEnabled(true);

在 SDK v5 中,您需要将AdjustConfig实例的IsDeviceIdsReadingOnceEnabled属性设置为true,以指示 SDK 只读取设备 ID 一次。

adjustConfig.IsDeviceIdsReadingOnceEnabled = true;

离线模式

在 SDK v4 中,您可以通过调用带bool参数的Adjust.setOfflineMode()来启用和禁用 SDK 离线模式。

Adjust.setOfflineMode(true);
Adjust.setOfflineMode(false);

在 SDK v5 中,为清晰起见,此功能被分成单独的命令。

  • 调用Adjust.SwitchToOfflineMode()将 SDK 设为离线模式。
  • 调用Adjust.SwitchBackToOnlineMode()将 SDK 重新设为在线模式。
Adjust.SwitchToOfflineMode(); // Put the SDK in offline mode
Adjust.SwitchBackToOnlineMode(); // Put the SDK back in online mode

事件缓冲

SDK v4 支持事件缓冲。该功能可将请求事件、广告收入、推送标签 (Push token) 和其他信息存储在本地缓冲区中以便在之后发送。

adjustConfig.setEventBufferingEnabled(true);

SDK v5 中已删除该设置。

自定义用户代理字符串

SDK v4 支持使用用户代理字符串调用 AdjustConfig.setUserAgent() 来设置自定义用户代理。

adjustConfig.setUserAgent("custom-user-agent");

SDK v5 中已删除该设置。

设置设备是否已知

在 SDK v4 中,您可以调用AdjustConfig.setDeviceKnown()方法,手动告知 SDK 设备是否为已知设备。

adjustConfig.setDeviceKnown(true);

SDK v5 中已删除该设置。

延迟 SDK 启动

SDK v4 支持通过调用AdjustConfig setDelayTimer()来延迟 SDK 的启动,最多延迟 10 秒

adjustConfig.setDelayTimer(10);

SDK v5 中已删除该设置。

记录功能

本节介绍向 Adjust 发送信息的功能变更。

会话回传参数

在 SDK v4 中,您可以通过传递键值对至Adjust.addSessionCallbackParameter()方法来添加会话参数,也可以使用Adjust.removeSessionCallbackParameter()方法移除单个参数。

Adjust.addSessionCallbackParameter("key", "value");
Adjust.removeSessionCallbackParameter("key");
Adjust.resetSessionCallbackParameters();

在 SDK v5 中,会话参数被重命名为统一参数。

Adjust.AddGlobalCallbackParameter("key", "value");
Adjust.RemoveGlobalCallbackParameter("key");
Adjust.RemoveGlobalCallbackParameters();

会话合作伙伴参数

在 SDK v4 中,您可以通过传递键值对至Adjust.addSessionPartnerParameter()方法来添加会话合作伙伴参数,也可以使用Adjust.removeSessionPartnerParameter()方法移除单个参数。

Adjust.addSessionPartnerParameter("key", "value");
Adjust.removeSessionPartnerParameter("key");
Adjust.resetSessionPartnerParameters();

在 SDK v5 中,会话合作伙伴参数被重命名为统一合作伙伴参数。

Adjust.AddGlobalPartnerParameter("key", "value");
Adjust.RemoveGlobalPartnerParameter("key");
Adjust.RemoveGlobalPartnerParameters();

成功和失败回传

在 SDK v4 中,您可以通过分别向AdjustConfig.setSessionSuccessDelegate()AdjustConfig.setSessionFailureDelegate()方法传递委托函数来配置会话成功和失败回传。

adjustConfig.setSessionSuccessDelegate(sessionSuccessCallback); // Session success callback
adjustConfig.setFailureSuccessDelegate(sessionFailureCallback); // Session failure callback

在 SDK v5 中,您需要将AdjustConfig实例的SessionSuccessDelegateSessionFailureDelegate属性设置为相关委托函数。

adjustConfig.SessionSuccessDelegate = sessionSuccessCallback; // Session success callback
adjustConfig.SessionFailureDelegate = sessionFailureCallback; // Session failure callback

事件成功和失败回传也发生了同样的变化。在 SDK v4 中,设置方法是分别向AdjustConfig.setSessionSuccessDelegate()AdjustConfig.setSessionFailureDelegate()方法传递委托函数。

adjustConfig.setEventSuccessDelegate(eventSuccessCallback); // Event success callback
adjustConfig.setEventFailureDelegate(eventFailureCallback); // Event failure callback

在 SDK v5 中,您需要将AdjustConfig实例的EventSuccessDelegateEventFailureDelegate属性设置为相关委托函数。

adjustConfig.EventSuccessDelegate = eventSuccessCallback; // Event success callback
adjustConfig.EventFailureDelegate = eventFailureCallback; // Event failure callback

发送订阅信息

本节介绍 Adjust SDK 中订阅发送的变更。

App Store 订阅

应直接在 SDK v5 中设置以下类属性:

  • TransactionDate
  • SalesRegion

以下 setter 已被重命名:

  • addCallbackParameter -> AddCallbackParameter
  • addCallbackParameter -> AddPartnerParameter

以下是变更内容的完整示例:

AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription(
price,
currency,
transactionId,
receipt);
subscription.setTransactionDate("transaction-date");
subscription.setSalesRegion("sales-region");
subscription.addCallbackParameter("key1", "value1");
subscription.addPartnerParameter("key2", "value2");
subscription.TransactionDate = "transaction-date";
subscription.SalesRegion = "sales-region";
subscription.AddCallbackParameter("key1", "value1");
subscription.AddPartnerParameter("key2", "value2");
Adjust.trackAppStoreSubscription(subscription);

Play 商店订阅

应直接在 SDK v5 中设置以下类属性:

  • PurchaseTime

以下 setter 已被重命名:

  • addCallbackParameter -> AddCallbackParameter
  • addCallbackParameter -> AddPartnerParameter

以下是变更内容的完整示例:

AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription(
price,
currency,
sku,
orderId,
signature,
purchaseToken);
subscription.setPurchaseTime(purchaseTime);
subscription.addCallbackParameter("key1", "value1");
subscription.addPartnerParameter("key2", "value2");
subscription.PurchaseTime = purchaseTime
subscription.AddCallbackParameter("key1", "value1");
subscription.AddPartnerParameter("key2", "value2");
Adjust.trackPlayStoreSubscription(subscription);

AdjustEvent 类

应直接在 SDK v5 中设置以下类属性:

  • CallbackId
  • TransactionId
  • ProductId
  • Receipt
  • PurchaseToken

以下 setter 已被重命名:

  • setRevenue -> SetRevenue
  • addCallbackParameter -> AddCallbackParameter
  • addCallbackParameter -> AddPartnerParameter

以下是变更内容的完整示例:

AdjustEvent adjustEvent = new AdjustEvent("abc123");
adjustEvent.setRevenue(0.25, "EUR");
adjustEvent.setTransactionId("random-id");
adjustEvent.setCallbackId("callback-id");
adjustEvent.setProductId("product-id");
adjustEvent.setPurchaseToken("purchase-token");
adjustEvent.setReceipt("receipt");
adjustEvent.addCallbackParameter("key", "value");
adjustEvent.addPartnerParameter("key", "value");
adjustEvent.SetRevenue(0.25, "EUR");
adjustEvent.TransactionId = "random-id";
adjustEvent.CallbackId = "callback-id";
adjustEvent.ProductId = "product-id";
adjustEvent.PurchaseToken = "purchase-token";
adjustEvent.Receipt = "base64-encoded-receipt";
adjustEvent.AddCallbackParameter("key", "value");
adjustEvent.AddPartnerParameter("key", "value");
Adjust.trackEvent(adjustEvent);

事件数据去重

在 SDK v4 中,事件去重与事件transaction ID同时进行且唯一 ID 的数量上限为 10 个。

adjustEvent.setTransactionId("transaction-id");

在 SDK v5 中,该功能与transaction ID分离。事件去重添加了名为DeduplicationId的新 ID 字段。

adjustEvent.DeduplicationId = "deduplication-id";

用户可以自定义DeduplicationId的数量限制,添加到用于识别重复事件的列表中。默认情况下,数量上限为 10

AdjustConfig adjustConfig = new AdjustConfig("appToken", AdjustEnvironment.Sandbox);
adjustConfig.EventDeduplicationIdsMaxSize = 20
Adjust.InitSdk(adjustConfig);

AdjustAttribution 类

在 SDK v4 中,AdjustAttribution调用包含一个名为adid的属性。在 SDK v5 中,adid属性已从AdjustAttribution类中移除。您可以使用Adjust.GetAdid() getter 方法获取设备的 ADID。

此外,AdjustAttribution类的所有内部成员现在均为公共属性。

类成员
adjustAttribution.trackerToken
adjustAttribution.trackerName
adjustAttribution.network
adjustAttribution.campaign
adjustAttribution.adgroup
adjustAttribution.creative
adjustAttribution.clickLabel
adjustAttribution.costType
adjustAttribution.costAmount
adjustAttribution.costCurrency
adjustAttribution.fbInstallReferrer
adjustAttribution.TrackerToken
adjustAttribution.TrackerName
adjustAttribution.Network
adjustAttribution.Campaign
adjustAttribution.Adgroup
adjustAttribution.Creative
adjustAttribution.ClickLabel
adjustAttribution.CostType
adjustAttribution.CostAmount
adjustAttribution.CostCurrency
adjustAttribution.FbInstallReferrer

归因变更回传

在 SDK v4 中,您可以将委托函数指定至AdjustConfig.setAttributionChangedDelegate()函数,在设备归因发生变化时进行调用。

adjustConfig.setAttributionChangedDelegate(attributionCallback);

在 SDK v5 中,您需要将委托函数指定给AdjustConfig实例的AttributionChangedDelegate属性。

adjustConfig.AttributionChangedDelegate = attributionCallback;

本节介绍 Adjust SDK 中深度链接的变更。

在 SDK v4 中,您可以将深度链接信息传递至Adjust.appWillOpenUrl()方法。

Adjust.appWillOpenUrl("url");

为清晰起见,在 SDK v5 中,该方法已重命名为Adjust.ProcessDeeplink()

Adjust.ProcessDeeplink("url");

在 SDK v4 中,您可以调用AdjustConfig.setLaunchDeferredDeeplink()方法打开延迟深度链接。

adjustConfig.setLaunchDeferredDeeplink(true);

在 SDK v5 中,您需要将AdjustConfig实例的IsDeferredDeeplinkOpeningEnabled属性设置为true,SDK 才能打开深度链接。

adjustConfig.IsDeferredDeeplinkOpeningEnabled = true;

隐私功能

本节介绍 Adjust SDK 隐私功能的变更。

《儿童在线隐私权保护法》(COPPA) 合规

在 SDK v4 中,您可以使用AdjustConfig类设置COPPA 合规并在 SDK 初始化期间读取。也就是说,SDK 初始化后该值就无法再更新。

adjustConfig.setCoppaCompliantEnabled(true);

在 SDK v5 中,此方法位于Adjust类中。也就是说,您可以随时更改设置,只需调用Adjust.EnableCoppaCompliance() 启用 COPPA 合规或调用Adjust.DisableCoppaCompliance() 禁用 COPPA 合规。

Adjust.EnableCoppaCompliance(); // Enable COPPA compliance
Adjust.DisableCoppaCompliance(); // Disable COPPA compliance

Play Store 儿童应用

在 SDK v4 中,您可以使用AdjustConfig类将应用标记为Play 商店儿童应用。该属性会在 SDK 初始化期间读取,也就是说 SDK 初始化后该值将无法更新。

adjustConfig.setPlayStoreKidsAppEnabled(true);

在 SDK v5 中,此方法位于Adjust类中。也就是说您可以随时更改设置,只需调用Adjust.EnablePlayStoreKidsApp() 来将应用标记为 Play 商店儿童应用或调用Adjust.DisablePlayStoreKidsApp() 来取消应用的 Play 商店儿童应用标记。

Adjust.EnablePlayStoreKidsApp(); // Enable Play Store Kids compliance
Adjust.DisablePlayStoreKidsApp(); // Disable Play Store Kids compliance

设置数据驻留和 URL 策略

在 SDK v4 中,URL 策略和数据驻留域名在AdjustConfig类中被定义为常量。

adjustConfig.setUrlStrategy(AdjustConfig.AdjustDataResidencyEU);

在 SDK v5 中,您需要将选定的一个或多个域名以数组的形式发送。您还可以进行下列设置:

  • shouldUseSubdomains ( bool ):来源是否为子域名作为前缀。
  • isDataResidency ( bool ):域名是否用于数据驻留。
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"eu.adjust.com"}, true, true);

请查看下方表格,了解如何在 SDK v5 中配置 URL 策略。

示例
印度 URL 策略
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"adjust.net.in", "adjust.com"}, true, false);
中国 URL 策略
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"adjust.world", "adjust.com"}, true, false);
仅限中国地区的 URL 策略
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"adjust.cn"}, true, false);
欧盟数据驻留
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"eu.adjust.com"}, true, true);
土耳其数据驻留
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"tr.adjust.com"}, true, true);
数据驻留
adjustConfig.SetUrlStrategy(new List<string id="sl-md0000000"> {"us.adjust.com"}, true, true);

第三方分享变更

本节介绍 SDK v5 中对第三方分享功能的变更。

AdjustThirdPartySharing 类变更

SDK v5 对以下方法进行了重命名:

  • addGranularOption -> AddGranularOption
  • addPartnerSharingSetting -> AddPartnerSharingSetting

以下是变更内容的完整示例:

AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(null);
adjustThirdPartySharing.addGranularOption("PartnerA", "key", "value");
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", false);
adjustThirdPartySharing.AddGranularOption("PartnerA", "key", "value");
adjustThirdPartySharing.AddPartnerSharingSetting("PartnerA", "all", false);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

全局禁用第三方分享

在 SDK v4 中,您可以调用Adjust.disableThirdPartySharing()方法来全面禁用第三方信息分享。

Adjust.disableThirdPartySharing()

SDK v5 中已删除该功能。在 SDK v5 中,使用Adjust.trackThirdPartySharing()方法来启用或禁用第三方共享。

AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(false);
Adjust.TrackThirdPartySharing(adjustThirdPartySharing);

广告收入

本节介绍 SDK v5 中对广告收入功能的变更。

发送特定来源的广告收入

在 SDK v4 中,广告收入来源被定义为AdjustConfig类中的常量。在 SDK v5 中,广告收入来源需要以字符串形式传递。

AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAppLovinMAX);
AdjustAdRevenue adRevenue = new AdjustAdRevenue("applovin_max_sdk");

AdjustAdRevenue 类变更

应直接在 SDK v5 中设置以下类属性:

  • AdImpressionsCount
  • AdRevenueNetwork
  • AdRevenueUnit
  • AdRevenuePlacement

以下 setter 已被重命名:

  • setRevenue -> SetRevenue
  • addCallbackParameter -> AddCallbackParameter
  • addCallbackParameter -> AddPartnerParameter

以下是变更内容的完整示例:

AdjustAdRevenue adRevenue = new AdjustAdRevenue("applovin_max_sdk");
adRevenue.setRevenue(6.66, "CAD");
adRevenue.setAdImpressionsCount(6);
adRevenue.setAdRevenueNetwork("network");
adRevenue.setAdRevenueUnit("unit");
adRevenue.setAdRevenuePlacement("placement");
adRevenue.addCallbackParameter("key1", "value1");
adRevenue.addPartnerParameter("key2", "value2");
adRevenue.SetRevenue(6.66, "CAD");
adRevenue.AdImpressionsCount = 6;
adRevenue.AdRevenueNetwork = "network";
adRevenue.AdRevenueUnit = "unit";
adRevenue.AdRevenuePlacement = "placement";
adRevenue.AddCallbackParameter("key1", "value1");
adRevenue.AddPartnerParameter("key2", "value2");
Adjust.trackAdRevenue(adRevenue);

SKAdNetwork 和 ATT

本节介绍 SDK v5 中对 SKAdNetwork 和 App Tracking Transparency (ATT) 功能的变更。

配置 ATT 弹窗等待时间间隔

在 SDK v4 中,您可以使用AdjustConfig.setAttConsentWaitingInterval()方法配置 ATT 延迟显示的时间间隔。

adjustConfig.setAttConsentWaitingInterval(66);

在 SDK v5 中,您需要将延迟间隔指定至AdjustConfig实例的AttConsentWaitingInterval属性。

adjustConfig.AttConsentWaitingInterval = 66;

关闭 SKAdNetwork 通讯

在 SDK v4 中,您可以通过调用AdjustConfig.deactivateSKAdNetworkHandling()方法来阻止 SDK 与 SKAdNetwork 通讯。

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", AdjustEnvironment.Sandbox, true);
adjustConfig.deactivateSKAdNetworkHandling();
Adjust.start(adjustConfig);

在 SDK v5 中,您需要将AdjustConfig实例的IsSkanAttributionEnabled属性设置为false,以此禁用 SKAdNetwork 通讯。

AdjustConfig adjustConfig = new AdjustConfig("appToken", AdjustEnvironment.Sandbox);
adjustConfig.IsSkanAttributionEnabled = false;
Adjust.InitSdk(adjustConfig);

查看授权状态变化

在 SDK v4 中,您可以使用Adjust.checkForNewAttStatus()方法提示 SDK 读取用户的 ATT 状态并将信息转发至 Adjust 服务器。

Adjust.checkForNewAttStatus();

该方法在 SDK v5 中已被移除。

监听转化值更新

在 SDK v4 中,您可以指定委托函数,将其传递至AdjustConfig.setConversionValueUpdatedDelegate()来监听转化值更新。

adjustConfig.setConversionValueUpdatedDelegate(ConversionValueUpdatedCallback);

在 SDK v5 中,您需要将委托函数指定给AdjustConfig实例的SkanUpdatedDelegate属性。

adjust.SkanUpdatedDelegate = skanUpdatedCallback;

更新转化值

在 SDK v4 中,您可以使用Adjust.updateConversionValue()方法向 Adjust 发送更新后的转化值。此方法包装 Apple 已弃用的updateConversionValue方法,且在 SDK v5 中删除。

如需更新 SDK v5 中的转化值,请使用带下列参数的Adjust.UpdateSkanConversionValue()方法:

  • conversionValue ( int ):更新后的转化值
  • coarseValue ( string ):更新后的粗粒度转化值
  • lockWindow (bool):是否在转化窗口结束前发送回调
  • callback ( Action<string id="sl-md0000000"> ): 可以处理发生的任何错误的回传函数
Adjust.UpdateSkanConversionValue(1, "low", false, error =>
{
// process error, if any
});

App Tracking Transparency 授权包装器

在 SDK v4 中,您可以使用Adjust requestTrackingAuthorizationWithCompletionHandler()方法处理用户 ATT 授权状态变更。

Adjust.requestTrackingAuthorizationWithCompletionHandler((status) =>
{
switch (status)
{
case 0:
// ATTrackingManagerAuthorizationStatusNotDetermined case
break;
case 1:
// ATTrackingManagerAuthorizationStatusRestricted case
break;
case 2:
// ATTrackingManagerAuthorizationStatusDenied case
break;
case 3:
// ATTrackingManagerAuthorizationStatusAuthorized case
break;
}
});

为清晰起见,该参数在 SDK v5 中被重命名为Adjust.RequestAppTrackingAuthorization()

Adjust.RequestAppTrackingAuthorization((status) =>
{
switch (status)
{
case 0:
// ATTrackingManagerAuthorizationStatusNotDetermined case
break;
case 1:
// ATTrackingManagerAuthorizationStatusRestricted case
break;
case 2:
// ATTrackingManagerAuthorizationStatusDenied case
break;
case 3:
// ATTrackingManagerAuthorizationStatusAuthorized case
break;
}
});

获取设备信息

在 SDK v4 中,所有设备信息 getter 方法都会同步运行。在 SDK v5 中,这些方法已改为异步运行。您可以添加回传函数,在异步流程完成时处理信息。

IDFA getter
Adjust.GetIdfa(idfa =>
{
// use idfa
});
IDFV getter
Adjust.GetIdfv(idfv =>
{
// use idfv
});
ADID getter
Adjust.GetAdid(adid =>
{
// use adid
});
归因 getter
Adjust.GetAttribution(attribution =>
{
// use attribution
});
启用状态 getter
Adjust.IsEnabled(isEnabled =>
{
// use isEnabled
});
SDK 版本 getter
Adjust.GetSdkVersion(sdkVersion =>
{
// use sdkVersion
});
Amazon ADID getter
Adjust.GetAmazonAdId(amazonAdId =>
{
// use amazonAdId
});
最后深度链接 getter
Adjust.GetLastDeeplink(lastDeeplink =>
{
// use lastDeeplink
});