次の方法で共有


アプリケーション開発者向けプッシュ通知のデバイス登録

Customer Insights - Journeys でプッシュ通知を設定するための全体的なアプローチの詳細については、プッシュ通知設定の概要 を参照してください。

Customer Insights - Journeys でプッシュ通知を有効にするには、次の手順を完了する必要があります。

  1. プッシュ通知アプリケーションの構成
  2. プッシュ通知のユーザー マッピング
  3. プッシュ通知のデバイス登録
  4. デバイスでプッシュ通知を受け取る
  5. プッシュ通知の対話レポート

以下の図は、Customer Insights - Journeys 内でデバイスとユーザーを登録するために必要な 2 つの手順を示しています。

プッシュ通知デバイスとユーザー登録の図。

デバイスの登録

モバイル アプリの構成を完了するには、開発者はサーバー間でデバイスを登録する必要があります。 デバイス トークン、Customer Insights - Journeys からのユーザー ID (連絡先 ID、リード ID、Customer Insights - Data プロファイル ID)、Customer Insights - Journeys からのモバイル アプリケーション ID が既に用意されている必要があります。

デバイス登録要求の呼び出しに成功すると、202 応答があります。 202 応答は、要求が受け入れられたことを示すだけです。 成功した要求を確認するには、Webhook を使用するか、ステータス エンドポイントを直接呼び出してステータスを確認する必要があります。

API

デバイス登録 (単体)

サンプル HTTP 要求 (iOS):

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices
{
    "MobileAppId": "00000000-0000-0000-0000-000000000000",
    "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "ApiToken": "%API_TOKEN%",
    "ApnsDeviceToken": "%APNS_TOKEN%"
}

サンプル HTTP 要求 (Android):

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices
{
    "MobileAppId": "00000000-0000-0000-0000-000000000000",
    "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "ApiToken": "%API_TOKEN%",
    "FcmDeviceToken": "%FCM_TOKEN%"
}

ヘッダー:

  • x-ms-track-registration: trueの場合、登録の成功/失敗に関する情報が保存され、登録ステータス API を通じて利用できます。
  • x-ms-callback-url: 空でない場合、デバイスの登録が失敗または成功すると、POST 要求 webhook がトリガーされます。
  • x-ms-callback-url-headers: webhook リクエストに渡されるヘッダーを表す、文字列対文字列辞書のシリアル化された JSON が含まれます。 x-ms-callback-url が定義されている場合にのみ使用されます。

戻り値: 指定した要求が有効な場合は 202、それ以外の場合は 400。

応答本文:

x-ms-track-registration が true の場合:

{
    "RegistrationRequestId": "%GUID%"
}

それ以外の場合は、空の本文。

定義
件名 プロパティ
MobileAppId Customer Insights - Journeys で構成されたモバイル アプリケーションの識別子。
UserId 連絡先、リード、または Customer Insights - Journeys からの Customer Insights - Data プロファイル。
ApiToken 要求を承認するための API トークン。
ApnsDeviceToken iOS アプリケーションによって生成された一意のデバイス トークン識別子。 これは iOS デバイスにのみ送信されます
FcmDeviceToken Android アプリケーションによって生成された一意のデバイス トークン識別子。 これは Android デバイスにのみ送信されます

デバイス登録 (複数)

バッチ登録の本文には、デバイス登録要求を表す最大 100 個のオブジェクトの配列が含まれます。

サンプル HTTP 要求 (iOS):

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices/batch
[
    {
        "MobileAppId": "00000000-0000-0000-0000-000000000000",      
        "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "ApiToken": "%API_TOKEN%",
        "ApnsDeviceToken": "%APNS_TOKEN%"
    },
    {
        "MobileAppId": "00000000-0000-0000-0000-000000000000",
        "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "ApiToken": "%API_TOKEN%",
        "ApnsDeviceToken": "%APNS_TOKEN%"
    }
]

サンプル HTTP 要求 (Android):

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices/batch
[
    {
        "MobileAppId": "00000000-0000-0000-0000-000000000000",      
        "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "ApiToken": "%API_TOKEN%",
        "FcmDeviceToken": "%FCM_TOKEN%"
    },
    {
        "MobileAppId": "00000000-0000-0000-0000-000000000000",
        "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "ApiToken": "%API_TOKEN%",
        "FcmDeviceToken": "%FCM_TOKEN%"
    }
]

ヘッダー:

  • x-ms-track-registration: true の場合、登録の成功 または 失敗に関する情報が保存され、登録ステータス API を通じて利用できます。
  • x-ms-callback-url: 空でない場合、デバイスの登録が失敗または成功すると、POST 要求 webhook がトリガーされます。
  • x-ms-callback-url-headers: webhook 要求に渡されるヘッダーを表す、文字列対文字列辞書のシリアル化された JSON が含まれます。 x-ms-callback-url が定義されている場合にのみ使用されます。

戻り値: 指定した要求が有効な場合は 202、それ以外の場合は 400。

応答本文:

x-ms-track-registration が true の場合: 項目の配列、各項目の順序は要求本文の配列からの順序に対応します。

[
    {
        "RegistrationRequestId": "%REG_REQUEST_ID%"
    },
    {
        "RegistrationRequestId": "%REG_REQUEST_ID%"
    }
]

それ以外の場合は、空の本文。

デバイス登録のステータス

POST  {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices/status/

要求本文:

{
    "RegistrationRequestIds": [
        "%REG_REQUEST_ID%"
    ],
    "MobileAppId": "%MOBILE_APP_ID%",
    "ApiToken": "%API_TOKEN%"
}

戻り値: 指定した要求が有効な場合は 200、それ以外の場合は 400。

応答本文 - 項目の配列:

[
    {
        "Status": "Pending|Success|Failed",
        "FailureReason": " DuplicateExists|DryRunSendingFailed|DeviceTokenTooLong|FailedToStoreDevice|ApiTokenNotValid " // dry run sending is a verification of device token by sending an invisible notification to mobile app. Such sending failure might happen due to a wrong device token or incorrect/expired mobile app auth data
    },
    {
        "Status": "Pending|Success|Failed",
        "FailureReason": " DuplicateExists|DryRunSendingFailed|DeviceTokenTooLong|FailedToStoreDevice|ApiTokenNotValid " // dry run sending is a verification of device token by sending an invisible notification to mobile app. Such sending failure might happen due to a wrong device token or incorrect/expired mobile app auth data
    }
]

各項目の順序は、RegistrationRequestIds 配列からの順序に対応します。

定義
件名 プロパティ
RegistrationRequestIds 個々の登録要求の配列。 値は、登録呼び出しの応答から取得されます。 これは、x-ms-track-registration ヘッダーが登録に使用された場合にのみ提供されます
MobileAppId Customer Insights - Journeys で構成されたモバイル アプリケーションの識別子。
UserId 連絡先、リード、または Customer Insights - Journeys からの Customer Insights - Data プロファイル。

重要

ステータスが「保留中」状態のままになる原因として、次の 3 つが考えられます:

  1. 元のデバイス登録要求には無効な API トークンがありました。 悪意のある攻撃者が「デバイスの登録」を呼び出して、無限のスロットルを生成することによって、環境に対して DoS 攻撃を行うことを防ぐために、そのような試みは登録履歴の保存を生成しません。 したがって、成功を確認するための情報はありません。
  2. CRM は数時間にわたって調整された状態のままになるため、複数回再試行した後、ステータス更新操作がジョブの実行に失敗します。
  3. デバイス登録要求は、x-ms-track-registration ヘッダーを指定せずに行われました。

デバイス登録のステータス webhook

デバイス登録が成功または失敗したときに x-ms-status-callback-url に URL が指定されると、Customer Insights - Journeys はヘッダーの値にアクセスします。

デバイス登録要求の x-ms-status-callback-url ヘッダー内に指定された URL に POST します。

本文:

{ 
    "Status": "Success|Failed", 
    "Signature": "%SIGNATURE%", 
    "FailureReason": " DuplicateExists|DryRunSendingFailed|DeviceTokenTooLong|FailedToStoreDevice|ApiTokenNotValid" 
} 

チップ

署名は、API トークンをキーとして使用して計算されたコールバック URL の HMACSHA256 ハッシュです。 値を使用して、Customer Insights - Journeys が電話をかけたことを確認します。 同じアルゴリズムを使用して値を比較し、webhook 側の API トークンでコールバック URL をハッシュします。

注意

要求の試行は 1 回だけ行われます。 要求の実行に失敗すると、通知が失われます。 失敗の種類には、不正なコールバック URL、REST API 呼び出しタイムアウト、または予期しない応答ステータス コードが含まれます。

戻り値: 指定した要求が有効な場合は 202、それ以外の場合は 400。

予期される本文: 空の本文。

デバイスのクリーンアップ (単体)

メッセージ送信のパフォーマンスを確保するには、無効になったデバイスをデータベースから削除することが重要です。 次の方法を使用して、古いデバイス、ユーザー、およびアプリケーションの組み合わせをデバイス テーブルから削除します。

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices/cleanup
{
    "MobileAppId": "00000000-0000-0000-0000-000000000000",
    "ApiToken": "%API_TOKEN%",
    "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "DeviceToken": "%OPTIONAL_FCM_OR_APNS_DEVICE_TOKEN%"
}

戻り値: 指定した要求が有効な場合は 202、それ以外の場合は 400。

定義
件名 プロパティ
MobileAppId Customer Insights - Journeys で構成されたモバイル アプリケーションの識別子。
ApiToken 要求を承認するための API トークン。
UserId 連絡先、リード、または Customer Insights - Journeys からの Customer Insights - Data プロファイル。
DeviceToken アプリケーションによって生成された一意のデバイス トークン識別子。

デバイスのクリーンアップ (複数)

メッセージ送信のパフォーマンスを確保するには、無効になったデバイスをデータベースから削除することが重要です。 次の方法を使用して、古いデバイス、ユーザー、およびアプリケーションの組み合わせをデバイス テーブルから削除します。

POST {PublicEndpoint}/api/v1.0/orgs/%ORG_ID%/pushdeviceregistration/devices/cleanup/batch
{
    "MobileAppId": "00000000-0000-0000-0000-000000000000",
    "ApiToken": "%API_TOKEN%",
    "UserId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "DeviceToken": "%OPTIONAL_FCM_OR_APNS_DEVICE_TOKEN%"
}

戻り値: 指定した要求が有効な場合は 202、それ以外の場合は 400。

定義
件名 プロパティ
MobileAppId Customer Insights - Journeys で構成されたモバイル アプリケーションの識別子。
ApiToken 要求を承認するための API トークン。
UserId 連絡先、リード、または Customer Insights - Journeys からの Customer Insights - Data プロファイル。
DeviceToken アプリケーションによって生成された一意のデバイス トークン識別子。