プッシュ通知で問題が発生する場合は、以下の手順で確認を行ってください。

確認項目

  1. プッシュ通知が届かない
    1. Firebase Cloud Messaging (以下FCM) SDKの実装はできているか → 詳細
    2. FCMコンソールから通知を送った場合に通知が届くか → 詳細
    3. FCMサーバーキーは登録済みか → 詳細
    4. FirebaseプロジェクトIDと秘密鍵は登録済か → 詳細
    5. Firebase Cloud Messaging APIは有効か → 詳細
    6. FCMトークンの送信ができているか → 詳細
    7. 接客サービスの配信設定は正しくできているか → 詳細
  2. iOS端末のみでプッシュ通知が届かない
    1. FCMにAPNs認証キーの登録はできているか → 詳細
  3. Android端末のみでプッシュ通知が届かない
    1. 通知メッセージ受信時の処理は実装できているか → 詳細
  4. 以前はプッシュ通知が届いていたが、ある時から届かなくなった
    1. 同じユーザーに対して複数のuser_idを連携していないか → 詳細
  5. リッチ通知でメディア(画像・動画・音声)が表示できない (iOSのみ)
    1. リッチ通知用のSDK実装はできているか → 詳細
  6. ディープリンクが動作しない
    1. メッセージ開封時の処理は実装できているか → 詳細
    2. ディープリンクを処理するための実装ができているか → 詳細
    3. 外部サイトのリンクを指定していないか → 詳細
  7. プッシュ通知の開封イベントが計測されない
    1. メッセージ開封時の処理は実装できているか → 詳細
  8. 「TALK送信失敗」の数が多い
    1. エラーメッセージから原因を調査する → 詳細

Firebase Cloud Messaging (以下FCM) SDKの実装はできているか

プッシュ通知を受信するにはFCM SDKの実装が必要です。

実装手順に関しては、Firebaseのページをご覧ください。
Firebase を iOS プロジェクトに追加する
Android プロジェクトに Firebase を追加する
iOS での Firebase Cloud Messaging クライアント アプリの設定
Android に Firebase Cloud Messaging クライアント アプリを設定する

サンプルコードも併せてご覧ください。
[iOS] サンプルコード
[Android] サンプルコード

FCMコンソールから通知を送った場合に通知が届くか

FCMコンソールから通知を送ることで、FCM SDKの実装が正しくできているか確認できます。

FCMコンソールを使ったメッセージ送信については、以下のページをご覧ください。
Firebase コンソールでメッセージを送信する

FCMサーバーキーは登録済か

FCM Legacy APIをご利用の場合、KARTEからFCMのAPIを呼び出すために、FCMサーバーキーが必要です。

サーバーキーの設定方法に関しては、以下のページをご覧ください。
接客サービス(プッシュ通知)

FirebaseプロジェクトIDと秘密鍵は登録済か

FCM HTTP v1 APIをご利用の場合、KARTEからFCMのAPIを呼び出すために、FirebaseプロジェクトIDと秘密鍵が必要です。

プロジェクトIDおよび秘密鍵の設定方法に関しては、以下のページをご覧ください。
接客サービス(プッシュ通知)

Firebase Cloud Messaging APIは有効か

FCM HTTP v1 APIをご利用の場合、KARTEからFCMのAPIを呼び出すために、Google API ConsoleでFirebase Cloud Messaging APIを有効にする必要があります。

Firebase Cloud Messaging APIは有効化の方法に関しては、以下のページをご覧ください。
接客サービス(プッシュ通知)

FCMトークンの送信ができているか

プッシュ通知の送信対象を示すトークンをKARTE側に送る必要があります。

トークンの送信方法に関しては、以下のページをご覧ください。
[iOS] プッシュ通知を受信する
[Android] プッシュ通知を受信する

また、トークン送信時に発生するplugin_native_app_identifyfcm_tokensubscribeの値が正しいかを確認してください。
通知を送信するにはsubscribe(通知許可)がtrueである必要があります。
イベントの内容はストーリー画面で次の方法で確認できます。

イベントログ

plugin_native_app_identifyは「ネイティブアプリ・プッシュ通知用の情報が送信されました」と表示されます。「データを確認」を押し、fcm_tokensubscribeの値を確認してください。

ユーザデータ

画面左の「ユーザーデータ > すべて確認」から、ユーザの情報が確認できます。
plugin_native_app_identifyfcm_tokensubscribeの「最新の値」を確認してください。

接客サービスの配信設定は正しくできているか

別紙のチェックリストをご覧ください。
KARTE for App接客が配信されない場合のチェックリスト

FCMにAPNs認証キーの登録はできているか

iOS端末へプッシュ通知を送るためには、事前にAPNs認証キーをFirebaseにアップロードしておく必要があります。

設定手順に関しては、以下のページをご覧ください。
iOS での Firebase Cloud Messaging クライアント アプリの設定

通知メッセージ受信時の処理は実装できているか

KARTEから送信したプッシュ通知は、受信時にSDKで処理されることを前提として作られています。
そのため通知受信時にSDKの処理を呼び出していただく必要があります。

通知受信時の処理の実装に関しては、以下のページをご覧ください。
[Android] プッシュ通知を受信する
[iOS] プッシュ通知を受信する

同じユーザーに対して複数のuser_idを連携していないか

同一端末上での複数user_idの連携に関しては、計測データの不整合が発生する可能性が高いため動作保証をしておりません。
同じユーザーに対して、複数のuser_idをユーザータグで連携しても問題ないでしょうか? | KARTEサポートサイト

リッチ通知用のSDK実装はできているか

リッチ通知に対応するには、別途SDKの実装が必要です。

実装方法に関しては、以下のページをご覧ください。
[iOS] リッチプッシュ通知を受信する

メッセージ開封時の処理は実装できているか

通知開封時に行われる以下の処理に関しては、KARTE SDKで処理されることを前提に作られているため、通知開封時にSDKの処理を呼び出していただく必要があります。
– 開封イベント送信
– ディープリンクによる遷移

通知開封時の処理の実装に関しては、以下のページをご覧ください。
[iOS] プッシュ通知を受信する
[Android] プッシュ通知を受信する

ディープリンクを処理するための実装ができているか

ディープリンクを処理するために、あらかじめアプリケーション間通信(カスタムURLスキーム)に対応している必要があります。

アプリケーション間通信に関しては、以下のページをご覧ください。
[iOS] URLスキームを使ってアプリケーションと通信する
[Android] 他のアプリからのアクティビティの開始を許可する

アプリ以外のリンクを指定していないか

Androidでは、通知クリックによりアプリが起動されたタイミングでmessage_clickが発火します。そのため、リンクに他アプリのディープリンクやブラウザで表示するサイトのURLを指定した場合はmessage_clickは取得できません。(iOSではこの場合でもmessage_clickが計測できます。)

TALKメッセージ送信失敗(talk_message_fail)のエラー内容を確認

送信できなかったユーザのTalkメッセージ送信失敗(talk_message_fail)イベントから、エラーの内容を確認できます。
例えば、FCMがエラーレスポンスを返却した場合はレスポンスのデータが含まれます。よくあるケースとして、エラー内容がNotRegistered UNREGISTERED(ユーザがアプリをアンインストールしている等)であることがあります。FCMのエラーの詳細については、以下をご覧ください。

FCM Legacy API
Firebase Cloud Messaging の HTTP プロトコル

NotRegisteredで失敗した場合のイベントデータ例 (FCM Legacy API)

{
  "values": {
    "talk_message_fail": {
      ...
      "error": "Error: Failed to send notification data. FCM response: [200] {\"multicast_id\":xxxxxxxxxxx,\"success\":0,\"failure\":1,\"canonical_ids\":0,\"results\":[{\"error\":\"NotRegistered\"}]}",
      "date": 1533366207,
      "sub_app_name": null,
      "content": {
        "attachments": [],
        "mention": []
      },
      "status": "ERROR",
    }
  },
}

FCM HTTP v1 API
ErrorCode  |  Firebase

UNREGISTEREDで失敗した場合のイベントデータ例 (FCM HTTP v1 API)

{
  "values": {
    "talk_message_fail": {
          ...
      "error": "Error: Failed to send notification data. FCM response: [404] {\n  \"error\": {\n    \"code\": 404,\n    \"message\": \"Requested entity was not found.\",\n    \"status\": \"NOT_FOUND\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.firebase.fcm.v1.FcmError\",\n        \"errorCode\": \"UNREGISTERED\"\n      }\n    ]\n  }\n}\n",
      "date": 1545535618,
      "sub_app_name": null,
      "content": {
        "attachments": [],
        "mention": []
      },
      "status": "ERROR"
    }
  }
}

エラー内容が NotRegistered または UNREGISTERED になったユーザーは、それ以降プッシュ通知の配信対象から外れます。ただし、アプリ起動時にリフレッシュされたFCMトークンが送られた場合には、そのタイミングで再度配信対象に入ります。