トランザクションメッセージの管理 managing-transactional-messages
トランザクションイベントを作成して公開したら、このイベントのトリガーを web サイトに統合する必要があります。
例えば、クライアントの 1 人が Web サイトを離れてから買い物かごの商品を購入するたびに、「買い物かごの放棄」イベントをトリガーしたいとします。 これを行うには、web 開発者は、REST トランザクションメッセージ API を使用する必要があります。
- POSTメソッドに従ってリクエストを送信します。このメソッドは トランザクションイベントの送信をトリガーにします。
- POSTリクエストへの応答にはプライマリキーが含まれており、GETリクエストを通じて 1 つまたは複数のリクエストを送信できます。 これにより、 イベントステータスを取得できるようになります。
トランザクションイベントの送信 sending-a-transactional-event
トランザクションイベントは、次の URL 構造を持つPOSTリクエストを介して送信されます。
POST https://mc.adobe.io/<ORGANIZATION>/campaign/<transactionalAPI>/<eventID>
-
<ORGANIZATION>:個人の組織 ID。 この節を参照してください。
-
<transactionalAPI>:トランザクションメッセージ API のエンドポイント。
トランザクションメッセージ API エンドポイントの名前は、インスタンス設定によって異なります。 これは、値「mc」に続いて個人の組織 ID に対応します。 Geometrixx会社の例で、組織 ID として「geometrixx」を使用するとします。 その場合、POSTリクエストは次のようになります。
POST https://mc.adobe.io/geometrixx/campaign/mcgeometrixx/<eventID>
なお、トランザクションメッセージ API エンドポイントは、API プレビュー中にも表示されます。
-
<eventID>:送信するイベントのタイプ。 この ID は、イベント設定の作成時に生成されます( この節を参照)。
POSTリクエストヘッダー
リクエストには、「Content-Type: application/json」ヘッダーが含まれている必要があります。
文字セット(例:utf-8)を追加する必要があります。 この値は、使用している REST アプリケーションによって異なることに注意してください。
-X POST \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-H 'Cache-Control: no-cache' \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json;charset=utf-8' \
-H 'Content-Length:79' \
POSTリクエスト本文
イベントデータは JSON POST本文内に含まれます。 イベントの構造は定義によって異なります。 リソース定義画面の「API プレビュー」ボタンに、リクエストサンプルが表示されます。 この節を参照してください。
イベントにリンクされたトランザクションメッセージの送信を管理するために、次のオプションのパラメーターをイベントコンテンツに追加できます。
- 有効期限 (任意):この日付以降、トランザクションイベントの送信はキャンセルされます。
- スケジュール済み (オプション):この日付から、トランザクションイベントが処理され、トランザクションメッセージが送信されます。
POSTリクエストへの応答
POSTレスポンスは、作成時のトランザクションイベントのステータスを返します。 現在のステータス(イベントデータ、イベントステータスなど)を取得するには、GETリクエストでPOSTレスポンスから返されるプライマリキーを使用します。
GET https://mc.adobe.io/<ORGANIZATION>/campaign/<transactionalAPI>/<eventID>/
リクエストのサンプル
イベントを送信するためのPOSTリクエスト。
-X POST https://mc.adobe.io/<ORGANIZATION>/campaign/mcAdobe/EVTcartAbandonment \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-H 'Cache-Control: no-cache' \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json;charset=utf-8' \
-H 'Content-Length:79'
{
"email":"test@example.com",
"scheduled":"2017-12-01 08:00:00.768Z",
"expiration":"2017-12-31 08:00:00.768Z",
"ctx":
{
"cartAmount": "$ 125",
"lastProduct": "Leather motorbike jacket",
"firstName": "Jack"
}
}
POSTリクエストへの応答。
{
"PKey":"<PKEY>",
"ctx":
{
"cartAmount": "",
"lastProduct": "",
"firstName": ""
}
"email":"",
"scheduled":"2017-12-01 08:00:00.768Z",
"expiration":"2017-12-31 08:00:00.768Z",
"href": "mcAdobe/EVTcartAbandonment/<PKEY>",
"serverUrl":" https://myserver.com ",
"status":"pending",
"type":""
}
トランザクションイベントのステータス transactional-event-status
応答で、「ステータス」フィールドを使用すると、イベントが処理されたかどうかを知ることができます。
- pending:イベントは保留中です。イベントがトリガーされると、このステータスになります。
- 処理中:イベントは配信待ちです。イベントがメッセージに変換され、メッセージが送信されます。
- paused:イベントプロセスが一時停止されています。 処理は行われなくなりましたが、Adobe Campaign データベースのキューに保持されます。 詳しくは、この節を参照してください。
- processed:イベントは処理され、メッセージは正常に送信されました。
- 無視:配信でイベントが無視されました(通常、アドレスが強制隔離されている場合)。
- deliveryFailed: イベントの処理中に配信エラーが発生しました。
- routingFailed:ルーティングフェーズが失敗しました。これは、指定されたイベントのタイプが見つからない場合などに発生する可能性があります。
- tooOld:処理可能になる前にイベントの有効期限が切れました。これは、様々な理由で発生する可能性があります。例えば、送信が数回失敗した場合(イベントが最新ではなくなる結果となる)、オーバーロードされた後にサーバーがイベントを処理できなくなった場合などです。
- targetingFailed: Campaign Standardは、メッセージのターゲティングに使用されているリンクをエンリッチメントできませんでした。