建立和test消息轉換模板

總覽

作為Destination SDK的一部分,Adobe提供開發人員工具,幫助您配置和測試目標。 此頁介紹如何建立和test消息轉換模板。 有關如何test目標的資訊,請閱讀 Test目標配置

建立和test消息轉換模板 在Adobe Experience Platform的目標架構和目標支援的消息格式之間,使用 模板創作工具 詳見下文。 閱讀有關中源架構和目標架構之間資料轉換的詳細資訊 消息格式文檔

下面說明了如何建立和測試消息轉換模板 目標配置工作流 Destination SDK:

建立模板步驟適合目標配置工作流的圖形

為什麼需要建立和test消息轉換模板

在Destination SDK中建立目標的第一步是考慮在從Adobe Experience Platform導出到目標時如何轉換段成員身份、標識和配置檔案屬性的資料格式。 查找有關AdobeXDM架構與目標架構之間轉換的資訊, 消息格式文檔

要使轉換成功,必須提供一個轉換模板,與以下示例類似: 建立發送段、標識和配置檔案屬性的模板

Adobe提供了一個模板工具,允許您建立和test消息模板,該消息模板將資料從AdobeXDM格式轉換為目標支援的格式。 該工具有兩個API端點,可以使用:

  • 使用 示例模板API 獲取示例模板。
  • 使用 呈現模板API 以呈現示例模板,以便將結果與目標的預期資料格式進行比較。 將導出的資料與目標所需的資料格式進行比較後,可以編輯模板。 這樣,您生成的導出資料與目標預期的資料格式匹配。

建立模板之前要完成的步驟

在準備好建立模板之前,請確保完成以下步驟:

  1. 建立目標伺服器配置。 根據為 maxUsersPerRequest 的下界。
    • 使用 maxUsersPerRequest=1 如果希望目標的API調用包括單個配置檔案及其段資格、標識和配置檔案屬性。
    • 使用 maxUsersPerRequest 如果希望到目標的API調用包括多個配置式,以及其段資格、標識和配置式屬性,則值大於1。
  2. 建立目標配置 並在中添加目標伺服器配置的ID destinationDelivery.destinationServerId
  3. 獲取目標配置的ID 建立的模板,以便在模板建立工具中使用。
  4. 瞭解 可以使用的函式和篩選器 中。

如何使用示例模板API和呈現模板API為目標建立模板

秘訣

在編製和編輯消息轉換模板之前,您可以先調用 呈現模板API終結點 使用一個簡單模板導出原始配置檔案,而不應用任何轉換。 簡單模板的語法為:
"template": "{% for profile in input.profiles %}{{profile|raw}}{% endfor %}}"

獲取和test模板的過程是迭代的。 重複以下步驟,直到導出的配置檔案與目標的預期資料格式匹配。

  1. 首先, 獲取示例模板
  2. 使用示例模板作為起點建立自己的草稿。
  3. 呼叫 呈現模板API終結點 使用您自己的模板。 Adobe根據您的方案生成示例配置檔案並返回結果或遇到的任何錯誤。
  4. 將導出的資料與目標預期的資料格式進行比較。 如果需要,請編輯模板。
  5. 重複此過程,直到導出的配置檔案與目標的預期資料格式匹配。

使用示例模板API獲取示例模板

注意

有關完整的API參考文檔,請閱讀 獲取示例模板API操作

將目標ID添加到調用中,如下所示,響應將返回與目標ID對應的模板示例。

curl --location --request GET 'https://platform.adobe.io/data/core/activation/authoring/testing/template/sample/5114d758-ce71-43ba-b53e-e2a91d67b67f' \
--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: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \

如果提供的目標ID與目標配置相對應,則 最佳工作聚合maxUsersPerRequest=1 在聚合策略中,請求返回與以下模板類似的示例模板:

{#- THIS is an example template for a single profile -#}
{#- A '-' at the beginning or end of a tag removes all whitespace on that side of the tag. -#}
{
    "identities": [
    {%- for idMapEntry in input.profile.identityMap -%}
    {%- set namespace = idMapEntry.key -%}
        {%- for identity in idMapEntry.value %}
        {
            "type": "{{ namespace }}",
            "id": "{{ identity.id }}"
        }{%- if not loop.last -%},{%- endif -%}
        {%- endfor -%}{%- if not loop.last -%},{%- endif -%}
    {% endfor %}
    ],
    "AdobeExperiencePlatformSegments": {
        "add": [
        {%- for segment in input.profile.segmentMembership.ups | added %}
            "{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
        {% endfor %}
        ],
        "remove": [
        {#- Alternative syntax for filtering segments by status: -#}
        {% for segment in removedSegments(input.profile.segmentMembership.ups) %}
            "{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
        {% endfor %}
        ]
    }
}

如果您提供的目標ID與目標伺服器模板對應, 可配置聚合最佳工作聚合maxUsersPerRequest 大於1時,請求返回與此類似的示例模板:

{#- THIS is an example template for multiple profiles -#}
{#- A '-' at the beginning or end of a tag removes all whitespace on that side of the tag. -#}
{
    "profiles": [
    {%- for profile in input.profiles %}
        {
            "identities": [
            {%- for idMapEntry in profile.identityMap -%}
            {%- set namespace = idMapEntry.key -%}
                {%- for identity in idMapEntry.value %}
                {
                    "type": "{{ namespace }}",
                    "id": "{{ identity.id }}"
                }{%- if not loop.last -%},{%- endif -%}
                {%- endfor -%}{%- if not loop.last -%},{%- endif -%}
            {% endfor %}
            ],
            "AdobeExperiencePlatformSegments": {
                "add": [
                {%- for segment in profile.segmentMembership.ups | added %}
                    "{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
                {% endfor %}
                ],
                "remove": [
                {#- Alternative syntax for filtering segments by status: -#}
                {% for segment in removedSegments(profile.segmentMembership.ups) %}
                    "{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
                {% endfor %}
                ]
            }
        }{%- if not loop.last -%},{%- endif -%}
    {% endfor %}
    ]
}

字元轉義模板

使用模板呈現與目標預期格式匹配的配置檔案之前,必須對模板進行字元轉義,如下面的螢幕錄制所示。

顯示如何使用聯機字元轉義工具對模板進行字元轉義的視頻

可以使用聯機字元轉義工具。 以上演示使用 JSON轉義格式化程式

呈現模板API

在使用 示例模板API, 呈現模板 生成導出資料。 這允許您驗證Adobe Experience Platform將導出到目標的配置檔案是否與目標的預期格式匹配。

有關可以進行的調用示例,請參閱API參考:

編輯模板並調用呈現模板API終結點,直到導出的配置檔案與目標的預期資料格式匹配。

將字元轉義模板添加到目標伺服器配置

一旦您對郵件轉換模板感到滿意,請將其添加到 目標伺服器配置, httpTemplate.requestBody.value

本頁內容