※KARTEからアプリPUSH通知配信を行った際に発生するイベントの仕様については、下記に記載があります
https://support.karte.io/post/3MRNpDiNIAIpC41DKuc5jE
KARTE for Appで配信される接客のリンク制御全般については、下記にも記載があります
https://support.karte.io/post/5isrl4EbC3Qhxz0benVqdi
FCM登録トークンや、アプリPUSH通知許可設定がKARTEに送信されるタイミング
下記のタイミングで、plugin_native_app_identify
イベントを通じ、KARTEに送信が行われます
- アプリ起動時(SDK初期化時)
- アプリ起動中、FCMの登録トークンが更新された時
- FCM登録トークンが更新、もしくは通知許可設定が変更された後、アプリがフォアグラウンドに復帰したタイミング
- ビジターIDの再生成時
※iOSの通知許諾ダイアログにユーザーが応答した後にも、KARTEに許諾状況は送信されます
※FCM登録トークンの更新判定は、FCM側で行われるため 想定通りのタイミングで plugin_native_app_identify
が送信されない場合もございます。最も送信確度が高いのは、1番の アプリ完全終了状態からの起動時となります。
※iOSの許諾ダイアログで拒否した際にはSDKでその検知ができないため、許諾直後には当該のイベントは発火しません。多くの場合、上記3のタイミングでの検知時で送信されます。
上記のタイミングで送信されない場合は、FCMの実装を改めてご確認ください
- チェック項目
- アプリ起動時に
application.registerForRemoteNotifications()
を呼び出しているか? - アプリ起動時にメッセージングデリゲート
Messaging.messaging().delegate = self
が設定されているか? - トークン更新のモニタリング処理
messaging:didReceiveRegistrationToken:
が実装されているか? - トークン更新のモニタリング処理内でトークン送信処理
KarteTracker.shared.registerFCMToken(fcmToken)
を呼び出しているか?
- アプリ起動時に
なお、FCM tokenの更新タイミングについては、以下のFirebaseのドキュメント等をご参照下さい。
FCM toekn更新の仕様の詳細については、お答え致しかねますので、ご了承ください。
- FCM SDKの導入を確認する
- PUSH通知の利用に必要な実装を確認する
該当ユーザーのKARTE上でのFCM登録トークン取得状況や、アプリPUSH通知の許諾状況を調べる方法は?
それぞれplugin_native_app_identify
イベント上の値として管理され、最新のFCM登録トークンはfcm_token
フィールド、許諾状況はsubscribe
フィールドで管理されます。
ユーザーストーリー画面からご確認頂けます。
下記のKARTE for App(デフォルト)のセグメントでも確認いただけます
- FCMトークンを持っている
- プッシュ配信を許可している
ユーザーの端末にて、(設定アプリ等を通じ)アプリPUSH通知をオンorオフにした際、KARTEに反映されるタイミングはいつですか?
- 次回アプリ起動時、もしくはアプリフォアグラウンド復帰時にKARTEに送信されます。そのため、アプリの起動やフォアグラウンド復帰が行われていない場合は、
plugin_native_app_identify
イベントのsubscribe
フィールドは反映されません。 - KARTE側で
subscribe
がtrue
であった場合でも、該当アプリのPUSH通知がOFFにされている場合は、PUSH通知は届きません - ユーザーの端末にて、該当アプリのPUSH通知がONとされた場合でも、ユーザーによるアプリ起動やフォアグラウンド復帰が行われず、KARTE側の
subscribe
がfalse
のままの場合は、アプリPUSH通知の接客サービスの配信対象に入りません
複数端末で同一人物が同じアプリを利用している場合、アプリPUSH通知はどちらの端末に届きますか?
- 複数端末間で、ユーザー統合が発生していない場合は、同一人物の利用であってもKARTEの内部的には 別々のユーザーとして扱われるため、それぞれ アプリPUSH通知が届きます
- 複数端末間で、ユーザー統合が発生している場合。すなわち、それぞれの端末でログインを行い、
user_id
が送信されている場合は、最後に起動した端末にのみ、アプリPUSH通知が届きます。(1つのuser_id
に対し、FCM tokenは 1つのみの保持となるためです。)
1つのuser_idで複数デバイスを利用しているユーザーへのPUSH通知の扱い
- KARTEは、1つの
user_id
に対し、1つのFCMトークンのみ保持可能な仕様です - 該当デバイスにてアプリを起動した際に、
plugin_native_app_identify
イベントが発生し、そのデバイスで生成されているトークンの値がKARTE宛てに送信されます - そのため、KARTEから該当のユーザーにPUSH通知を送信する際は、最後にアクセスしたデバイス宛てに送信されます
FCM以外のアプリPUSH通知のAPI利用は可能ですか?
現状 KARTE for Appでサポートしている仕組みは、FCMのみとなりますのでご了承下さい。
iOSアプリのバックグラウンド起動のため、content-availableキーをPUSH通知に含めたいが可能か?
HTTP v1 APIをご利用であれば、アプリPUSH通知テンプレートの静的変数名として、apns.payload.aps.content-available を指定することで送信可能です。(エディタ内でエラーとなりますが、送信自体はご利用頂けます。)
通知ペイロードをカスタマイズしたい
KARTE SDKが反映されていないユーザー(休眠ユーザー)へのPUSH通知配信について
- KARTEからのアプリPUSH通知は、KARTE SDKにより表示処理を行うため、アプリをアップデートせず、KARTE SDKが反映されていないユーザーへのPUSH通知の配信は原則不可となります
- KARTE Datahubを通じ、FCM Registration Tokenをインポートして配信する際など、ご留意下さい