Skip to content
Last updated

Mobile Pushのデバイストークン登録

プレビュー版Engage Mobile SDKは、APNsとFCMのデバイストークンを登録する共通APIを提供します。アプリがプラットフォームからトークンを取得し、そのトークンをSDKへ渡すことで、Engage Studioがインストールを配信対象にできます。

プレビュー

SDKのトークン登録APIは、プレビュー版Mobile SDK連携の一部です。一般提供前に、イベント名、フィールド名、パッケージ配布方法、Push処理APIが変更される場合があります。

SDKが担当する処理

SDKは、設定されたRecordsエンドポイントへトークン登録イベントを送信します。Pushのライフサイクルは引き続きアプリが担当します。

責務アプリSDK
通知権限をリクエストする✓
APNsまたはFCMトークンを取得する✓
トークンをTreasure AIへ登録するSDKを呼び出す✓
Push通知を受信する✓
システム通知を表示する✓
通知タップを処理する✓
タップ後にURLをHosted Pagesとして表示するopenUrlを呼び出すWebViewを表示する

SDKは現在、APNsまたはFCMの受信サービスを管理しません。トークン登録だけでPush通知の受信・表示まで完了すると説明しないでください。

iOSでトークンを登録する

アプリでAPNsトークンを取得し、Providerと送信先テーブルを指定してSDKへ渡します。

func application(
    _ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken token: Data
) {
    TreasureData.sharedInstance().registerDeviceToken(
        token,
        provider: .apns,
        table: "device_tokens"
    )
}

通知権限のリクエストとリモート通知の登録は、別途アプリで実装する必要があります。

Androidでトークンを登録する

FirebaseからFCMトークンを取得し、TDPushProvider.FCMを指定してSDKへ渡します。

override fun onNewToken(token: String) {
    TreasureData.sharedInstance().registerDeviceToken(
        token,
        TDPushProvider.FCM,
        "device_tokens"
    )
}

FCMがトークンを更新した場合は、メソッドを再度呼び出します。Firebaseの設定と通知権限の処理はアプリが担当します。

プレビュー版のレコードスキーマ

プレビューSDKはトークンをイベントとして登録し、イベントを即時にフラッシュします。Android M2実装では、次のフィールドを使用します。

{
  "td_device_token": "<TOKEN>",
  "td_push_provider": "fcm"
}

Providerの値はapnsまたはfcmです。レコードにevent名のフィールドはありません。SDK APIを通じてアプリから任意のパラメーターを追加できます。

プレビュー版スキーマと既存のPushイベント

既存のPush Events Tableでは、token_registerイベントとfcm_tokenフィールドを説明しています。プレビューSDKのレコードはtd_device_tokenとtd_push_providerを使用し、event名のフィールドは付与しません。標準Mobile Pushイベントスキーマが確定するまでは、これらを同じ連携契約として扱わないでください。

PushからHosted Pagesを開く

Push payloadにURLが含まれている場合、アプリはURLをSDKへ渡せます。

TreasureData.sharedInstance().openUrl(
    URL(string: "https://example.com/coupon")!,
    context: ["coupon_id": "abc123"]
)
TreasureData.sharedInstance().openUrl(
    "https://example.com/coupon",
    mapOf("coupon_id" to "abc123")
)

この直接URL経路にはキャンペーンオファーのIDがありません。Hosted PagesのWebViewには表示されますが、キャンペーンのimpression、click、dismissイベントは作成されません。

セキュリティとプライバシー

  • イベント送信には書き込み専用APIキーを使用します。
  • 本番ログにAPNsまたはFCMトークンを出力しないでください。
  • APIキーやPersonalization tokenをPush payloadに含めないでください。
  • Hosted Pagesとして開くURLを検証してください。
  • Deep Linkとアプリ所有のルートを遷移前に検証してください。
  • トークンや関連イベントデータを送信する前に、同意とプライバシーポリシーを適用してください。

関連ドキュメント