レンダリングテンプレート API 操作

重要

API エンドポイント: https://platform.adobe.io/data/core/activation/authoring/testing/template/render

このページでは、/authoring/testing/template/render API エンドポイントを使用して、 メッセージ変換テンプレート に基づいて、宛先に書き出されたデータをレンダリングするために実行できるすべての API 操作について説明します。 このエンドポイントでサポートされる機能の説明については、 テンプレートの作成 を参照してください。

レンダリングテンプレート API 操作の概要

続行する前に、 はじめに を参照して、必要な宛先オーサリング権限や必要なヘッダーの取得方法など、API を正しく呼び出すために知っておく必要がある重要な情報を確認してください。

書き出されたデータをテンプレートに基づいてレンダリング

authoring/testing/template/render エンドポイントにPOSTリクエストを送信し、 サンプルテンプレート API エンドポイント を使用して作成した宛先設定の宛先 ID とテンプレートを指定することで、書き出されたデータをレンダリングできます。

ヒント
  • ここで使用する宛先 ID は、/destinations エンドポイントを使用して作成された、宛先設定に対応する instanceId です。 宛先設定 API リファレンス を参照してください。

API 形式

POST authoring/testing/template/render
パラメーター 説明
destinationId 書き出したデータをレンダリングする宛先設定の ID。
template 書き出されたデータをレンダリングする際に基づくテンプレートの文字エスケープバージョン。
profiles 呼び出しの本文にプロファイルを追加する場合は、 サンプルプロファイル生成 API を使用してプロファイルを生成できます。

次の例に示すように、書き出されたデータをレンダリングできます。

本文でプロファイルを送信しないテンプレートのレンダリング

リクエスト

次のリクエストでは、宛先で想定されている形式に一致する複数のサンプルプロファイルがレンダリングされます。

curl --location --request POST 'https://platform.adobe.io/data/core/activation/authoring/testing/template/render' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'x-api-key: {API_KEY}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-gw-ims-org-id: {IMS_ORG}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--data-raw '
{
   "destinationId":"{DESTINATION_ID}",
   "template":"{# THIS is an example template for multiple profiles #}\r\n{\r\n    \"profiles\": [\r\n        {% for profile in input.profiles %}\r\n            {\r\n                \"identities\": [\r\n                    {% for email in profile.identityMap.email %}\r\n                        {\r\n                            \"type\": \"email\",\r\n                            \"id\": \"{{ email.id }}\"\r\n                        }{% if not loop.last %},{% endif %}\r\n                    {% endfor %}\r\n\r\n                    {# Add a comma only if we have both emails and external_ids. #}\r\n                    {% if profile.identityMap.email is not empty and profile.identityMap.external_id is not empty %}\r\n                        ,\r\n                    {% endif %}\r\n\r\n                    {% for external in profile.identityMap.external_id %}\r\n                        {\r\n                            \"type\": \"external_id\",\r\n                            \"id\": \"{{ external.id }}\"\r\n                        }{% if not loop.last %},{% endif %}\r\n                    {% endfor %}\r\n                ],\r\n                \"AdobeExperiencePlatformSegments\": {\r\n                    \"add\": [\r\n                        {% for segment in profile.segmentMembership.ups | added %}\r\n                            \"{{ segment.key }}\"{% if not loop.last %},{% endif %}\r\n                        {% endfor %}\r\n                    ],\r\n                    \"remove\": [\r\n                        {# Alternative syntax for filtering segments by status: #}\r\n                        {% for segment in removedSegments(profile.segmentMembership.ups) %}\r\n                            \"{{ segment.key }}\"{% if not loop.last %},{% endif %}\r\n                        {% endfor %}\r\n                    ]\r\n                }\r\n            }{% if not loop.last %},{% endif %}\r\n        {% endfor %}\r\n    ]\r\n}"
}'

応答

応答は、テンプレートのレンダリングの結果、または発生したエラーを返します。
正常な応答は、HTTP ステータス 200 と、エクスポートされたデータの詳細を返します。
失敗した応答は、HTTP ステータス 500 と、発生したエラーの説明を返します。

{
   "profiles":[
      {
         "identities":[
            
         ],
         "AdobeExperiencePlatformSegments":{
            "add":[
               "segmentid1",
               "segmentid2"
            ],
            "remove":[
               "segmentid3"
            ]
         }
      },
      {
         "identities":[
            
         ],
         "AdobeExperiencePlatformSegments":{
            "add":[
               "segmentid1",
               "segmentid2"
            ],
            "remove":[
               "segmentid3"
            ]
         }
      },
      {
         "identities":[
            
         ],
         "AdobeExperiencePlatformSegments":{
            "add":[
               "segmentid1",
               "segmentid2"
            ],
            "remove":[
               "segmentid3"
            ]
         }
      }
   ]
}       

本文で送信したプロファイルを使用したテンプレートのレンダリング

リクエスト

次のリクエストでは、宛先で想定されている形式に一致するサンプルプロファイルがレンダリングされます。 サンプルプロファイル生成 API を使用して、呼び出し時に送信するプロファイルを生成できます。

curl --location --request POST 'https://platform.adobe.io/data/core/activation/authoring/testing/template/render' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'x-api-key: {API_KEY}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-gw-ims-org-id: {IMS_ORG}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--data-raw '
{
   "destinationId":"{DESTINATION_ID}",
   "template":"{# THIS is an example template for multiple profiles #}\r\n{\r\n    \"profiles\": [\r\n        {% for profile in input.profiles %}\r\n            {\r\n                \"identities\": [\r\n                    {% for email in profile.identityMap.email %}\r\n                        {\r\n                            \"type\": \"email\",\r\n                            \"id\": \"{{ email.id }}\"\r\n                        }{% if not loop.last %},{% endif %}\r\n                    {% endfor %}\r\n\r\n                    {# Add a comma only if we have both emails and external_ids. #}\r\n                    {% if profile.identityMap.email is not empty and profile.identityMap.external_id is not empty %}\r\n                        ,\r\n                    {% endif %}\r\n\r\n                    {% for external in profile.identityMap.external_id %}\r\n                        {\r\n                            \"type\": \"external_id\",\r\n                            \"id\": \"{{ external.id }}\"\r\n                        }{% if not loop.last %},{% endif %}\r\n                    {% endfor %}\r\n                ],\r\n                \"AdobeExperiencePlatformSegments\": {\r\n                    \"add\": [\r\n                        {% for segment in profile.segmentMembership.ups | added %}\r\n                            \"{{ segment.key }}\"{% if not loop.last %},{% endif %}\r\n                        {% endfor %}\r\n                    ],\r\n                    \"remove\": [\r\n                        {# Alternative syntax for filtering segments by status: #}\r\n                        {% for segment in removedSegments(profile.segmentMembership.ups) %}\r\n                            \"{{ segment.key }}\"{% if not loop.last %},{% endif %}\r\n                        {% endfor %}\r\n                    ]\r\n                }\r\n            }{% if not loop.last %},{% endif %}\r\n        {% endfor %}\r\n    ]\r\n}",
   "profiles":[
      {
         "segmentMembership":{
            "ups":{
               "segmentid1":{
                  "lastQualificationTime":"2021-06-17T12:08:07.870859Z",
                  "status":"existing"
               },
               "segmentid3":{
                  "lastQualificationTime":"2021-06-17T12:08:07.870860Z",
                  "status":"exited"
               },
               "segmentid2":{
                  "lastQualificationTime":"2021-06-17T12:08:07.870860Z",
                  "status":"realized"
               }
            }
         },
         "identityMap":{
            "email":[
               {
                  "id":"Email-gq3zZ"
               }
            ],
            "external_id":[
               {
                  "id":"external_id"
               }
            ]
         }
      }
   ]
}'

応答

応答は、テンプレートのレンダリングの結果、または発生したエラーを返します。
正常な応答は、HTTP ステータス 200 と、エクスポートされたデータの詳細を返します。
失敗した応答は、HTTP ステータス 500 と、発生したエラーの説明を返します。

{
   "profiles":[
      {
         "identities":[
            {
               "type":"email",
               "id":"Email-gq3zZ"
            },
            {
               "type":"external_id",
               "id":"external_id"
            }
         ],
         "AdobeExperiencePlatformSegments":{
            "add":[
               "segmentid1",
               "segmentid2"
            ],
            "remove":[
               "segmentid3"
            ]
         }
      }
   ]
}

API エラー処理

宛先 SDK API エンドポイントは、一般的なExperience PlatformAPI エラーメッセージの原則に従います。 Platform トラブルシューティングガイドの API ステータスコード および リクエストヘッダーのエラー を参照してください。

次の手順

このドキュメントを読むと、メッセージ変換テンプレートを使用して、宛先で予想されるデータ形式に一致する書き出し済みのプロファイルを生成する方法がわかります。 宛先 SDK を使用して宛先を設定する方法 を読んで、この手順が宛先の設定プロセスにどのように適しているかを確認してください。

このページ