Adjust SDK 包含处理应用用户隐私的功能。
发送删除请求
public static void gdprForgetMe(final Context context)
 
在处理个人数据方面,欧盟的《通用数据保护条例》(GDPR) 和全球类似的隐私法律 (CCPA、LGPD 等) 授予数据主体完全权利,其中包括删除权 (参见 GDPR 第 17条)( 1 )。作为数据处理方,Adjust 有义务支持您 (数据控制方) 处理来自应用用户的此类请求。
您可以通过调用 gdprForgetMe 方法来将用户的删除请求发送至 Adjust 服务器。收到通知后:
- 我们将从内部系统和数据库中永久删除用户的所有历史个人数据;
 
- 此外,Adjust 将不再通过 Adjust SDK 接收来自该用户/设备的数据。 ( 2 )
 
  
针对特定用户的第三方分享
您可以使用 Adjust SDK 来记录用户对第三方数据分享设置的变更。请使用 AdjustThirdPartySharing 类配置第三方数据分享设置。
实例化 AdjustThirdPartySharing 对象
public AdjustThirdPartySharing(final Boolean isEnabled)
 
要启用或禁用 Adjust SDK 第三方数据分享,请实例化一个 AdjustThirdPartySharing 对象。该对象中包含的变量控制 Adjust 处理第三方数据分享的方式。
要实例化第三方数据分享对象,请创建新的 AdjustThirdPartySharing 实例,并传送下列参数:
isEnabled (Boolean):第三方数据分享是否启用。传送 true 可启用第三方分享;传送 false 可禁用第三方分享。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
完成 AdjustThirdPartySharing 对象实例化后,您就能以参数形式使用 AdjustThirdPartySharing 实例调用 Adjust.trackThirdPartySharing 方法,以向 Adjust 发送信息。
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
public void addGranularOption(final String partnerName,
 
当用户更新第三方数据分享设置时,您可以附加较精细的信息,以此发送用户决定的更多细节。为此,请使用下列参数调用addGranularOption方法:
partnerName (String):使用精细设置的合作伙伴的名称。 
key (String):选项 key。 
value (String):选项值。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addGranularOption("PartnerA", "foo", "bar")
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addGranularOption("PartnerA", "foo", "bar");
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
管理 Facebook “限制数据使用” 功能
为遵守《加州消费者隐私法案》(CCPA) 的规定,Facebook 提供了 “限制数据使用” (LDU) 功能。借助该功能,在有位于美国加利福尼亚州的用户选择拒绝数据出售时,您就能向 Facebook 发送通知。如果您希望将所有用户的默认许可状态设为拒绝,也可以使用该功能。
您可以通过向 addGranularOption 方法传递下列参数来更新 Facebook LDU 状态。
| 参数 | 描述 | 
|---|
partner_name | 请使用facebook来开启或关闭 LDU。 | 
data_processing_options_country | 用户所在的国家/地区0: 要求 Facebook 使用地理位置。1: 美利坚合众国。
  | 
data_processing_options_state | 通知 Facebook 用户所处的州。0: 要求 Facebook 使用地理位置。1000: 加利福尼亚州1001: 科罗拉多州1002: 康涅狄格州
  | 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addGranularOption("facebook", "data_processing_options_country", "1")
adjustThirdPartySharing.addGranularOption("facebook", "data_processing_options_state", "1000")
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addGranularOption("facebook", "data_processing_options_country", "1");
adjustThirdPartySharing.addGranularOption("facebook", "data_processing_options_state", "1000");
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
向 Google 提供许可数据 (《数字市场法案》合规)
要符合欧盟的《数字市场法案》(Digital Markets Act,简称 DMA),Google Ads 和 Google Marketing Platform 需要获得明确的用户许可,才能接收 Adjust 向其 API 发送的归因请求。要发送该许可,您需要针对合作伙伴将以下精细选项添加至第三方分享实例google_dma。
| 密钥 | 值 | 描述 | 
|---|
eea | 1 (是) | 0 (否) | 告知 Adjust 安装应用的用户是否位于欧洲经济区。 欧洲经济区包括欧盟成员国、瑞士、挪威、冰岛和斯洛文尼亚。 | 
ad_personalization | 1 (是) | 0 (否) | 告知 Adjust 用户是否同意通过 Google Ads 和/或 Google Marketing Platform 接收个性化广告。此参数还为针对 Google Marketing Platform 的npa参数提供信息。 | 
ad_user_data | 1 (是) | 0 (否) | 告知 Adjust 用户是否允许其广告主 ID 被用于归因相关目的。 | 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addGranularOption("google_dma", "eea", "1");
adjustThirdPartySharing.addGranularOption("google_dma", "ad_personalization", "1");
adjustThirdPartySharing.addGranularOption("google_dma", "ad_user_data", "1");
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(null);
adjustThirdPartySharing.addGranularOption("google_dma", "eea", "1");
adjustThirdPartySharing.addGranularOption("google_dma", "ad_personalization", "1");
adjustThirdPartySharing.addGranularOption("google_dma", "ad_user_data", "1");
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
更新合作伙伴分享设置
public void addPartnerSharingSetting(final String partnerName,
 
默认情况下,Adjust 会与您在应用设置中配置的合作伙伴分享所有指标。您可以使用 Adjust SDK,为每个合作伙伴分别更新第三方数据分享设置。为此,请使用下列参数调用 addPartnerSharingSetting 方法:
| 参数 | 数据类型 | 描述 | 
|---|
partnerName | String | 合作伙伴名称或 ID。下载可用合作伙伴的完整列表 | 
key | String | 与合作伙伴分享的指标 | 
value | Boolean | 用户的选择 | 
您可以使用 partnerName,指定要禁用/重启特定指标分享的合作伙伴。此处:
- 如果您想启用/禁用与所有合作伙伴的指标共享,包括 SAN、模块和动态合作伙伴,请以 
partnerName 形式传送 all 关键词。 
- 如果您单独针对 SAN 合作伙伴启用/禁用指标共享,请以 
partnerName 形式传送 SAN 合作伙伴名称。 
- 如果您想启用/禁用与所有合作伙伴的指标共享 (SAN 合作伙伴除外),请以 
partnerName 形式传送合作伙伴 ID。 
- 如果您针对动态合作伙伴启用/禁用指标共享,请以 
partnerName 形式传送 dynamic_callback。 
您可以使用key来指定要禁用或重新启用的指标。如果您想启用/禁用所有指标的分享,可以使用all键。可用指标的完整列表如下:
  
ad_revenue 
all 
update 
att_update 
event 
install 
reattribution 
reattribution_reinstall 
   
reinstall 
rejected_install 
rejected_reattribution 
sdk_click 
sdk_info 
session 
subscription 
uninstall 
    
指标组
当您针对合作伙伴的指标设置 false 值时,Adjust 将停止与该合作伙伴分享该指标,以及指标组中的所有子级指标。这些嵌套组包括:
- 
会话
- 
安装
 
- 
重装
 
- 
再归因
 
- 
rejected_reattribution
 
- 
reattribution_reinstall
 
 
此处:
- 如果禁用 
session 分享,那么它的所有子级指标也将被禁用。 
- 如果您禁用 
session 共享,但启用了 reattribution 共享,那么除 reattribution 外的所有对应子级指标都将被禁用。 
- 如果您禁用 
session 共享,但启用了 install 共享,那么除 install 外的所有 session 子级指标都将被禁用。install 的子级指标将保持启用状态。 
- 如果您启用 
session 共享,但禁用了 install 共享,那么除 install 外的所有 session 子级指标都将被启用。install 的子级指标将保持禁用状态。 
示例
如果您想停止与特定合作伙伴分享所有指标,请发送带有false值的all键。
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", false)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", false);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
要重新启用针对特定合作伙伴的分享,请发送带有 true 值的 all 键。
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
如果您只想与 PartnerA 分享数据,请进行下列传送:
all 键 (针对 all 合作伙伴),值为 false,以禁用与全部合作伙伴分享所有信息。 
all 键 (针对 PartnerA),值为 true,以明确启用与 PartnerA 的全部信息分享。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
如果您只想与 all 合作伙伴分享 session 数据,那么请进行下列传送:
all 键 (针对 all 合作伙伴),值为 false,以禁用与全部合作伙伴分享所有信息。 
session 键 (针对 all 合作伙伴),值为 true,以启用与 all 合作伙伴的 session 数据及其全部相关“子级”指标。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false)
adjustThirdPartySharing.addPartnerSharingSetting("all", "session", true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false);
adjustThirdPartySharing.addPartnerSharingSetting("all", "session", true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
如果您只想与 PartnerA 分享 session 数据,那么请进行下列传送:
all 键 (针对 all 合作伙伴),值为 false,以禁用与全部合作伙伴分享所有信息。 
session 键 (针对 PartnerA 合作伙伴),值为 true,以启用与 PartnerA 合作伙伴的 session 数据及其全部相关“子级”指标。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "session", true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("all", "all", false);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "session", true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
如果您想禁用 dynamic_callbacks,请发送带有 false 值的 all 键。
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("dynamic_callbacks", "all", false)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("dynamic_callbacks", "all", false);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
您可以使用不同的键多次调用addPartnerSharingSetting方法来停止或开始共享特定指标。例如,如果您只想与合作伙伴分享事件信息,则可以传递:
all 值为false以禁用所有信息分享。 
event 值为true以启用事件共享。 
   val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", false)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "event", true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
     AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "all", false);
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", "event", true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);
         
设置 URL 策略
public void setUrlStrategy(List<string> domains, boolean useSubdomains, boolean isDataResidency)
 
通过 URL 策略功能,您可以进行下列设置之一:
- Adjust 储存您数据的国家/地区 (即数据驻留)。
 
- 接收 Adjust SDK 所发送流量的终端 (即 URL 策略)。
 
当应用运营的国家拥有严格的隐私规定时,此功能会非常有用。在您设置 URL 策略时,Adjust 会将数据储存在指定数据驻留地区,或将流量发送至选定域名。
要设置数据驻留国家,请使用以下参数调用AdjustConfig.setUrlStrategy方法:
domains (List<string>):接收您所发送 SDK 流量的数据驻留国家/地区或终端。 
useSubdomains ( boolean ):来源是否为子域名作为前缀。 
isDataResidency ( boolean ):域名是否用于数据驻留。 
请查看下方映射列表。
| URL 策略 | 主要和后备域名 | 使用子域名 | 数据驻留 | 
|---|
| 欧盟数据驻留 | "eu.adjust.com" | true | true | 
| 土耳其数据驻留 | "tr.adjust.com" | true | true | 
| 数据驻留 | "us.adjust.com" | true | true | 
| 中国统一 URL 策略 | "adjust.world", "adjust.com" | true | false | 
| 中国 URL 策略 | "adjust.cn", "adjust.com" | true | false | 
| 仅限中国地区的 URL 策略 | "adjust.cn" | true | false | 
| 印度 URL 策略 | "adjust.net.in", "adjust.com" | true | false | 
   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);
         
示例
   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);
         
针对特定用户的许可监测
public static void trackMeasurementConsent(final boolean consentMeasurement)
 
如果您正在 Adjust 控制面板中使用数据隐私设置,那么则需要对 Adjust SDK 做出相应设置。这包括设置许可有效期和用户数据留存期。
要开启或关闭该功能,请使用下列参数调用 trackMeasurementConsent 方法:
consentMeasurement (Boolean):许可监测是 (true) 否 (false) 启用。 
开启后,SDK 会将数据隐私设置发送至 Adjust 服务器。Adjust 服务器随后会将您的数据隐私规则应用于用户,Adjust SDK 将会继续如常运行。
   Adjust.trackMeasurementConsent(true)
     Adjust.trackMeasurementConsent(true);
         
COPPA 合规
public void enableCoppaCompliance()
 
如果您的应用需要符合 COPPA (儿童在线隐私保护法) 规定,请在 SDK 初始化前调用 AdjustConfig.enableCoppaCompliance 方法。此方法会进行如下操作:
- 禁用第三方数据分享。
 
- 防止 SDK 读取设备和广告 ID (例如
gps_adid和android_id)。 
   val appToken = "{YourAppToken}"
val environment = AdjustConfig.ENVIRONMENT_SANDBOX
val config = AdjustConfig(this, appToken, environment)
config.enableCoppaCompliance()
     String appToken = "{YourAppToken}";
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
config.enableCoppaCompliance();
         
Play 商店儿童应用
public void enablePlayStoreKidsCompliance()
 
如果您的应用会定向到不满 13 周岁的儿童,且安装地区 不 位于美国,则需要将其标记为儿童应用 (Kids App)。这可以防止 SDK 读取设备和广告 ID (例如gps_adid和android_id)。
如需将应用标记为 Play 商店儿童应用,请在 SDK 初始化前在AdjustConfig实例上调用enablePlayStoreKidsCompliance方法。
   val appToken = "{YourAppToken}"
val environment = AdjustConfig.ENVIRONMENT_SANDBOX
val config = AdjustConfig(this, appToken, environment)
config.enablePlayStoreKidsCompliance()
     String appToken = "{YourAppToken}";
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
config.enablePlayStoreKidsCompliance();