Airbridge 会向过去 6 个月内执行过至少 1 次 App 事件的用户发送静默推送通知,以检查用户是否已卸载 App。此静默推送通知在每天 UTC 15:00 至 16:00 之间发送。App 卸载事件可在 Airbridge 报告和通过导出原始数据查看。
提示
卸载追踪在 Airbridge iOS SDK 1.13.0 及以上版本可用。
需要在 Airbridge 面板注册 Apple Developer 凭证。
请在 Apple Developer 获取 4 项凭证:
为了获取 APNs(Apple Push Notification service)Auth Key,请首先在 Apple Developer 开启 App 的推送通知。
请在 Apple Developer 点击 [Identifiers]。
请搜索并点击要追踪的 App,勾选 “Push Notification”。
请在 Apple Developer 点击 [Keys],然后点击 “+” 按钮创建并下载 APNs Auth Key(p8)。
APNs Auth Key(p8)只能在创建时下载,无法重复下载。若丢失,需重新生成。
每次最多可创建 2 个 APNs Auth Key。
您可在 [Keys] 中点击已创建的 APNs Auth Key 以获取 Key ID。
请在 Apple Developer 点击 [Certificates, Identifiers & Profiles]>[Identifiers],搜索并点击要追踪的 App,即可获取该 App 的 Bundle ID。
Team ID (App ID Prefix) 可在 Apple Developer 的 [Account]>[Membership details] 获取。
请在 Airbridge 面板导航至 [设置]>[卸载追踪]>[iOS App 卸载追踪],注册从 Apple Developer 获取的所有凭证。
在 Airbridge 面板完成所有凭证的注册后,请选择要收集推送 Token 的 App 环境。根据所选 App 环境,收集的推送 Token 将不同。例如,在 “生产” 环境中收集的推送 Token 无法在 “开发” 环境中使用。
支持的 App:在 App Store 上发布的 App 以及通过 TestFlight、Ad Hoc、或 Enterprise 发布的测试版 App
收集的推送 Token:用于卸载追踪的实际推送 Token
支持的 App:“生产” 不支持的测试版 App
收集的推送 Token:在开发环境中使用的推送 Token
“开发” 仅支持静默推送通知测试。请使用 “生产” 追踪实际卸载。
您可通过点击 “测试静默推送” 按钮,检查静默推送通知是否根据已注册的凭证成功发送至设备。静默推送测试既不监测也不创建实际卸载事件,因此 Airbridge 面板上不会显示任何卸载事件。
此外,卸载追踪所需的 Bundle ID 只能通过静默推送测试来验证其有效性,因此,建议进行静默推送测试。
为了进行静默推送测试,需要 APNs 推送 Token(Device Token)。由于根据 App 环境收集的推送 Token 不同,在进行静默推送测试之前,需要确认推送 Token 和 App 环境。有关确认 APNs 推送 Token 的方法,请参阅 Apple Developer 文档。
当 Airbridge 向设备发送静默推送通知时,您可以查看成功消息或错误代码。可以通过 iOS 静默推送测试查看的主要错误代码如下。有关错误代码的更多信息,请参阅 Apple Developer 文档。
错误代码 | 含义 |
---|---|
403 (InvalidProviderToken) | APNs 凭证无效。请注册有效的 Key ID 或 Team ID 后重试。 |
400 (TopicDisallowed) | Bundle ID 无效。请注册有效的 Bundle ID 后重试。 |
400 (BadDeviceToken) | 推送 Token 无效。请检查测试 App 和 App 环境设置是否匹配。 |
410 (Unregistered) | 推送 Token 无效。请检查测试 App 和 App 环境是否匹配。另外,用户可能在几天前已经卸载了测试 App。 |
410 (ExpiredToken) | 推送 Token 无效。请检查测试 App 和 App 环境是否匹配。另外,用户可能在几天前已经卸载了测试 App。 |
部分表示 App 已被卸载的错误代码在静默推送通知成功追踪到卸载事件时也会出现。然而,这会导致无法分辨静默推送测试是否成功,从而削弱测试的目的。因此,为确保测试有效,请使用最近 10 天内未卸载测试 App 的设备进行静默推送测试。
注意
iOS Simulator 无法进行静默推送测试。
为了追踪在 iOS 发生的卸载事件,需要设置 Identifier 并添加 Capabilities,以确保静默推送通知在 App 内正常工作。此外,需要添加代码,使 App 忽略此静默推送通知。
1. 请在 Xcode 导航至 [Project file]>[Signing & Capabilities]。
2. 请点击 “+ Capability” 并选择 “Push Notifications”。然后,请选择 “Background Modes” 后勾选 “Remote Notification”。
您可以通过调用 registerForRemoteNotifications
函数在 App 使用推送通知。如果尚未使用推送通知,请调用该函数。
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
{
...
UIApplication.shared.registerForRemoteNotifications()
...
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UIApplication.sharedApplication registerForRemoteNotifications];
return YES;
}
设置完成后,每次发送推送通知(包括静默推送通知)时,application(_:didFinishLaunchingWithOptions:)
函数会被调用。如果发送的是静默推送通知,App 在后台(Background)启用后会调用此函数。由于 App 已处于启用状态,App 进入前台(Foreground)时将不会重新调用此函数。
您可以通过 launchOption
检查 application(_:didFinishLaunchingWithOptions:)
函数是否已被调用。请参见以下代码:
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let key = UIApplication.LaunchOptionsKey.remoteNotification
let isLaunchRemoteNotification: Bool = launchOptions?[key] != nil
}
通过调用 registerPushToken
函数,将创建的 APNs 推送 Token 传递给 SDK。
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
AirBridge.registerPushToken(deviceToken)
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[AirBridge registerPushToken:deviceToken];
}
为了卸载追踪发送的静默推送通知不应该在 App 中显示给用户。为了使 App 忽略此静默推送通知,请参见以下代码设置:
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
if userInfo["airbridge-uninstall-tracking"] as? Bool == true {
return;
}
...
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if ([userInfo[@"airbridge-uninstall-tracking"] boolValue] == YES) {
return;
}
...
}
在 Airbridge 面板注册凭证并完成 Airbridge SDK 设置后,即可打开 “启用 App 卸载追踪” 切换按钮开始追踪卸载。有关卸载追踪的更多信息,请参阅 本指南。
Was this page helpful?