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

確認項目

  1. プッシュ通知が届かない
    1. Firebase Cloud Messaging (以下FCM) SDKの実装はできているか → 詳細
    2. FCMコンソールから通知を送った場合に通知が届くか → 詳細
    3. FCMサーバーキーは登録済みか → 詳細
    4. FirebaseプロジェクトIDと秘密鍵は登録済か → 詳細
    5. FCMトークンの送信ができているか → 詳細
    6. 接客サービスの配信設定は正しくできているか → 詳細
  2. iOS端末のみでプッシュ通知が届かない
    1. FCMにAPNs認証キーの登録はできているか → 詳細
  3. Android端末のみでプッシュ通知が届かない
    1. 通知メッセージ受信時の処理は実装できているか → 詳細
  4. 以前はプッシュ通知が届いていたが、ある時から届かなくなった
    1. 同じユーザーに対して複数のuser_idを連携していないか → 詳細
  5. リッチ通知でメディア(画像・動画・音声)が表示できない (iOSのみ)
    1. リッチ通知用のSDK実装はできているか → 詳細
  6. ディープリンクが動作しない
    1. メッセージ開封時の処理は実装できているか → 詳細
    2. ディープリンクを処理するための実装ができているか → 詳細
  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サーバーキーが必要です。

サーバーキーの設定方法に関しては、以下のページをご覧ください。
KARTE for App -アプリプッシュ通知-

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

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

プロジェクトIDおよび秘密鍵の設定方法に関しては、以下のページをご覧ください。
KARTE for App -アプリプッシュ通知-

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

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

トークンの送信方法に関しては、以下のページをご覧ください。
[iOS] SDKの導入
[Android] SDKの導入

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

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

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

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

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

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

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

通知受信時の処理の実装に関しては、以下のページをご覧ください。
[Android] SDKの導入

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

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

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

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

実装方法に関しては、以下のページをご覧ください。
[iOS] リッチ通知対応 (Notification Service Extension)

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

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

通知開封時の処理の実装に関しては、以下のページをご覧ください。
[iOS] SDKの導入
[Android] SDKの導入

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

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

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

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

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

NotRegisteredで失敗した場合のイベントデータ例

{
  "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",
    }
  },
}

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