Criar e testar um modelo de transformação de mensagem create-template
Visão geral overview
Como parte do Destination SDK, o Adobe fornece ferramentas de desenvolvedor para ajudá-lo a configurar e testar seu destino. Esta página descreve como criar e testar um modelo de transformação de mensagem. Para obter informações sobre como testar o destino, leia Testar a configuração de destino.
Para criar e testar um modelo de transformação de mensagem entre o esquema de destino no Adobe Experience Platform e o formato de mensagem aceito pelo seu destino, use a Ferramenta de criação de modelo, descrita mais abaixo. Leia mais sobre a transformação de dados entre o esquema de origem e de destino no documento de formato de mensagem.
Veja abaixo como criar e testar um modelo de transformação de mensagem que se encaixa no fluxo de trabalho de configuração de destino em Destination SDK:
Por que você precisa criar e testar um template de transformação de mensagem why-create-message-transformation-template
Uma das primeiras etapas na criação do seu destino no Destination SDK é pensar em como o formato de dados para associação de público-alvo, identidades e atributos de perfil é transformado quando exportado do Adobe Experience Platform para o seu destino. Encontre informações sobre a transformação entre o esquema XDM do Adobe e o esquema de destino no documento sobre o formato da mensagem.
Para que a transformação tenha êxito, você deve fornecer um modelo de transformação, semelhante a este exemplo: Crie um modelo que envie segmentos, identidades e atributos de perfil.
O Adobe fornece uma ferramenta de modelo que permite criar e testar o modelo de mensagem que transforma os dados do formato XDM do Adobe no formato compatível com seu destino. A ferramenta tem dois endpoints de API que podem ser usados:
- Use a API de modelo de exemplo para obter um modelo de exemplo.
- Use a API de modelo de renderização para renderizar o modelo de amostra para que você possa comparar o resultado com o formato de dados esperado do seu destino. Depois de comparar os dados exportados com o formato de dados esperado pelo seu destino, você pode editar o template. Dessa forma, os dados exportados gerados correspondem ao formato de dados esperado pelo destino.
Etapas a serem concluídas antes de criar o modelo prerequisites
Antes de estar pronto para criar o template, conclua as etapas abaixo:
-
Criar uma configuração do servidor de destino. O modelo que você gerará é diferente, com base no valor fornecido para o parâmetro
maxUsersPerRequest
.- Use
maxUsersPerRequest=1
se você quiser que uma chamada de API para o seu destino inclua um único perfil, juntamente com suas qualificações de público-alvo, identidades e atributos de perfil. - Use
maxUsersPerRequest
com um valor maior que um se quiser que uma chamada de API para o seu destino inclua vários perfis, juntamente com suas qualificações de público-alvo, identidades e atributos de perfil.
- Use
-
Crie uma configuração de destino e adicione a identificação da configuração do servidor de destino em
destinationDelivery.destinationServerId
. -
Obtenha a ID da configuração de destino que você acabou de criar, para poder usá-la na ferramenta de criação de modelos.
-
Entenda quais funções e filtros você pode usar no modelo de transformação de mensagem.
Como usar a API de modelo de amostra e a API de modelo de renderização para criar um modelo para o seu destino iterative-process
"template": "{% for profile in input.profiles %}{{profile|raw}}{% endfor %}}"
O processo para obter e testar o modelo é iterativo. Repita as etapas abaixo até que os perfis exportados correspondam ao formato de dados esperado do seu destino.
- Primeiro, obtenha um modelo de amostra.
- Use o modelo de amostra como ponto de partida para criar seu próprio rascunho.
- Chame o ponto de extremidade da API do modelo de renderização com seu próprio modelo. O Adobe gera perfis de amostra com base no esquema e retorna o resultado ou quaisquer erros encontrados.
- Compare os dados exportados com o formato de dados esperado pelo seu destino. Se necessário, edite o template.
- Repita esse processo até que os perfis exportados correspondam ao formato de dados esperado do destino.
Obter um modelo de amostra usando a API de modelo de amostra sample-template-api
Adicione uma ID de destino à chamada, como mostrado abaixo, e a resposta retornará um exemplo de modelo correspondente à ID de destino.
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}' \
Se a ID de destino fornecida corresponder a uma configuração de destino com agregação de melhor esforço e maxUsersPerRequest=1
na política de agregação, a solicitação retornará um modelo de exemplo semelhante a este:
{#- 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 audiences by status: -#}
{% for segment in removedSegments(input.profile.segmentMembership.ups) %}
"{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
{% endfor %}
]
}
}
Se a ID de destino fornecida corresponder a um modelo de servidor de destino com agregação configurável ou agregação de melhor esforço com maxUsersPerRequest
maior que um, a solicitação retornará um modelo de exemplo semelhante a este:
{#- 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 audiences by status: -#}
{% for segment in removedSegments(profile.segmentMembership.ups) %}
"{{ segment.key }}"{%- if not loop.last -%},{%- endif -%}
{% endfor %}
]
}
}{%- if not loop.last -%},{%- endif -%}
{% endfor %}
]
}
Caractere de escape em seu modelo character-escape-template
Antes de usar o modelo para renderizar perfis que correspondam ao formato esperado do destino, você deve usar o recurso de escape de caractere no modelo, conforme mostrado na gravação de tela abaixo.
Você pode usar uma ferramenta de escape de caracteres online. A demonstração acima usa o formatador JSON Escape.
API de modelo de renderização render-template-api
Depois de criar um modelo de transformação de mensagem usando a API de modelo de amostra, você pode renderizar o modelo para gerar dados exportados com base nele. Isso permite verificar se os perfis que o Adobe Experience Platform exportaria para seu destino correspondem ao formato esperado do destino.
Consulte a referência da API para obter exemplos de chamadas que você pode fazer:
Edite o modelo e faça chamadas para o endpoint da API do modelo de renderização até que os perfis exportados correspondam ao formato de dados esperado do destino.
Adicionar seu modelo com caractere de escape à configuração do servidor de destino
Quando estiver satisfeito com o seu modelo de transformação de mensagem, adicione-o à sua configuração do servidor de destino, em httpTemplate.requestBody.value
.