常见问题
您应当在 didFinishLaunching
或 didFinishLaunchingWithOptions
方法中进行 Adjust SDK 初始化。如果您按照入门指南中的说明进行了操作,这些方法应当已经在您的应用委托中。为了能够使用 SDK 的所有功能,您必须尽快地初始化 Adjust SDK。
如果在应用打开后不立刻初始化 Adjust SDK,就可能遇到意外错误。Adjust SDK 如果不初始化,就无法进行任何跟踪。
在 Adjust SDK 初始化之前,下列任何操作都无法正常完成:
- 事件跟踪
- 通过深度链接进行再归因
- 禁用跟踪
- 离线模式
如果您希望在 Adjust SDK 初始化之前跟踪以上任一操作,则需要将操作添加到队列。您可以在应用中创建 custom actions queueing mechanism (自定义操作队列机制)。您需要将所有希望 Adjust SDK 执行的操作排成队列,在 SDK 被初始化之后执行它们。
延迟 SDK 初始化也可能会影响会话跟踪。SDK 在初始化之前是无法跟踪会话时长的,这可能会影响您的每日活跃用户数据。
例如:您可以在用户导航至应用特定界面时才初始化 Adjust SDK。如果这样做,那么在用户打开应用、访问主页时,Adjust SDK 不会跟踪用户。如果用户在访问主页后决定卸载应用,Adjust SDK 也无法跟踪该信息。因此,您也就无法在控制面板中收到关于这些操作的任何信息。
事件跟踪
如果您要跟踪事件,请创建内部队列机制。将事件添加至队列以便在 Adjust SDK 初始化后进行跟踪。在 Adjust SDK 初始化之前是无法进行事件跟踪的。未初始化的 Adjust SDK 无法跟踪事件,这些事件数据也会 永久丢失 。请务必确保启用 Adjust SDK,并在跟踪事件前已经进行初始化。
离线模式和启用/禁用跟踪
Adjust SDK 离线模式设置在会话之间不会保留。新会话开始时,Adjust SDK 就会切换至在线模式。在 Adjust SDK 初始化前,离线模式是无法启用的。由于离线模式无法保留,Adjust SDK 会在初始化时切换至在线模式。
跟踪的启用和禁用状态会在 Adjust SDK 初始化之间保留。Adjust SDK 初始化之前,切换启用和禁用是无效的。Adjust SDK 会记住并保留上一次初始化时所处的状态。
通过深度链接进行再归因
如果您使用的是通用链接,就会从链接中获得 NSURL
对象。收到该链接后,您需要进行下列调用:
[Adjust appWillOpenUrl:url]
Adjust SDK 初始化之前进行该调用是无效的,URL 中包含的归因信息将丢失。要让 Adjust SDK 进行用户再归因,您需要将 NSURL
对象加入队列。在初始化 Adjust SDK 后,请触发 appWillOpenUrl
方法。这样,Adjust 就能打开 URL 对象,并将用户转到应用中正确的位置。
会话跟踪
Adjust SDK 会自动跟踪会话。您需要提早初始化 Adjust SDK,才能捕捉到会话信息。如果在应用打开后不立刻初始化 Adjust SDK,就可能遇到意外错误。Adjust SDK 如果不激活,就无法进行任何跟踪。
在下列几种情况中,如果您不提早足够时间进行 Adjust SDK 初始化,跟踪就可能失败:
- 用户打开了应用,但在 Adjust SDK 初始化之前就卸载了应用,Adjust SDK 无法收到安装和会话信息,该安装就不会报告在控制面板中。
- 用户在午夜前下载并打开您的应用,然而,由于您设置了初始化延迟, Adjust SDK 在午夜后才被初始化,此时,安装和会话数据的报告日期就是错误的。
- 用户在午夜前打开您的应用,然而,由于您设置了初始化延迟, Adjust SDK 在午夜后才被初始化,导致会话数据的日期出错,造成每日活跃用户数据误差。
当添加 Adjust SDK 框架至您的应用时可能发生该错误。Adjust SDK 源文件包含 categories,因此如果您已经选择此种 SDK 集成方式,则需要添加 -ObjC
flags 至 Xcode 项目设置中的 Other Linker Flags 。添加该 flag 可以解决此错误。
该错误一般发生在安装测试时。单凭卸载和重装应用不足以触发新安装。后端会认定 SDK 丢失了本地会话数据,当此设备信息已被记录时,该信息会被忽略。以确保 sandbox (测试) 环境中的行为与 production (生产) 保持一致。
您可以在测试控制台中重置应用会话数据。要进行该操作,您需要对应应用的编辑或更高等级访问权限。
从测试控制台移除设备后,设备将返回Forgot device
(已遗忘设备)。如果设备已经被遗忘或者值不正确,将返回 Device not found
。
遗忘设备将不会逆转 GDPR forget me (遗忘) 调用。
如果您拥有设备 API 访问权限,可以用该 API 来检视和遗忘设备。
如果您是使用 Xcode 模拟安装场景,就有可能发生这种问题。即便您在 Xcode 重新运行安装模拟,Adjust SDK 中保留的信息也不会被抹除,而是会检测到现有文件,进而不会跟踪新安装。
要重新运行应用安装场景,请进行下列操作:
- 卸载设备上的应用。
- 使用 Adjust 测试控制台遗忘测试设备。
- 在测试设备上运行 Xcode 开发的应用,您将会看到日志信息 "Install tracked"。
Adjust SDK 会按照您在应用中指定的方式跟踪信息,不会对信息做出任何变更,只会将信息发送至 Adjust 后端。然后,Adjust 后端会显示所收到的信息,供您进行数据分析。如果您遇到了数据偏差问题,请检查您的收入跟踪代码。
收入跟踪事件示例:
// ...
- (double)someLogicForGettingRevenueAmount {
// This method somehow handles how user determines
// what's the revenue value which should be tracked.
// It is maybe making some calculations to determine it.
// Or maybe extracting the info from In-App purchase which
// was successfully finished.
// Or maybe returns some predefined double value.
double amount; // double amount = some double value
return amount;
}
// ...
- (void)someRandomMethodInTheApp {
double amount = [self someLogicForGettingRevenueAmount];
ADJEvent *event = [ADJEvent eventWithEventToken:@"abc123"];
[event setRevenue:amount currency:@"EUR"];
[Adjust trackEvent:event];
}
如果您注意到数据偏差,请检查决定收入额所用的逻辑。
Adjust SDK 的大小取决于其被添加至项目的方式。以下为使用受支持安装方法时的预估大小:
- Carthage :2,600 kb
- CocoaPods :600 kb