Skip to main content
このページは、MoEngage Android SDK 15.03.00 以降に適用されます。15.03.00 未満のバージョンについては、プッシュトークンの登録と表示(レガシー)を参照してください。既存の連携をアップグレードする場合は、Firebase Installation ID への移行を参照してください。

前提条件

開始する前に、以下の設定を完了してください。
  • アプリケーション用の Firebase プロジェクトを作成し、google-services.json 設定ファイルを追加します。Firebase Android セットアップガイドを参照してください。
  • com.google.firebase:firebase-messaging 25.1.2 以上を使用してください。これは Firebase Installation ID に必要な最小バージョンです。
  • FCM の認証情報を生成し、MoEngage ダッシュボードに追加します。FCM 認証およびプッシュの設定を参照してください。

概要

MoEngage Android SDK 15.03.00 は、Firebase Installation ID を使用してデバイスをプッシュに登録します。 Installation ID を生成するコンポーネントに応じて、2 つのフローを利用できます。

フロー 1: MoEngage が Installation ID の生成を処理する

重要アプリケーションのマニフェストファイルでは、com.google.firebase.MESSAGING_EVENT インテントフィルターを持つサービスを 1 つだけ宣言してください。マニフェストでそのようなサービスが複数宣言されている場合、最初のサービスのみがコールバックを受け取ります。その結果、MoEngage SDK はプッシュペイロードを受信できず、配信率が低下します。

ステップ 1: MoEngage Messaging Service を宣言する

マニフェストファイルに MoEFireBaseMessagingService を追加します。

ステップ 2: Firebase Installation ID を有効にする

マニフェストファイルに以下のメタデータを追加します。

Installation ID の登録(オプション)

SDK が Installation ID を登録するように、MoEngage SDK の初期化が完了した後に registerForInstallationId() API を呼び出します。この呼び出しは、以下の場合にのみ必要です。
  • アプリケーションで Firebase の自動初期化が無効になっている場合。自動初期化の防止に関する Firebase のドキュメントを参照してください。
  • MoEngage SDK の初期化が遅延する場合。たとえば、アプリケーションが Application クラスの onCreate() メソッドではなくワーカースレッドで SDK を初期化する場合です。
アプリケーションが MoEngage の登録をオプトアウトしている場合、この API は Installation ID を登録しません。

Installation ID の取得(オプション)

アプリケーションで MoEngage が生成した Installation ID を読み取る必要がある場合は、以下のいずれかのオプションを適用します。

オプション 1: Installation ID を非同期で取得する

addInstallationIdListener() API を使用して、Application クラスで InstallationIdAvailableListener を登録します。SDK は、リスナーの登録後に生成または更新した Installation ID に対してのみコールバックをトリガーします。 コールバックの受信を停止するには、removeInstallationIdListener() を呼び出します。

オプション 2: Installation ID を同期的に取得する

ワーカースレッドから getInstallationId() API を呼び出します。呼び出し時に Installation ID が利用できない場合、API は null を返します。

MoEngage 以外のペイロードのプッシュ表示(オプション)

アプリケーションが MoEngage 以外から送信された通知を処理する場合は、このコールバックを実装します。マニフェストファイルで SDK のサービスを宣言すると、SDK は MoEngage プラットフォーム以外のサーバーから受信したプッシュペイロードごとにコールバックを提供します。 NonMoEngagePushListener インターフェースを実装し、onCreate メソッドで MoEFireBaseHelper.getInstance().addNonMoEngagePushListener() を使用して登録します。 アプリケーションがバックグラウンドにある間も SDK がコールバックを呼び出す可能性があるため、コールバックは Application クラスの onCreate() メソッドで登録してください。

フロー 2: アプリケーションが Installation ID の生成を処理する

MoEngage SDK が Installation ID を生成する場合は、このセクションをスキップしてください。

ステップ 1: MoEngage のプッシュトークン登録をオプトアウトする

MoEngage SDK はデフォルトでプッシュに登録します。アプリケーションが Installation ID を生成する場合は、まず MoEngage の登録をオプトアウトしてください。 MoEngage.Builder オブジェクトの configureFcm() API を使用して、トークンの登録を無効にします。
アプリケーションで Installation ID を設定します。FCM の設定については、Firebase Installation ID へのアクセスに関する Firebase のドキュメントを参照してください。

ステップ 2: Installation ID を MoEngage SDK に渡す

MoEngage プラットフォームがデバイスに通知を配信するには Installation ID が必要なため、アプリケーションは passInstallationId() API を使用して Installation ID を MoEngage SDK に渡す必要があります。

ステップ 3: プッシュペイロードを MoEngage SDK に渡す

SDK はリッチプッシュ通知を含む通知をレンダリングするため、アプリケーションが独自のサービスを宣言している場合でも、MoEngage プラットフォームからのペイロードを MoEngage SDK に渡してください。 Firebase サービスの onMessageReceived() メソッドから passPushPayload() API を呼び出します。渡す前に、isFromMoEngagePlatform() API を使用して、ペイロードが MoEngage プラットフォームから送信されたものかどうかを確認してください。

リッチランディング

リッチランディングページは、プッシュキャンペーンからアプリケーション内で Web URL を開きます。どのコンポーネントが Installation ID を生成するかに関係なく、リッチランディングページを表示するにはこの手順が必要です。
以下の宣言は、現在の SDK バージョンに含まれています。MoEActivity の親 Activity を変更する必要がある場合にのみ追加してください。
AndroidManifest.xml ファイルに以下の Activity を追加します。