Airbridge 会向过去 6 个月内执行过至少 1 次 App 事件的用户发送静默推送通知,以检查用户是否已卸载 App。此静默推送通知在每天 UTC 15:00 至 16:00 之间发送。App 卸载事件可在 Airbridge 报告和通过导出原始数据查看。
Airbridge 使用 FCM(Firebase Cloud Messaging)追踪在 Android 环境发生的 App 卸载事件。
为了追踪在 Android 环境中发生的 App 卸载事件,需要在 Airbridge 面板中输入 Firebase 凭证。
请通过以下 3 个步骤从 Google Cloud 控制台获取凭证。
请按照以下步骤创建 App 卸载追踪所需的 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 面板输入凭证。
1. 请在 Airbridge 面板导航至 [设置]>[卸载追踪]。
2. 请在 [Android] 页面上传从 Google Cloud 控制台下载的 JSON 文件。
3. 您可将文件拖放到上传区域或点击上传区域进行文件搜索和上传。
您可以通过测试静默推送通知以检查静默推送通知是否正常发送至设备。请点击 “测试静默推送” 按钮,并输入测试设备的 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 无效,表示根据 Airbridge 的判断,App 已被卸载。App 卸载事件可正常被 Airbridge 收集。 |
QUOTA_EXCEEDED | 429 | 已超过消息目标的发送限制。 |
INTERNAL | 500 | Firebase 服务器出现错误,请稍后再试。若错误继续,请联系 Firebase。 |
UNAVAILABLE | 503 | Firebase 服务器过载,未能及时处理请求。请稍后再试。 |
静默推送通知测试既不监测也不创建实际 App 卸载事件,因此不会影响 Airbridge 面板上的 App 卸载事件数据。因此,无法通过静默推送通知测试在 Airbridge 报告或通过导出原始数据查看是否发生了 App 卸载事件。
为了追踪 App 卸载事件,需要完成 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>
请通过 Airbridge SDK 传递在 FCM 生成的推送 Token。
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);
}
}
可能已经在 FCM 中发放了推送 Token。请添加以下设置,以一并传递现有的推送 Token。
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 (Airbridge.isUninstallTrackingNotification(remoteMessage)) {
return
} else {
// handle notification
}
}
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 (Airbridge.isUninstallTrackingNotification(remoteMessage)) {
return;
} else {
// handle notification
}
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Airbridge.registerPushToken(token);
}
}
在 Airbridge 面板输入凭证并完成 Airbridge SDK 设置后,即可打开 “启用 App 卸载追踪” 切换按钮开始追踪 App 卸载。
有关卸载追踪的更多信息,请参阅 本指南。
Was this page helpful?