Note
Firebase Cloud Messaging(FCM)を使ったアプリのアンインストールトラッキングはAirbridge Android SDK
v2.6.0
以降のバージョンから利用できます。
Attention
アンインストールトラッキングのフィーチャーを使うためには、Firebase及びFirebase Cloud Messagingを使うことが必須です。
Airbridgeでは直近6カ月以内に登録されたデバイスを対象に、GoogleのFCMサービスを使ってアプリのインストール状況を判断します。
アプリのアンインストール計測データはActuals Report、Raw Data Exportの連携などの方法で広告主の方に提供されます。
Firebase Consoleのページに移動し、上の画面のようにアプリのプロジェクトを作成します。
上記で作成したプロジェクトに移動し、左のパネルのプロジェクト設定ページに移動します。上の画面のように確認できます。
앞서 생성되어진 프로젝트로 이동 후 좌측 패널의 프로젝트 설정
페이지로 이동 하여 상단의 화면과 같은 위치에서 확인이 가능합니다.
FCMの公式ドキュメントを参考に、アプリの基本設定を完了してください。
AndroidManifest.xml
に以下のように追加してください。
<service
android:name="${packageName}.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
FCMの設定によって生成されたプッシュトークン
をAirbridge SDKを通じて以下のように渡してください。
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サービスからプッシュトークンが発行されている可能性があります。
以下のような設定を追加し、既存で生成されたプッシュトークン
も一緒に送信してください。
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);
}
});
}
}
Attention
この関数は必ずAirbridge SDKの初期化作業の後に呼び出されるように作成してください。
アプリアンインストールの通知は別途データなしでサイレント(Silent)通知で送られますが、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);
}
}
MorpheusプッシュSDKのトラブルシューティングガイド: 追って提供する予定です。
このページは役に立ちましたか?
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);
}
}
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);
}
});
}
}
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);
}
}