Firebase Cloud Messagingを使用してAndroidプッシュ通知を送信する

著者: Louise Ward
作成日: 4 2月 2021
更新日: 1 J 2024
Anonim
Firebase CloudMessagingを使用したAndroid通知
ビデオ: Firebase CloudMessagingを使用したAndroid通知

コンテンツ


このチュートリアルの範囲外ですが、クライアントアプリケーションからFCMを受信するアップストリーム通知にFCMを使用したり、ダウンロード可能な新しいデータがある場合にアプリに通知したりすることもできます。このようにして、アプリサーバーとクライアントアプリ間の通信が必要な場合にのみ行われるようにすることができます。これは、クライアントアプリが定期的にサーバーに接続するよりもはるかに効率的です。

FCMはFirebaseの一部であるため、他のFirebaseサービスともうまく機能します。 FCMの基本をマスターしたら、A / Bテストを使用して最も効果的な通知を特定するか、Firebase Predictionsを使用して強力な機械学習をさまざまなFCMキャンペーンから生成されたすべての分析データに適用できます。

FCMは2種類のをサポートしています:

  • 通知 クライアントアプリケーションは、FCMを受信したときにバックグラウンドであるかフォアグラウンドであるかによって動作が異なります。アプリがバックグラウンドにある場合、Firebase SDKは自動的にそれを処理し、デバイスのシステムトレイに通知として表示します。 Androidシステムが通知を作成するため、これはプッシュ通知をユーザーに送信する最も簡単な方法の1つです。アプリがFCMをフォアグラウンドで受信した場合、システムは しません この通知を自動的に処理し、アプリのonReceived()コールバックでの処理を許可します。このチュートリアルの後半でonReceived()を検討しますが、現時点では、アプリがフォアグラウンドでしばらく受信した場合、デフォルトではユーザーに表示されないことに注意してください。
  • データ 通知とは異なり、データを使用して、カスタムデータ要素をクライアントアプリケーションに送信できます。ただし、FCMはこれらのデータに4KBの制限を設けているため、ペイロードが4KBを超える場合は、WorkManagerまたはJobScheduler APIを使用して追加データを取得する必要があります。

このチュートリアルでは、通知に焦点を当てます。


Google Cloud Messagingはどうですか?

Google Cloud Messaging(GCM)サーバーとクライアントAPIを使用している場合、いくつかの悪いニュースがあります。このサービスは既に廃止されており、Googleは2019年4月に「ほとんど」のGCMサービスをオフにする予定です。 GCMを使用している場合は、今すぐプロジェクトをFCMに移行し始め、2019年4月までに移行を完了する必要があります。

FirebaseをAndroidプロジェクトに追加する

アプリに基本的なFCMサポートを簡単に追加し、それを使用してプッシュ通知をユーザーに送信するのがいかに簡単かを見てみましょう。

FCMはFirebaseサービスであるため、Firebaseをアプリに追加する必要があります。

  • Firebase Consoleに移動します。
  • 「プロジェクトを追加」を選択し、プロジェクトに名前を付けます。
  • 利用規約をお読みください。続行する場合は、[同意します]を選択し、[プロジェクトを作成]を選択します。
  • 「FirebaseをAndroidアプリに追加」を選択します。
  • プロジェクトのパッケージ名を入力し、「アプリの登録」をクリックします。
  • 「google-services.jsonをダウンロード」を選択します。
  • Android Studioで、google-services.jsonファイルをプロジェクトの「app」ディレクトリにドラッグアンドドロップします。
  • プロジェクトレベルのbuild.gradleファイルを開き、次を追加します。

classpath com.google.gms:google-services:4.0.1

  • アプリレベルのbuild.gradleファイルを開き、Googleサービスプラグインに加えて、Firebase CoreとFCMの依存関係を追加します。

// Googleサービスプラグインを追加//プラグインを適用:com.google.gms.google-services………依存関係{implementation fileTree(dir:libs、include:)// Firebase Core //実装com.google.firebaseを追加: firebase-core:16.0.1 // FCMを追加//実装com.google.firebase:firebase-messaging:17.3.4

  • プロンプトが表示されたら、変更を同期します。
  • 次に、プロジェクトにFirebaseが正常に追加されたことをFirebase Consoleに知らせる必要があります。物理的なAndroidスマートフォンまたはタブレット、またはAndroid Virtual Device(AVD)にアプリをインストールします。
  • Firebase Consoleに戻り、「アプリを実行してインストールを確認する」を選択します。
  • Firebaseがアプリを検出すると、「おめでとうございます」が表示されます。 「コンソールに進む」を選択します。

Firebaseを使用して最初のプッシュ通知を送信する

以上です!これで、ユーザーにプッシュ通知を送信でき、その通知はデバイスのシステムトレイに表示されます(今のところ、配信時にアプリがフォアグラウンドにないものとします)。


Firebase Consoleから利用できるNotifications Composerを使用してFCM通知を作成します。

  • アプリがバックグラウンドでインストールされ、実行されていること、およびデバイスがアクティブなインターネット接続を持っていることを確認してください。
  • Firebase Consoleで、左側のメニューから[クラウドメッセージング]を選択します。

  • [最初に送信]を選択します。
  • タイトルと本文テキストを入力して、「次へ」をクリックします。

  • 「アプリの選択」ドロップダウンを開き、リストからアプリケーションを選択します。このセクションには、アプリのバージョン、デバイスのロケール、ユーザーがアプリを最後に使用した時間などの要因に基づいて、対象を絞った通知を作成するために使用できるいくつかの高度なオプションも含まれています。テスト通知ではこれらのオプションは使用しませんが、利用可能なものを確認する場合は、「and…」を選択し、その後のドロップダウンを調べます。

  • このセクションの編集が終了したら、[次へ]をクリックします。
  • これをすぐに送信する場合は、「対象ユーザーに送信」ドロップダウンを開き、「今」を選択します。
  • 画面の右下で[公開]をクリックします。
  • 後続のポップアップですべての情報を確認し、続行する場合は「公開」を選択します。

しばらくすると、ターゲットにしたすべてのクライアントデバイスがシステムトレイでこの通知を受信するはずです。

ほとんどの場合、FCM通知はすぐに配信されますが、到着するまでに数分かかることがあるため、通知が遅れてもてないでください。

いくつかの目標を設定する:通知変換イベント

通知を作成するとき、通常は目標を念頭に置いています。それがユーザーをアプリに呼び戻すか、アプリ内購入を呼びかけるように説得するか、単に通知を開くかです。

Notification Composerを使用して通知に目標を割り当て、FCMレポートダッシュボードでその通知のパフォーマンスを追跡できます。

目標を設定するには、Navigation Composerの[コンバージョンイベント]セクションをクリックして展開し、付随するプルダウンを開いて、利用可能なコンバージョンイベントから選択します。

通知は成功しましたか?

通知を送信した後、FCMレポートダッシュボードでパフォーマンスを分析できます。ダッシュボードは、新しいを送信するたびに自動的にロードされるか、ダッシュボードに直接アクセスできます。

明示的なコンバージョン目標を設定していなくても、配信されたsの数と開かれたsの数を比較することで、ユーザーが通知に基づいて行動しているかどうかを測定できます。

このリストでいずれかを選択して、送信、オープン、および変換データをグラフとして表示することもできます。コンバージョンの目標を設定すると、これらの目標に関連する統計情報も表示されます。

アプリがフォアグラウンドにある場合はどうなりますか?

FCM通知の動作は、クライアントアプリケーションの状態によって異なります。

デフォルトでは、アプリはフォアグラウンドにある間は受信したFCMを表示しません。そのため、送信したときにユーザーが実際に保証することはありません 見る それ 。

アプリが受信中に受信したに基づいて動作するには 前景、FirebaseMessagingServiceを拡張し、onReceivedメソッドをオーバーライドし、getNotificationまたはgetDataのいずれかを使用してコンテンツを取得する必要があります。これは、データまたは通知、あるいはその両方を使用しているかどうかによって異なります。

「MyFirebaseMessagingService」という名前の新しいJavaクラスを作成し、次を追加します。

パブリッククラスMyFirebaseMessagingServiceはFirebaseMessagingServiceを拡張します{@Override public void onReceived(Remote){super.onReceived(remote);

また、通知オブジェクトを作成する必要があります。これは、通知をカスタマイズするチャンスです。たとえば、ユーザーがこの通知を受け取ったときに再生するサウンドを選択したり、カスタム通知アイコンを適用したりします。また、データまたは通知からコンテンツを取得する必要があります。例:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this、 "channel_id").setContentTitle(remote.getNotification()。getTitle()).setContentText(remote.getNotification()。getBody()).setPriority(NotificationCompat.PRIORITY_DEFAULT)。 setStyle(new NotificationCompat.BigTextStyle()).setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)).setSmallIcon(R.mipmap.ic_launcher).setAutoCancel(true); NotificationManager notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0、notificationBuilder.build()); }}

サービスを作成したら、忘れずにマニフェストに追加してください。

これで、アプリがフォアグラウンドでFCMを受信するたびに、onReceived()ハンドラーに配信され、アプリは通知の投稿やアプリのコンテンツの更新など、ユーザーが定義したアクションを実行します。

より魅力的な通知:ユーザーをターゲットに

これまで、ユーザーベース全体に同じ通知を送信してきましたが、特定のユーザーを対象とする場合、通知ははるかに魅力的です。

Notification Composerを使用して、ユーザーベースのさまざまな部分にさまざまな通知を送信できます。 Notification Composerに移動し、通常どおり通知を作成しますが、「ターゲット」セクションで「and」をクリックします。これにより、次のオプションを含む新しいドロップダウンにアクセスできます。

  • バージョン。 これにより、アプリケーションの特定のバージョンを実行しているデバイスをターゲットにしたり、除外したりできます。たとえば、無料版を実行しているユーザーに通知を送信し、アプリのプレミアムバージョンへのアップグレードを促すことができます。
  • 言語。 この設定を使用して、アプリケーションがサポートするさまざまな言語やロケールをターゲットにしたり、除外したりできます。たとえば、さまざまなタイムゾーンや言語に合わせた通知の作成などです。
  • ユーザーオーディエンス。 これにより、視聴者のさまざまなセクションをターゲットにしたり、除外したりできます。たとえば、この設定を使用して、割引を提供したり、リリースしたばかりのすべての新しいアプリ内アイテムに注目したりすることで、アプリ内購入の歴史を持つ人々を誘惑できます。
  • ユーザープロパティ。 Firebase Analyticsをセットアップした場合、ユーザープロパティを介して、オーディエンスに関するさまざまな情報にアクセスできます。これらのプロパティをFCMと組み合わせて使用​​すると、25〜34歳のスポーツに興味のあるユーザーなど、ユーザーベースの特定のセクションにターゲットを絞った通知を送信できます。
  • 予測。 Firebase Predictionsを設定した場合、今後7日間で特定の行動を起こす可能性に基づいてユーザーをターゲットにできます。たとえば、誰かがモバイルゲームから離脱する可能性が高いとPredictionsが警告した場合、FCMを使用して、新しいクエストに参加するように招待したり、ゲーム内通貨を送ったりできます。
  • 最後のアプリエンゲージメント。 ユーザーがしばらくアプリを起動していない場合、この設定を使用して、アプリが提供するすべての優れたコンテンツを思い出させるために、いくつかの通知を送信できます。
  • 最初に開きます。 これにより、ユーザーが最初にアプリを開いたときに通知を送信できます。たとえば、有用なヒントやアドバイスを含む通知を送信することで、新しいユーザーが最新情報を入手できるようにします。

登録トークンで単一のデバイスをターゲットにする

ユーザーの年齢、関心、ユーザーがアプリに最後に関与した時間などの要因に基づいてターゲットを絞った通知を送信する方法を既に見てきましたが、 均一になる より具体的に。この最後のセクションでは、FCM通知を送信する方法を示します シングル デバイス。

ユーザーがアプリを初めて起動すると、FCM SDKはそのクライアントアプリインスタンスの登録トークンを生成します。 FirebaseInstanceId.getInstance()。getInstanceId()を使用してこの登録トークンをキャプチャし、この特定のトークンに通知を送信できます。

実際のプロジェクトでは、通常、トークンをアプリサーバーに送信して好みの方法で保存することでトークンをキャプチャしますが、わかりやすくするために、このトークンをAndroid StudioのLogcatに印刷するだけです。

完成したMainActivityは次のとおりです。

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult;パブリッククラスMainActivityはAppCompatActivityを拡張します{private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FirebaseInstanceId.getInstance()。getInstanceId().addOnCompleteListener(new OnCompleteListener(){@Override public void onComplete(@NonNull Task task){if(!task.isSuccessful()){// To // return; } //インスタンスIDトークンを取得// String token = task.getResult()。getToken(); String msg = getString(R.string.fcm_token、token); Log.d(TAG、msg); }}); }}

strings.xmlファイルを開き、MainActivityで参照している「fcm_token」文字列リソースを作成します。

FCMトークン:%s

デバイスの一意のトークンを取得できるようになりました:

  • 接続したAndroidデバイスまたはAVDにプロジェクトをインストールします。
  • 「Logcat」タブを選択して、Android StudioのLogcatを開きます(次のスクリーンショットのカーソルがあります)。

  • デバイスのトークンはLogcatの「デバッグ」セクションに出力されるため、ドロップダウンを開いて「デバッグ」を選択します。

Logcatの情報量によっては、探している行を見つけるのが難しい場合があります。苦労している場合は、「トークン」という単語を検索するか、アプリを閉じてから再起動してみてください。

トークンを取得したら、それを使用してこの特定のデバイスにプッシュ通知を送信できます。

  • Firebase Consoleに移動して、ドロップダウンメニューからプロジェクトを選択します(まだ選択していない場合)。
  • 左側のメニューから「クラウドメッセージング」を選択します。
  • [新しい通知]ボタンをクリックします。
  • 通常どおり、タイトルとテキストを入力しますが、[デバイスでテスト]をクリックします。

  • トークンをコピーして「インスタンスを追加…」フィールドに貼り付け、表示される小さな青い「+」アイコンをクリックします。
  • トークンに付随するチェックボックスを選択します。

  • 「テスト」をクリックします。

この通知は、対象のクライアントデバイスにのみ表示されます。

まとめ

この記事では、Firebase Cloud Messagingを使用してAndroidプッシュ通知を送信する方法と、ユーザーベースのさまざまなセクションをターゲットとする通知を作成する方法を示しました。

独自のAndroidプロジェクトでFCMを使用しますか?以下のコメントでお知らせください!

今年初めに聞いたWhatApp指紋認証のうわさには、さらに重みが加わりました。 WhatAppアプリ調査員からの投稿 WABetaInfo 火曜日に、このウェブサイトはこの機能をテストし、どのように機能するかの詳細を提供したと述べた。WABetaInfo WhatAppバージョン2.19.83ベータアップデートでこの機能を発見しましたが、実際には一般ユーザーはまだ利用できません。有効にすると、経由...

インターネット上のドラマ?不可能!わかりましたたとえあなたがモデルのFacebookの友人であったとしても、ある時点で「友人」の1人によってブロックされてしまう可能性があります。時々、それは彼らが千の太陽よりも熱い情熱であなたを憎むからです。理由が何であれ、ブロックされるのは楽しい経験ではありません。残念ながら、ブロックされたFacebookには警告が表示されず、ブロックされたFacebookの友...

見て