پرش به مطلب اصلی

مثال‌های پیاده‌سازی

این نمونه‌ها نشان می‌دهند چگونه:

  1. توکن FCM را هنگام ایجاد یا تجدید به AdTrace.setPushToken پاس دهید
  2. Silent push های Adtrace را در صورت ارسال notification های خودتان مدیریت کنید
  3. Firebase را قبل از Adtrace SDK مقداردهی اولیه کنید

اگر notification های push خودتان را ارسال نمی‌کنید، می‌توانید از override کردن onMessageReceived صرف‌نظر کنید و فقط forwarding توکن (onNewToken / دریافت توکن) را پیاده‌سازی کنید.

هشدار

هنگام override کردن onMessageReceived، مدیریت notification های خودتان را خراب نکنید. notification های خود را در foreground پس از هر تغییر آزمایش کنید.

FirebaseMessagingService

AdTrace.setPushToken(token, context) را در onNewToken فراخوانی کنید (و در صورت نیاز هنگام دریافت توکن فعلی). برای payload های silent Adtrace می‌توانید از Util.isAdTraceUninstallDetectionPayload، یا بررسی ساده title / body null توضیح داده شده در تنظیم استفاده کنید.

import io.adtrace.sdk.AdTrace;
import io.adtrace.sdk.Util;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

import java.util.Map;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onCreate() {
super.onCreate();
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(task -> {
if (task.isSuccessful() && task.getResult() != null) {
AdTrace.setPushToken(task.getResult(), getApplicationContext());
}
});
}

@Override
public void onNewToken(String token) {
super.onNewToken(token);
AdTrace.setPushToken(token, getApplicationContext());
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);

if (!remoteMessage.getData().isEmpty()) {
Map<String, String> payload = remoteMessage.getData();
if (Util.isAdTraceUninstallDetectionPayload(payload)) {
// بررسی silent uninstall Adtrace. نیازی به UI نیست.
} else {
// سایر payload های داده خود را اینجا مدیریت کنید
}
}

if (remoteMessage.getNotification() != null) {
// payload notification را اینجا مدیریت کنید
}
}
}

بررسی ساده silent push (بدون کمک‌تابع Util)

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage.getData().get("title") == null
&& remoteMessage.getData().get("body") == null) {
// Silent push
} else {
// مدیریت notification خودتان
}
}

مقداردهی اولیه Firebase قبل از Adtrace

Firebase را در کلاس Application قبل از AdTrace.onCreate() مقداردهی اولیه کنید.

import android.app.Application;
import com.google.firebase.FirebaseApp;
import io.adtrace.sdk.AdTrace;
import io.adtrace.sdk.AdTraceConfig;

public class MyApp extends Application {

@Override
public void onCreate() {
super.onCreate();

FirebaseApp.initializeApp(this);

String appToken = "{YourAppToken}";
String environment = AdTraceConfig.ENVIRONMENT_SANDBOX;
AdTraceConfig config = new AdTraceConfig(this, appToken, environment);
AdTrace.onCreate(config);
}
}

بعدی: آزمایش یکپارچه‌سازی