FCMを使用して、アプリのユーザーに通知を送信します。 また、Firebase Analyticsを使用して、アプリの動作に関するフィードバックを得ることもできます。FCMはすべてのトピックのサブスクライバに通知を送信しません(データ通知)
私は、デフォルトのアクティビティを開始するときに特定のトピックにサブスクライブするアプリを持っています。つまり、基本的に少なくとも1回はアプリを起動したすべてのユーザーがトピックのサブスクライバです。 firebase分析から、私は過去30日間のイベントログで21374 first_openを見ることができます。 この金額は、「アクティブユーザー」のダッシュボードにも表示されます。
したがって、基本的には少なくとも21,000人のサブスクライバがトピックに対応しているはずです。
私は昨日このトピックに通知を出しました。 データ通知ですので、アプリのバックグラウンド/フォアグラウンド/未開始の状態に問題はありません。
onMessageReceivedメソッドでは、firebase分析でイベントを記録します。そして、明らかに、のユーザーだけが、という通知を受け取りました。
加入者数と通知が効果的にユーザーにプッシュされる理由については、どのように説明できますか?
リンクすることができますいくつかの要素:
アプリは3日前にストアに更新されました。そのため、ユーザーは新しいバージョンのアプリを起動していない可能性があります。しかし、更新は、以前のバージョンですでに購読しているトピックを削除すべきではありません。 これを確認するためにいくつかのテストを実行しましたが、アップデートでは以前のバージョンで購読されたトピックは削除されません(アプリケーションが最初にアンインストールされていない限り)。 これは、この問題の理由であってはなりません。
GooglePlayServices/Firebaseパッケージの新しいバージョン(9.2から10.0.1へ)でアップデートされました GooglePlayServices/Firebaseパッケージの古いバージョンで購読しているすべてのトピックを削除しますか?
加入者との間のこのような違いにつながることができ、他の理由があるが&通知配信回数を数えますか? 、
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int success = googleApiAvailability.isGooglePlayServicesAvailable(this);
if(success != ConnectionResult.SUCCESS) {
googleApiAvailability.makeGooglePlayServicesAvailable(this);
}
FirebaseMessaging.getInstance().subscribeToTopic("mytopic");
環境モバイルに関連+着用される使用のGoogle Play Servicesのバージョン:
@Bobはスナイダー
はここでGoogleがサービスのバージョンを再生するために私がチェックする方法です多くのユーザーがGooglePlayServiceのバージョンを更新するのが難しいため、一般に最新バージョンよりも低いバージョンを使用し、必要な場合にのみ更新します。
@Jorgesys
私FirebaseMessagingServiceは実際には非常に簡単です:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Logger.d("From: " + remoteMessage.getFrom());
MyFirebaseAnalytics mAnalytics = new MyFirebaseAnalytics(this);
mAnalytics.logEvent("notif", "reception");
Map<String, String> data = remoteMessage.getData();
// Check if message contains a data payload.
if (data.size() > 0) {
Logger.d("Message data payload: " + data);
}
LogEventメソッドがFirebase上のイベントをログに記録するものです。
アプリを削除したなど実際のカウントで最新ではないでしょうか? –
Firebase分析は7.8k app_removeを報告しますので、それは問題ではありません。 7.8kアプリが削除されたのは、前月にアプリをインストールしたユーザーの一部である可能性があります。 まだ1万人を超えるユーザーがいません(21k - 7.8k削除 - 2.9k受信) –
"データ通知"と言えば、メッセージに[データペイロードと通知ペイロード](https:// firebase)があることを意味しますか? google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages)? –