常见问题
该错误一般发生在安装测试时。单凭卸载和重装应用不足以触发新安装。后端会认定 SDK 丢失了本地会话数据,当此设备信息已被记录时,该信息会被忽略。以确保 sandbox (测试) 环境中的行为与 production (生产) 保持一致。
您可以在测试控制台中重置应用会话数据。要进行该操作,您需要对应应用的编辑或更高等级访问权限。
从测试控制台移除设备后,设备将返回 Forgot device (已遗忘设备)。如果设备已经被遗忘或者值不正确,将返回 Advertising ID not found 。
遗忘设备将不会逆转 GDPR forget me (遗忘) 调用。
如果您拥有设备 API 访问权限,可以用该 API 来检视和遗忘设备。
如果您按照入门指南中的说明进行了操作,广播接收器应当已经配置妥当。接收器会将 install referrer 发送至 Adjust SDK 和 Adjust 后端。
您可以通过触发测试 Install Referrer 来检查设置情况。使用 Android Studio 中的adb
工具运行下列行。请务必将com.your.appid
替换为您的应用 ID。
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.your.appid/com.adjust.sdk.AdjustReferrerReceiver --es "referrer" "adjust_reftag%3Dabc1234%26tracking_id%3D123456789%26utm_source%3Dnetwork%26utm_medium%3Dbanner%26utm_campaign%3Dcampaign"
在某些情况下您可以为INSTALL_REFERRER
intent 使用不同的接收器。如果您已按本指南的步骤进行操作,请将com.adjust.sdk.AdjustReferrerReceiver
替换为您的广播接收器。
您也可以移除-n com.your.appid/com.adjust.sdk.AdjustReferrerReceiver
参数,让设备中的所有应用接收INSTALL_REFERRER
intent。
如果您将日志级别设置为verbose
,就可以通过读取 referrer 查看日志:
V/Adjust: Referrer to parse (adjust_reftag=abc1234&tracking_id=123456789&utm_source=network&utm_medium=banner&utm_campaign=campaign) from reftag
您也应当能看到点击包 (click package) 添加到 SDK 包处理器:
V/Adjust: Path: /sdk_click
ClientSdk: android4.28.0
Parameters:
app_token abc123abc123
click_time yyyy-MM-dd'T'HH:mm:ss.SSS'Z'Z
created_at yyyy-MM-dd'T'HH:mm:ss.SSS'Z'Z
environment sandbox
gps_adid 12345678-0abc-de12-3456-7890abcdef12
needs_attribution_data 1
referrer adjust_reftag=abc123&tracking_id=123456789&utm_source=network&utm_medium=banner&utm_campaign=campaign
reftag abc123
source reftag
tracking_enabled 1
如果您在启动应用前执行以上测试,数据包将不会被发送。数据包将于应用启动后被发送。
adb
工具测试该功能。如果您有以&
分隔的多个参数,则需要对内容进行编码。否则 adb 将在第一个&
符号后停止读取,并向您的广播接收器发送错误内容。
如果您想测试应用接收未编码 referrer 值的情况,请使用我们的示例应用进行测试。您可以更改传递的内容,以便在MainActivity.java
中的onFireIntentClick
方法内与 intent 一同触发。
public void onFireIntentClick(View v) {
Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
intent.setPackage("com.adjust.examples");
intent.putExtra("referrer","utm_source=test&utm_medium=test&utm_term=test&utm_content=test&utm_campaign=test");
sendBroadcast(intent);
}
您可使用自定义内容更改putExtra
方法的第二个参数。
在应用打开时触发事件可能无法达到您预期的效果。
安卓会多次调用全局Application
类的onCreate
方法,包括应用启动时、应用捕捉到系统事件或应用事件时等。
此时,我们的 SDK 已经准备初始化了,但是还没有正式启动。只有当有活动发生时,SDK 才会正式启动,比如当用户启动应用时。
如果您在应用打开时触发事件,Adjust SDK 就会开始发送事件,即便应用不是被用户启动、而是被外部事件触发激活时也是如此。
换言之,在应用打开时触发事件会导致报告误差。
如果您想在安装后触发事件,请使用归因回传。
如果您希望在用户启动应用时触发事件,请针对指定活动使用onCreate
方法。
Adjust SDK 大小在 50KB 到 60KB 之间。