Android Uninstall Tracking Setting
<HTMLBlock>{`
<head>
<link rel="alternate" hreflang="en" href="https://developers.airbridge.io/v1.1-en/docs/android-uninstall-tracking" />
<link rel="alternate" hreflang="ko" href="https://developers.airbridge.io/docs/android-sdk-uninstall-tracking" />
</head>
`}</HTMLBlock>
> ๐
>
> Firebase Messaging์ ํตํ ์ฑ ์ญ์ ์ถ์ ์ Airbridge Android SDK `v2.6.0` ์ดํ ๋ฒ์ ๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
> โ๏ธ
>
> Uninstall Tracking Feature๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Firebase ๋ฐ Firebase Cloud Messaging์ ํ์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค.
## ๊ฐ์
Airbridge์์๋ ์ต๊ทผ 6๊ฐ์ ์ด๋ด ๋ฑ๋ก๋ ๊ธฐ๊ธฐ๋ค์ ๋์์ผ๋ก Google์ Firebase Messaging Service๋ฅผ ํตํด ์ฑ์ ์ค์น ์ ๋ฌด๋ฅผ ํ๋จํฉ๋๋ค.
์ฑ ์ญ์ ์ธก์ ๋ฐ์ดํฐ๋ Actuals Report, Raw Data Export ์ฐ๋ ๋ฑ์ ํตํด ๊ณ ๊ฐ์ฌ์ ์ ๊ณต๋์ด ์ง๋๋ค.
## ์ค์
### Firebase ํ๋ก์ ํธ ์์ฑ

[Firebase Console](https://console.firebase.google.com/) ํ์ด์ง๋ก ์ด๋ํ์ฌ ์๋จ์ ํ๋ฉด๊ณผ ๊ฐ์ด ํด๋น ์ฑ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
### Firebase Cloud Messaging ์๋ฒ ํค ๋ฑ๋ก

์์ ์์ฑ๋์ด์ง ํ๋ก์ ํธ๋ก ์ด๋ ํ ์ข์ธก ํจ๋์ `ํ๋ก์ ํธ ์ค์ ` ํ์ด์ง๋ก ์ด๋ ํ์ฌ ์๋จ์ ํ๋ฉด๊ณผ ๊ฐ์ ์์น์์ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
### Firebase Cloud Messaging ์ค์
Firebase Cloud Messaging [๊ณต์ ๋ฌธ์](https://firebase.google.com/docs/cloud-messaging/android/client)๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฑ์ ๊ธฐ๋ณธ ์ค์ ์ ์๋ฃํด ์ฃผ์ธ์.
### Firebase Push Token ์ ์ก
AndroidManifest.xml ์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํด ์ฃผ์ธ์
```xml
<service
android:name="${packageName}.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Firebase Cloud Messaging ์ค์ ์ ํตํด ์์ฑ๋์ด์ง๋ Push Token
์ Airbridge 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 MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
}
override fun onNewToken(token: String) {
super.onNewToken(token)
Airbridge.registerPushToken(token)
}
}
๊ธฐ์กด์ ์ด๋ฏธ Firebase Cloud Messaging Service๋ฅผ ํตํด Push Token
์ด ๋ฐ๊ธ๋์์ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ํจ๊ป ์ถ๊ฐํ์ฌ ๊ธฐ์กด์ ์์ฑ๋ Push Token
๋ ์ ๋ฌํด ์ฃผ์ธ์.
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 MyApplication : Application() {
override fun onCreate() {
super.onCreate()
...
FirebaseMessaging.getInstance()
.token
.addOnSuccessListener {
Airbridge.registerPushToken(it)
}
...
}
}
๋ฐ๋์ ํด๋น ํจ์๊ฐ Airbridge SDK์ ์ด๊ธฐํ ์์ ์ดํ์ ํธ์ถ ๋ ์ ์๋๋ก ์์ฑํด ์ฃผ์ธ์.
์ฑ ์ญ์ ์๋ฆผ์ด ๋ณ๋์ ๋ฐ์ดํฐ ์์ด ์ฌ์ผ๋ฐํธ(Slient) ์๋ฆผ์ผ๋ก ์ ์ก ๋์ง๋ง Firebase Messaging Service์ onMessageReceived
๊ตฌํ์ ๋ฐ๋ผ ํด๋น ์๋ฆผ์ด ์ฌ์ฉ์์๊ฒ ๋
ธ์ถ ๋ ์๋ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ฌ ์ฑ ์ญ์ ์๋ฆผ์ธ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋์ง ์์ ์ ์๋๋ก ์์ธ ์ฒ๋ฆฌํด ์ฃผ์ธ์.
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);
}
}
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)
}
}
Troubleshooting
๋ชจํผ์ด์ค Push SDK Troubleshooting
๋ชจํผ์ด์ค Push SDK Troubleshooting guide: ๋งํฌ
Updated 8 days ago