Airbridge 会向过去 6 个月内执行过至少 1 次 App 事件的用户发送静默推送通知,以检查用户是否已卸载 App。此静默推送通知在每天 UTC 15:00 至 16:00 之间发送。App 卸载事件可在 Airbridge 报告和通过导出原始数据查看。
Airbridge 使用 FCM(Firebase Cloud Messaging)追踪 Android 设备上的 App 卸载情况。
提示
卸载追踪在 Airbridge Android SDK 2.6.0 及以上版本可用。
需要在 Airbridge 面板注册 Firebase 凭证。
请按照以下步骤创建卸载追踪所需的 Google Cloud IAM(Identity and Access Management)自定义角色:
1. 请登录 Google Cloud 控制台,选择要创建自定义角色的项目。
2. 导航至 [IAM 和管理]>[角色],然后点击 “创建角色”。
3. 将角色的名称、ID、角色发布阶段设置为如下:
名称:Airbridge Uninstalls
ID:abr_uninstalls
角色发布阶段:正式版
4. 请点击 “添加权限”。
5. 请在 “输入属性名称或值“ 栏搜索并选择 cloudmessaging.messages.create
,勾选复选框后点击 ”添加“。
6. 点击 “创建” 即可完成创建自定义角色。
请按照以下步骤创建服务账号:
1. 请导航至 [IAM 和管理]>[服务账号],然后点击 “创建服务账号”。
2. 请将服务账号名称设置为 ABR Uninstall Service Account
。请点击 “创建并继续”。
3. 请在 “请选择一个角色” 下拉列表搜索并选择 “Airbridge Uninstalls”, 然后点击 “继续”。
4. 点击 “完成” 即可完成创建服务账号。
请按照以下步骤创建包含凭证的私钥文件:
1. 请导航至 [IAM 和管理]>[服务账号]。在服务账号列表中选择名称为 ABR Uninstall Service Account
的服务账号的电子邮件。
2. 请选择 [密钥] 选项卡,点击 “添加密钥” 后选择 “创建新密钥”。
3. 选择 “JSON” 密钥类型后点击 “创建” 即可下载包含私钥的 JSON 文件。请将此文件保存至安全的位置。
请在 Airbridge 面板导航至 [设置]>[卸载追踪]>[Android],上传从 Google Cloud 控制台下载的 JSON 文件。您可将文件拖放到上传区域或点击上传区域进行文件搜索和上传。
请点击 “测试静默推送” 按钮,以检查静默推送通知是否正常发送至设备。点击按钮后,您需要输入测试设备的 FCM 注册 Token。有关获取 FCM 注册 Token 的方法,请参阅 Firebase 文档。
当静默推送通知成功发送至测试设备时,您可以查看成功消息。对于已卸载 App 的测试设备,可以查看 404 错误代码。
可以通过 Android 静默推送测试查看的主要错误代码如下。有关错误代码的更多信息,请参阅 Firebase 文档。
错误代码 | HTTP 状态码 | 含义 |
---|---|---|
INVALID_ARGUMENT | 400 | 请求参数无效,请检查包名称等信息是否输入正确。 |
THIRD_PARTY_AUTH_ERROR | 401 | APNs 证书或 Web 推送 Auth key 无效或丢失。请检查凭证。 |
SENDER_ID_MISMATCH | 403 | 认证的发送者 ID 与注册 Token 的发送者 ID 不一致。请检查发送者 ID。 |
UNREGISTERED | 404 | 注册 Token 无效,表示 App 已被卸载。卸载事件将成功被 Airbridge 收集。 |
QUOTA_EXCEEDED | 429 | 已超过消息目标的发送限制。 |
INTERNAL | 500 | Firebase 服务器出现错误,请稍后再试。若错误继续,请联系 Firebase。 |
UNAVAILABLE | 503 | Firebase 服务器过载,未能及时处理请求。请稍后再试。 |
静默推送测试既不监测也不创建实际卸载事件,因此不会影响 Airbridge 面板上的卸载事件数据。
1. 为了追踪在 Android 发生的卸载事件,需要设置 Airbridge SDK。请在 AndroidManifest.xml
添加以下代码:
<service
android:name="${packageName}.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
2. 请将在 FCM 生成的推送 Token 通过 Airbridge SDK 传递至 Airbridge。
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
}
override fun onNewToken(token: String) {
super.onNewToken(token)
Airbridge.registerPushToken(token)
}
}
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Airbridge.registerPushToken(token);
}
}
3. 可能已经在 FCM 中发放了推送 Token。请添加以下设置,将现有的推送 Token 也传递至 Airbridge:
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
...
FirebaseMessaging.getInstance()
.token
.addOnSuccessListener {
Airbridge.registerPushToken(it)
}
...
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseMessaging.getInstance()
.getToken()
.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String token) {
Airbridge.registerPushToken(token);
}
});
}
}
注意
请确保在 Airbridge SDK 初始化操作之后调用此函数。
静默推送通知会以不含额外数据的静默通知形式发送。然而,根据 FCM 的 onMessageReceived
实现方式,静默推送通知可能会显示给用户。请添加以下异常处理代码,防止静默推送通知显示给用户:
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
if (remoteMessage.data.containsKey("airbridge-uninstall-tracking")) {
return
} else {
// handleNotification(remoteMessage)
}
}
override fun onNewToken(token: String) {
super.onNewToken(token)
Airbridge.registerPushToken(token)
}
}
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage.getData().containsKey("airbridge-uninstall-tracking")) {
return;
} else {
// handleNotification(remoteMessage);
}
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Airbridge.registerPushToken(token);
}
}
在 Airbridge 面板注册凭证并完成 Airbridge SDK 设置后,即可打开 “启用 App 卸载追踪” 切换按钮开始追踪卸载。有关卸载追踪的更多信息,请参阅 本指南。
Was this page helpful?