如何测试 Singular SDK 集成

文档

在将 Singular SDK 集成到应用程序或构建服务器到服务器集成后,必须在新版本上线前验证 Singular 是否能接收数据。

开发人员指南 开发人员指南
前提条件
  • 实施 Singular SDK 或为应用程序设置服务器到服务器(S2S)集成。
  • 如果计划使用测试控制台,请确保有移动设备用于测试。

Singular 提供三种主要工具用于测试集成:

  • 测试控制台:在实施过程中实时测试功能。
  • 导出日志:下载至少延迟一小时的用户级数据。
  • 审计报告:自动识别集成中的任何问题。

使用测试控制台

通过添加和选择测试设备,测试控制台可让您流式传输实时数据。请注意,它不提供历史报告。要开始使用,请确保具备以下条件:

  • 干净的测试设备:使用从未安装过测试应用程序的设备。
  • 要测试的事件和属性列表:准备好计划验证的事件和属性。
  • 对于 iOS:注意是否会出现 App Tracking Transparency (ATT) 提示,因为这将决定您是使用 IDFV 还是 IDFA 标识符进行测试。

1

添加测试设备

向测试控制台添加设备:

  1. 在 Singular 平台中,转到 "开发工具" > "测试控制台"。
  2. 单击添加设备

  3. 提供设备类型。对于 Android 设备,如果可用,我们建议依次使用Google Advertising ID(GAID/aifa)、AppSetID(asid) 或AndroidID(andi)。对于 iOS 设备,如果可用,我们建议使用IDFA
  4. 提供设备 ID

    捕获设备 ID

    对于 Android 设备,我们建议使用谷歌广告 ID(GAID/aifa)。Singular 设备辅助应用程序(Android)可以帮助您找到它。

    启用 Singular 配置日志记录后,还可以在 Android LogCat 中找到 aifa。

    SingularConfig config = new SingularConfig(SdkKey, SdkSecret)
    .withLoggingEnabled()
    .withLogLevel(1);

    LogCat 输出示例:

    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - andi : 8868adc2f7ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - asid : 12dc3652-5e46-f2bb-a93a-b3c092ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - aifa : 3bbc76b0-cebb-4a9f-b6ec-10ca1affffff

    对于 iOS,当 ATT 框架到位且允许跟踪时,可以使用IDFA。确保也执行了 "等待跟踪授权,超时间隔"。对于所有其他情况,请使用IDFV

    可以使用下列方法之一捕获IDFA

    • 使用 App Store 中的 Singular Device Assist 应用程序(iOS)。确保授予跟踪权限。
    • 在 Xcode 调试控制台中记录 IDFA
    //Example in Swift
    print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)
                    
    //Example in Objective-C
    NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    NSLog(@"IDFA: %@", IDFA);

    可以在 Xcode 的调试控制台中捕获IDFV

    //Example in Swift
    print("IDFV", UIDevice.current.identifierForVendor!.uuidString)
                    
    //Example in Objective-C
    NSString *IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    NSLog(@"IDFV: %@", IDFV);
  5. 添加一个独特的设备名称 ,然后单击 "保存设备 "

    tc_01.png

2

测试初始化

首先要测试的是您的 SDK 集成是否初始化成功,是否能够向 Singular 发送信息(即您要查找的事件称为:session)。这样,Singular 就可以开始跟踪此应用程序的属性!

测试初始化

  1. 在 "事件日志"中,从 "设备"下拉菜单中选择你的设备名称。查找 🟢Live指示器。

  2. 从测试平台初始化应用程序/打开应用程序。
  3. 当你看到会话事件时,说明你已经成功初始化了 Singular SDK。

    tc_02.png

如何在测试控制台中阅读事件日志?

注册设备并发送一些事件后,事件就会开始出现在测试控制台页面的事件日志中。

tc_04.png

单击一行可显示应用程序发送的事件的全部详细信息。

events_details.png

为什么测试控制台事件日志中没有显示任何事件?

如果您已经注册了一个测试设备,并按照指南测试 SDK 集成,但事件日志中没有显示任何行,请仔细检查以下内容:

  • 测试控制台只显示实时事件,即当您在页面上选定设备并显示 🟢 实时指示器时。 它不会查找设备的历史事件。如果在选择设备前触发事件,控制台中将不会显示。
  • 确保在测试设备上打开了应用程序(查看用户会话)。
  • 确保创建了一些应用内事件(如果要测试事件)。
  • 仔细检查是否输入了正确的设备 ID
  • 仔细检查是否使用了正确的设备 ID 类型(对于 iOS,如果没有看到 ATT 提示,则不能使用 IDFA)

使用 Singular SDK 12.0.0 及以上版本测试应用程序时,为什么缺少_InstallReferrer事件?

从 Singular SDK 12.0.0 开始,您不需要测试_InstallReferrer事件。一旦您的应用程序被推送到商店,我们的 SDK 就会将 _InstallReferrer 数据放到第一个会话中。您只需查看会话是否出现在测试控制台中即可。

如果您使用的是旧版本的 Android SDK,您仍然需要在测试控制台中检查 _InstallReferrer 事件。

如何从控制台删除/移除设备

删除设备

要从跟踪列表中删除设备,请单击 "编辑 "图标,然后在出现的架子上单击 "删除设备"。这将清除页面上的所有事件日志,Singular 也将删除有关设备属性的内部数据。

另请参阅:如何重置设备并清除其归属信息,以便再次使用它来测试安装归属?

如何重置设备并清除其归属信息,以便再次使用它来测试安装归属?

如果您想用同一台设备重新测试 SDK 集成,除了在 Singular 平台中清除设备的归属信息外,还必须删除设备上所有本地缓存数据。

安卓设备的步骤

  1. 关闭应用程序并确认其未在运行(如果有选项,请使用"设置 "菜单中的" 强制停止")。
  2. 点击通知窗口或 "应用程序 "菜单中的滚轮图标,进入 "设置 "菜单。
  3. 进入 "应用程序",选择要测试的应用程序,长按该应用程序并选择 "应用程序信息"
  4. 选择 "存储",然后选择 "清除缓存"和"清除数据"。
  5. 在 Singular Testing Console 中,从下拉菜单中选择设备,然后单击编辑(铅笔)图标。在打开的架子上,单击 "删除设备",让我们的系统删除此设备属性。

    device_dropdown.png

    device_delete.png

iOS 设备的步骤

  1. 关闭应用程序,然后卸载。
  2. 打开 "测试控制台",在下拉菜单中找到您的设备,然后单击 "编辑 "图标。在打开的架子上,单击 "删除设备",让我们的系统删除此设备属性。

提示:使用重新激活不活动窗口进行测试

不活动窗口是一项设置,它决定了用户必须不活动多长时间才有资格获得重新吸引归因。如果您要在启动营销活动前测试重新吸引归因,不活跃窗口会增加您的难度。这就是为什么测试设备(已添加到测试控制台并启用眼睛图标的设备)受不活动窗口限制的原因。

我正在使用 IDFA 进行测试,但 iOS 无法显示在测试控制台中。我该怎么办?

仔细检查 IDFA 是否正确。有几种方法可以做到这一点:

  • 使用 Singular 使用 App Store 中的Singular Device Assist 应用程序(iOS)。确保授予跟踪权限。
  • Xcode 调试控制台 中记录 IDFA
  • 如果您已经在一个多小时前进行了测试,您可以转到导出日志,查看是否捕获了任何事件。您可以从导出日志中提取 IDFA/IDFV。从导出日志中提取时,请尝试在报告中添加 "应用程序跟踪透明度状态"。0 - 未确定,表示 ATT 提示未显示(通常是因为常规设置阻止了它或超时)。更多信息请点击此处

其他可以检查的事项

  1. 检查设备设置:确保设备的广告标识符 (IDFA) 未被限制。进入设备上的 "设置隐私跟踪",确保已启用 "允许应用程序请求跟踪 "选项。确保在测试时看到 ATT 提示。如果没有看到,则说明我们没有跟踪 IDFA。
  2. 重置广告标识符:如果设备以前曾用于测试,请重置广告标识符。转到 "设置 "隐私跟踪并重置 IDFA。
  3. 正确执行:确认 Singular SDK 已正确集成到您的应用程序中,并且您使用的是最新版本的 SDK。
  4. 等待数据出现:数据出现在测试控制台的时间不应该有延迟。如果等待时间超过一分钟,说明某些设置不正确。
  5. 检查 SDK 初始化:确认 Singular SDK 在应用程序代码中的初始化是否正确,尤其是在 AppDelegate 或 SceneDelegate 中,具体取决于应用程序的架构。
  6. 检查错误:在 Xcode 控制台中查找任何可能表明 SDK 初始化或事件跟踪问题的错误。

如果您已经按照上述步骤进行了操作,但问题仍然存在,则可能需要查看详细的集成指南,或向 Singular 集成工程师寻求进一步帮助。

3

测试特定功能

测试自定义用户 ID

如果您的 SDK 集成向 Singular 发送了自定义用户 ID,以下是测试方法。

  1. 在测试控制台注册设备。
  2. 打开应用程序。
  3. 如果需要,在应用程序中触发一个发送用户 ID 的动作(如登录)。操作的性质取决于您的实现。
  4. 在发送到 Singular 的下一个事件中,展开测试控制台中的事件详细信息,检查详细信息中是否包含 "custom_user_id "值。

    customUserID.png

如果用户 ID 未显示:

  • 检查应用程序中设置用户 ID 的方法是否按照你的要求被调用。
  • 您可能需要添加一个 Singular SDK 事件并将其称为 "设置自定义用户 ID",这样该事件就会显示在测试控制台中。
测试事件

如果您已经在 SDK 集成中实施了事件跟踪或收入跟踪,请按照以下说明进行测试。

有关事件的更多信息,请参阅

对于您在 SDK 集成中实施的每个事件:

  1. 从应用程序触发事件,并检查它是否以您为事件起的名称出现在测试控制台日志中。

    Events.png

  2. 如果您要随事件发送任何附加数据,请单击测试控制台中的事件行以展开事件详细信息,并确保数据包含在"事件数据"中。

    EventData.png

如果事件未显示,则可能是在设备完全注册到测试控制台之前打开了应用程序。检查事件的导出日志

测试收入

对于您在 SDK 集成中实施的每种类型的收入事件:

  1. 在应用程序中触发收入事件并检查事件日志。应该会出现一行事件名称。

    注意: 如果您没有给事件自定义名称,它将收到收入事件的默认名称"__iap__"。

  2. 单击该行展开,确保已收到货币("pcc")、金额("r")和事件的其他详细信息。

    revenue.png

测试深度链接

如果您已在 SDK 集成中实施了深度链接,请按照以下说明测试您的深度链接功能。

注意: 本文假定您的组织正在使用 Singular Links

1.设置测试目的地

在 Singular 平台中,进入 "设置">"应用程序",找到应用程序并添加深度链接目的地。

目的地应是 SDK 集成中的处理程序代码可以识别和处理的深度链接目的地之一。

 test12.png

2.创建测试链接

既然有了要链接的目的地,就可以创建深度链接了。

  1. 转到 "属性">"管理链接",然后从侧边栏中选择应用程序。
  2. 单击 "创建链接"。
  3. 链接类型下选择 "自定义源",在源名称 下选择 "电子邮件"。
  4. 为链接命名。
  5. 单击 "链接设置和重定向"部分展开。
  6. 在 "深度链接"下拉列表中选择刚刚创建的目的地。
  7. 在 "其他平台的后备目标 "文本框中输入网站 URL。
  8. 单击生成并从点击跟踪链接字段中复制链接

     test13.gif

3.测试链接

要测试链接,请

  1. 确保应用程序已安装在测试设备上。
  2. 将复制的链接通过电子邮件发送到测试设备。
  3. 在设备上打开电子邮件并点击链接。应用程序应打开并显示预定的页面或内容。
  4. 如果您在测试过程中使用 SDK 测试控制台,则应在会话参数中看到深度链接:

    deeplink.png

测试链接的其他方法(仅限 Android):

使用ADB(Android 调试桥)测试 Android 深度链接是验证应用程序是否正确处理深度链接的常用方法。以下是如何设置和使用 ADB 进行深度链接测试的分步指南:

先决条件

  • 安装 ADB:确保已安装 ADB。它包含在 Android SDK 平台工具中,可从 Android 开发者网站下载。
  • 启用开发人员选项:在 Android 设备上,启用 "开发人员选项 "和 USB 调试。
  • 进入"设置" >"关于手机 ",点击Build 编号七次,启用 "开发者选项"。
  • 转到"设置">"开发人员选项 ",然后启用 USB 调试
  • 连接设备:通过 USB 将 Android 设备连接到电脑。运行 ADB,确保它能被识别:

    在电脑终端运行

    adb devices

    此命令应能列出设备。

使用 ADB 测试深度链接

  • 使用 ADB 发送深度链接:要测试深度链接,请使用adb shell am start命令。该命令模拟在浏览器或其他应用程序中点击深度链接。

    一般语法如下

    adb shell am start -W -a android.intent.action.VIEW -d "your_deep_link_url"
  • 从电脑终端触发链接:

    adb shell am start -W -a android.intent.action.VIEW -d "https://seteam.sng.link/Bnuq6/i428?_dl=androidkotlinapplication%3A%2F%2Fmy_deeplink"

故障排除

"当我的应用程序已在运行时,深层链接会打开应用程序的新实例,而不是切换到现有实例。要避免这种情况,请编辑清单文件并在活动中添加以下内容:

android:launchMode="singleTask"

有关 launchMode 选项的更多信息,请参阅Google 的 <activity> 文档

测试延迟深度链接

确认是否启用了延迟深度链接

  1. 检查测试控制台中的会话事件。

    ddlEnabled.png

  2. 按照上述测试深度链接中的说明设置测试目的地和链接。
  3. 从测试设备上卸载应用程序。
  4. 重置设备广告标识符。
  5. 将新标识符添加到测试控制台。
  6. 通过电子邮件将深度链接发送到设备,然后点击链接。

  7. 链接将带您进入应用商店。注意: 如果您在本地构建上进行测试,请不要安装商店版本,而是从 Android Studio 或 Xcode 侧载入应用程序。安装并打开应用程序后,您应该会看到所需的页面或内容。

  8. 如果使用 SDK 控制台进行测试,则应在第一个会话事件中找到延迟的深度链接值
    deferreddeeplink.png

测试卸载跟踪

如果您已经在 SDK 集成中实现了卸载跟踪功能,请按照以下说明进行测试。

卸载跟踪测试比其他 SDK 功能测试更复杂,因为 Singular 依赖 Google/iOS 服务来报告卸载情况,而这一过程需要一些时间。你无法在 Singular 平台上实时看到卸载事件,也无法使用测试控制台。

测试前,请确保已向 Singular 发送 FCM/APNS 令牌(请参阅《Android SDK:跟踪卸载》和《iOS SDK:跟踪卸载》)。

此外,请仔细检查是否在应用程序配置页面输入了FCM 服务器密钥(Android)或iOS 推送证书

测试卸载跟踪:

  1. 使用真实设备(而不是模拟器),在设备上安装应用程序。
  2. 打开应用程序,以便注册安装。
  3. 卸载应用程序。
  4. 要检查 Singular 是否收到卸载事件,您有以下几种选择:

    • 导出属性日志(事件日志)并找到卸载事件。可能需要几天时间才能在日志中显示。
    • 如果设置了向内部 BI 系统发送回传,则可以收到有关卸载的回传。
    • 您可以联系 Singular 支持或客户成功经理,帮助您验证卸载跟踪。

注意: 在等待验证卸载事件期间,不要重置设备 ID,也不要重新安装应用程序。

注意:测试控制台不支持 iOS TestFlight 应用程序。TestFlight 构建会在每次启动应用程序时重置 IDFV,因此无法捕获实时事件。

使用导出日志

您还可以使用 "属性">"导出 日志"来验证延迟测试结果。导出日志功能允许您手动下载用户级数据,如转换(安装)、事件等。

最佳实践:

  • 获取数据前,请仔细检查日期、应用程序和站点是否选择正确。
  • 导出日志中的数据滞后约 3 个小时。
  • 如需更多帮助,请参阅常见问题

运行 SDK 审计

Singular 提供 SDK 审计报告,用于测试 SDK 和 S2S 集成是否正确实施。审核报告会列出发现的所有问题,并提供解决问题的提示。要使用 SDK 审核报告

1

运行 SDK 审核报告

转到 "开发人员工具">"测试控制台",然后单击右上角的 "运行审核"

tc_03.png

2

下载报告并修复相关问题

报告运行完成后,您可以下载 CSV 格式的报告。

该报告列出了在 SDK 和 S2S 集成中发现的问题。并非所有问题都是关键或相关的,这取决于您实施了哪些功能。

查看报告中的问题,并根据错误描述字段中的提示进行修复。

对于警告/信息类型的问题:检查 "验证名称",看看这是否是您选择不实施的可选 SDK 功能,如延迟深度链接 (DDL)。如果是,则可以忽略错误信息。

SDK 审计是如何工作的,在什么数据上运行?

SDK 审计会查看最近 3 天内从应用程序接收到的数据。它会检查数据是否符合预期,例如

  • 应用程序是否报告用户会话(这是 SDK/S2S 集成的最基本功能,也是 Singular 跟踪归因的基础)
  • 应用程序是否报告应用内事件和收入
  • 是否使用最佳实践报告收入
  • 是否启用了延迟深度链接
如何阅读 SDK 审计报告?

 Screen_Shot_2021-11-11_at_18.28.27.png

该报告列出了在 SDK 和 S2S 集成中发现的问题

说明
应用程序名称 在 Singular 中配置的应用程序名称。
应用程序捆绑包 在 Singular 中配置的应用程序捆绑包,例如 com.example.appname。
平台 iOS、Android 或 Amazon。
应用程序版本 应用程序版本号(如果有)。
验证名称 发现问题的集成区域,如 "自定义用户 ID "或 "收入事件"。
类型

问题的严重程度:

  • 错误: 该问题会导致集成无法运行,您必须在应用程序上线前解决该问题。例如,Singular 无法从应用程序中接收用户会话。没有用户会话,我们就无法执行归因。
  • 警告:如果您想遵循最佳实践并从 Singular 归因追踪器中获得最大收益,您应该修复它。例如,您的应用程序没有发送自定义用户 ID。自定义用户 ID 是可选功能,但强烈建议使用。
  • 信息: 此问题涉及您可能选择不在集成中实施的可选功能。例如,您的应用程序未启用延迟深度链接 (DDL)。DDL 可能与您的营销策略无关。
错误描述 有关该问题的更多信息以及修复方法。