Adjust 商店和预安装工具

如果设备上预安装了您的应用,就需要使用预安装跟踪链接进行用户归因。您可以通过 Adjust 商店和预安装工具 (adjust-dtt) 将该信息插入 APK。Adjust SDK 会读取 adjust-dtt 插入的信息,从而将预安装应用的用户归因至特定的 Adjust 跟踪链接。

操作前须知

请注意:
任何能生成 APK 的开发框架都可以使用该工具。

首先,请从 GitHub 下载 adjust-dtt 工具。您需要将下载的文件设为可执行文件才能使用。要将文件格式设为可执行,请运行下列命令:

chmod +x adjust-dtt

要运行adjust-dtt,您需要在设备上安装下列工具。

  1. ruby – 用来运行adjust-dtt的语言工具。
  2. apktool – 用来解包和重新打包 APK 的工具。
  3. jarsigner – 用来进行 APK 签名的工具。

安装说明

Ruby

Apktool

Jarsigner

添加工具至 PATH

您的 shell PATH变量中必须同时有apktooljarsigneradjust-dtt才能正常运行。请运行下列命令,了解您的PATH中是否有 apktool 和 jarsinger:

# Returns the location of apktool
which apktool

# Returns the location of jarsigner
which jarsigner

在安装这些工具时,brewaptdnfpacman等包管理器会将其添加至您的PATH。如果您采用了不同的工具安装方法,就需要手动将它们添加至 PATH

例如,您可以将apktool(1) 和jarsigner(2) 下载至下列位置:

macOS
Linux
  1. /User/username/apktool/
  2. /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/

要从您的终端访问这些工具,PATH中必须包含上述目录。

提示:
多数 Linux 发行版的默认 shell 是 Bash。在 macOS 上,默认 shell 是 Zsh。

要向PATH添加新目录,您需要在 shell 运行命令 (rc) 文件中编辑PATH变量。该文件通常位于主目录中,命名约定是.{shell name}rc

您可以将新目录添加至rc文件,这样目录就可添加至PATH了。请用冒号 (:) 分隔输入的不同目录。用您选择的编辑器打开对应文件,将下列行添加至末尾:

macOS
Linux
export PATH="/User/username/apktool/:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/:$PATH"

向文件添加目录后,请保存并关闭文件。下一次打开终端时,来源就会在PATH上可用。要让来源立即可用,请运行下列命令:

macOS
Linux
source ~/.zshrc

太棒了!一切就绪,可以运行adjust-dtt工具了。

添加预安装跟踪链接信息

步骤 1. 获取密钥库文件

创建 APK 后,Android Studio 就会为其签名。即便您生成了 "unsigned" (未签名) 版本的 APK 也是如此,这种情况下,Android Studio 会使用默认调试签名密钥库文件为 APK 签名。该密钥库文件默认位于~/.android/debug.keystore

如果从 Android Studio 导出已签名的 APK,您就需要使用自定义签名密钥库文件为 APK 签名。

您需要拥有默认密钥库文件或自定义密钥库文件访问权限,才能使用adjust-dtt,因为使用apktool解包 APK 时,所有签名都会被 apktool 移除。重新打包 APK 并不会重新启用签名。也就是说,您需要使用签名信息运行jarsigner,才能为 APK 重新签名。请先重新为应用程序签名,再向安卓设备发送应用程序。

步骤 2. 创建跟踪码

下一步,请在 Adjust 控制面板中创建跟踪码。该跟踪链接将会是您预安装应用的默认跟踪链接。也就是说,所有预先安装应用的用户都会被归因至该跟踪链接。

步骤 3. 创建 config 文件

具备密钥库文件和跟踪码后,就可以创建配置 (config) 文件了。adjust-dtt使用一个adjust-config.yaml配置文件来读取您的设置。该文件中包含需要您设置的不同应用商店选项。

您可以在adjust-config.yaml中设置下列参数:

参数

adjust-config.yaml文件示例如下,其中包含名为 store_1​ 、 store_2​ 和 store_3​ 三个商店的设置。

apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
    store_1:
        default_tracker: abc123
    store_2:
        default_tracker: abc456
    store_3:
        default_tracker: abc789

如果您想为所有商店应用同样的设置,请在根文件中定义全局参数。单个商店设置的参数将覆盖该商店的全局参数。例如:

apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
    store_1:
        default_tracker: abc123
        keystore_path: /Users/username/Desktop/apk/differentkeystore.jks
        keystore_pass: differentkeystorepass
        keystore_alias: differentkeystorealias
    store_2:
        default_tracker: abc456
    store_3:
        default_tracker: abc789

在此示例中,adjust-dtt工具在生成 store_1​ 的 APK 时,将使用differentkeystore.jksdifferentkeystorepassdifferentkeystorealias。该工具会针对每个商店生成经过调整的 APK。

步骤 4. 运行 adjust-dtt 工具

adjust-dtt工具将adjust-config.yaml文件路径作为一个参数。要向 APK 添加跟踪链接信息,请按照下列方式运行工具:

adjust-dtt adjust-config.yaml

adjust-dtt工具运行时会有下列行为:

  1. 将 APK 解包至文件夹。文件夹与 APK 位于同一个目录,名称与 APK 相同。

  2. 查找assets文件夹和adjust_config.properties文件。adjust_config.properties文件包含默认跟踪链接信息。

    • 创建assets文件夹和adjust_config.properties文件(如二者尚未被创建)。工具将您的default_tracker信息写入adjust_config.properties文件。
    • default_tracker信息写入adjust_config.properties文件(如该文件存在)。如果文件已经包含默认跟踪链接值,工具则会比较两个跟踪链接。如果跟踪链接不相同,现有的值就会被adjust-config.yaml文件中的跟踪链接值覆盖。
  3. 重新打包 APK。

  4. 使用adjust-config.yaml中的信息为 APK 签名。使用keystore_pathkeystore_pass、和keystore_alias参数。

  5. 生成 APK,名称与原 APK 相同,但带有 _[store_name]后缀。在上述示例中,工具生成了 3 个 APK 文件。这些文件将被命名为example-release_store_1.apkexample-release_store_2.apkexample-release_store_3.apk。您可以在文件生成后进行重命名。

如果您在使用该工具时遇到了任何疑问或问题,请联系 support@adjust.com