SDK 签名

Adjust 的 SDK 签名是一款防伪造解决方案。该库通过专有的混淆算法加固 Adjust SDK 与 Adjust 服务器之间的通信连接,并结合代码混淆和安全校验机制来确保自身完整性。

SDK 签名库的集成非常简便,无需额外代码便可与 Adjust SDK 无缝兼容。

其工作原理是什么?

重要提示:

SDK 签名库并非防作弊引擎,无法预防用户层级的作弊行为,如应用漏洞滥用、篡改应用外部资源或利用应用逻辑缺陷等问题。

Adjust SDK 向 Adjust 服务器发送信息时会使用安全传输层协议 (TLS) 来加密信息。TLS 是针对网络流量的行业标准加密协议。虽然 TLS 可以防止作弊者读取您的信息,但无法阻止他们向您的应用终端发送作弊安装或事件数据。

SDK 签名库使用专有的修饰算法,并结合模糊处理和安全检查,保护 SDK 与 Adjust 服务器的连接,确保 Adjust 服务器拒绝其他来源发送的任何信息。服务器会检查所有请求确保签名有效。任何 未签名​ 或 带有无效签名​ 的信息都会被拒绝,保证您只接收有效信息。

请注意:

该视频提供了实用的概述,但并不能代替下方完整文档。我们强烈建议您仔细阅读完整的书面说明,确保不错过任何关键细节。

提示:

理解数据和报告的完整培训视频可以在此处找到。

开始使用

重要提示:

在大多数情况下,SDK 签名库默认包含在 SDK v5 中。您应当仅在收到 SDK 提示,或需要特定 SDK 签名库版本时,才进行单独的集成。

SDK 签名库适用于 Android、iOS 和 Unity。要集成库,请按照您平台对应的集成指南操作。

提示:

其他多平台框架不受官方支持,除与 SDK v5 捆绑的情况。要针对多平台框架更新 SDK 签名库,请按照 iOS 和 Android 的说明操作。测试与开发框架无关。

请务必测试配置,验证集成否能正常运作。

管理您的证书指纹

请注意:

只有针对 安卓​ 的应用才需要证书指纹。

将 SDK 签名库集成到应用中后,Adjust SDK 向 Adjust 发送的所有请求都会带有签名。Adjust SDK 还会向 Adjust 服务器发送相关信息,包括您的签名证书指纹。

要获取您的证书指纹,请找到平台对应的指南文档进行操作。

重要提示:

您必须将签名证书的指纹添加至许可名单。如果未将任何指纹添加至许可名单,则来自应用的流量可能会被伪造。

在 Adjust suite 中添加签名

获得证书指纹后,请按照下列步骤操作,将证书指纹加入许可名单:

  1. 在 AppView 中选中您的应用,打开应用详情界面。
  2. 选择 数据保护​ 标签页。
  3. 选择 SDK 签名​ 小组件上的 编辑​ 按钮 () 。
  4. 找到 安卓指纹​ 部分,选择 新指纹​ 。
  5. 将复制好的指纹粘贴入弹出的文本框中。
  6. 选择 添加​ 。
  7. 为每个指纹重复上述步骤,将它们加入许可名单。

一切就绪!您的指纹现已加入应用许可名单。

请注意:

您必须在 Adjust 中更新证书指纹,才能更新签名指纹。

您可以禁用不需要的指纹。

  1. 在 AppView 中选中您的应用,打开应用详情界面。
  2. 选择 数据保护​ 标签页。
  3. 选择 SDK 签名​ 小组件上的 编辑​ 按钮 () 。
  4. 找到 安卓指纹​ 部分,选择要禁用的指纹。
  5. 选择 停用

包含已禁用指纹的流量会被视为可疑流量,并被拒绝。

使用 Automate API 添加签名

如果您使用 Automate API 管理应用,那么可以通过 /app 终端设置安卓签名。请参阅 Automate API 安卓签名设置指南,按照其中的步骤操作,通过 Automate API 向应用添加签名。采用该方法添加的签名会被自动附加在许可名单中。

强制执行签名验证

重要提示:

当执行签名验证时:

  • Invalid Secret(无效密钥)​ 下的流量会被拒绝。
  • 密钥 ID 为 无 (已禁用)​ 的签名流量会被 (针对安装和安装后活动) 拒绝。
  • 密钥 ID 设置为 仅用于安装后​ 签名的安装会被拒绝。

安装

在应用中集成 SDK 签名库后,您需要在 Adjust 中强制执行签名。否则,所有 SDK 请求都会在未经验证的情况下被直接接受。

Adjust 不会自动强制执行签名验证。这样,您就有足够的时间等待用户下载应用更新,并打开更新后的应用,确保所记录的安装都带有签名。

Adjust 建议您在发布带有较新 SDK 签名的应用版本后等待大约 2 个归因窗口的时间,然后再执行签名验证。

例如,在 Adjust 默认的 7 天窗口中,您应当在新应用版本发布后等待 14 天,然后再执行签名验证。如果有用户在集成密钥前下载了应用,但刚刚首次打开应用,安装就不会带有 SDK 签名。等待一段时间再执行签名,就能确保此类安装依旧能被接受并进行归因。

安装验证行为取决于为每个密钥 ID 配置的 活跃范围​ 。要了解更多信息,请参阅管理您的密钥 ID

要执行签名验证,请按照下列步骤操作。

  1. 在 AppView 中选中您的应用,打开应用详情界面。
  2. 选择 数据保护​ 标签页。
  3. 选择 SDK 签名​ 小组件上的 编辑​ 按钮 () 。
  4. 拒绝可疑安装​ 选项设为 "开",强制执行签名验证。

强制执行严格签名验证

集成 SDK 签名库并启用安装签名验证后,您可以强制执行 严格签名​ ,拒绝可疑会话、事件和广告收入,保护推广活动免受伪造流量的侵害。您可以通过调整每个密钥 ID 的 活跃​ 范围来控制要验证的流量。要了解更多信息,请参阅管理您的密钥 ID

重要提示:

在启用严格签名前,请仔细检查,确保您已经实装了强制更新机制,可将用户迁移至受支持的应用版本。如果安装后 活动​ 来自过期应用版本,且签名缺失或无效,那么就会被永久拒绝。

要执行严格签名验证,请按照下列步骤操作:

  1. 在 AppView 中选中您的应用,打开应用详情界面。
  2. 选择 数据保护​ 标签页。
  3. 选择 SDK 签名​ 小组件上的 编辑​ 按钮 () 。
  4. 拒绝可疑安装后活动​ 选项设为“开”,强制执行 严格签名验证​ 。

管理您的密钥 ID

密钥 ID​ 是一种标识符,可用于判断特定平台上使用特定版本 SDK 签名库的应用。Adjust SDK 发送已签名的请求后,Adjust 就会自动生成密钥 ID。

您可以使用 活跃​ 范围控制每个密钥 ID 的应用方式。默认情况下,密钥 ID 设置为 所有流量​ 。如果您在执行签名验证时设置密钥 ID 为 无 (禁用)​ ,那么符合对应 SDK 签名库版本和平台的应用发送的所有请求都会被拒绝。

在下列情况下,Adjust 建议将密钥 ID 设置为 无 (禁用)​ :

  • 应用密钥已不再适用于安装报告。
  • 您已经在所有应用平台和商店中全面发布了应用的新版本。

您可以将相应的密钥 ID 范围改为 仅限安装后​ ,允许现有用户继续使用带有较旧 SDK 签名版本的应用,同时阻止来自这些版本的新安装。

变更密钥 ID 范围会立即生效。

  • 启用签名验证拒绝可疑安装后,密钥 ID 设置为 无 (已禁用)​ 或 仅限安装后​ 的应用安装会被拒绝并归入 不受信任设备​ 类别下。Adjust 会持续跟踪这些设备的会话和事件,但仅在您使用了 Adjust 防作弊套件时,才会在您的控制面板或报告中显示此信息。
  • 如果通过签名验证来拒绝安装后活动,则密钥 ID 为 无 (禁用)​ 的安装后活动将被拒绝。但是,如果安装已经被拒绝并归因至 不受信任设备​ ,那么其安装后活动将按照 不受信任设备​ 逻辑进行处理,不会再次被拒绝。

密钥 ID 管理方法:

  1. 在 AppView 中选中您的应用,打开应用详情界面。
  2. 选择 数据保护​ 标签页。
  3. 选择 SDK 签名​ 小组件上的 编辑​ 按钮 () 。
  4. Secrets (密钥)​ 部分执行 Edit (编辑)​ 操作:
    • 您可更改选定密钥 ID 名称。
    • 您可以更改选定密钥 ID 的 活跃​ 范围:
      • 所有流量​ – 状态: 已激活。
      • 仅限安装后​ – 状态: 已激活。
      • 无 (已禁用)​ – 状态: 已禁用。

显示已禁用密钥 ID​ 选项设为 "开",即可查看已被停用的 ID。

更新库

重要提示:

在大多数情况下,SDK 签名库默认包含在 SDK v5 中。更新 SDK v5 时,SDK 签名库也会发生更新。您应当仅在未使用依赖管理器的情况下,或需要特定 SDK 签名库版本时,才进行单独的集成。

如果您出于任何原因,需要降级到之前未使用过的 SDK 签名库版本,请联系您的 Adjust 代表或发送电子邮件至 support@adjust.com

除替换库外,您无须对应用进行任何变更。要更新 SDK 签名库,请按照下列步骤操作:

  1. 按照平台对应的更新指南操作。

  2. 测试配置,按照平台对应的测试指南操作,验证更新后的库能否正常运作。

提示:

其他多平台框架不受官方支持,除与 SDK v5 捆绑的情况。要针对多平台框架更新 SDK 签名库,请按照 iOS 和 Android 的说明操作。测试与开发框架无关。