Android Uninstall Tracking Setting
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 ํ์ด์ง๋ก ์ด๋ํ์ฌ ์๋จ์ ํ๋ฉด๊ณผ ๊ฐ์ด ํด๋น ์ฑ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
Firebase Cloud Messaging ์๋ฒ ํค ๋ฑ๋ก
์์ ์์ฑ๋์ด์ง ํ๋ก์ ํธ๋ก ์ด๋ ํ ์ข์ธก ํจ๋์ ํ๋ก์ ํธ ์ค์
ํ์ด์ง๋ก ์ด๋ ํ์ฌ ์๋จ์ ํ๋ฉด๊ณผ ๊ฐ์ ์์น์์ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
Firebase Cloud Messaging ์ค์
Firebase Cloud Messaging ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฑ์ ๊ธฐ๋ณธ ์ค์ ์ ์๋ฃํด ์ฃผ์ธ์.
Firebase Push Token ์ ์ก
AndroidManifest.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 over 1 year ago