Creare e testare un modello di trasformazione dei messaggi create-template
Panoramica overview
Come parte di Destination SDK, Adobe fornisce strumenti per sviluppatori per aiutarti a configurare e testare la destinazione. Questa pagina descrive come creare e testare un modello di trasformazione dei messaggi. Per informazioni su come verificare la destinazione, leggere Verifica la configurazione di destinazione.
Per creare e testare un modello di trasformazione dei messaggi tra lo schema di destinazione in Adobe Experience Platform e il formato di messaggio supportato dalla destinazione, utilizzare lo strumento di creazione dei modelli descritto di seguito. Ulteriori informazioni sulla trasformazione dei dati tra lo schema di origine e di destinazione nel documento formato messaggio.
Di seguito è illustrato il modo in cui la creazione e il test di un modello di trasformazione dei messaggi si adattano al flusso di lavoro di configurazione di destinazione in Destination SDK:
Perché è necessario creare e testare un modello di trasformazione dei messaggi why-create-message-transformation-template
Uno dei primi passaggi nella creazione della destinazione in Destination SDK consiste nel pensare a come il formato dei dati per l’iscrizione al pubblico, le identità e gli attributi di profilo viene trasformato quando si esporta da Adobe Experience Platform alla destinazione. Trova informazioni sulla trasformazione tra lo schema XDM Adobe e lo schema di destinazione nel documento in formato messaggio.
Affinché la trasformazione venga eseguita correttamente, è necessario fornire un modello di trasformazione simile a questo esempio: Creare un modello che invia segmenti, identità e attributi di profilo.
Adobe fornisce uno strumento per modelli che consente di creare e testare il modello di messaggio che trasforma i dati dal formato XDM di Adobe nel formato supportato dalla destinazione. Lo strumento dispone di due endpoint API che puoi utilizzare:
- Utilizza API modello di esempio per ottenere un modello di esempio.
- Utilizza l'API modello di rendering per eseguire il rendering del modello di esempio in modo da confrontare il risultato con il formato di dati previsto della tua destinazione. Dopo aver confrontato i dati esportati con il formato dati previsto dalla destinazione, puoi modificare il modello. In questo modo, i dati esportati generati corrisponderanno al formato dati previsto dalla destinazione.
Passaggi da completare prima di creare il modello prerequisites
Prima di creare il modello, assicurati di completare i passaggi seguenti:
-
Crea una configurazione del server di destinazione. Il modello che verrà generato è diverso in base al valore fornito per il parametro
maxUsersPerRequest
.- Utilizza
maxUsersPerRequest=1
se vuoi che una chiamata API alla tua destinazione includa un singolo profilo, insieme alle sue qualifiche di pubblico, identità e attributi di profilo. - Utilizza
maxUsersPerRequest
con un valore maggiore di uno se desideri che una chiamata API alla tua destinazione includa più profili, insieme alle loro qualifiche di pubblico, identità e attributi di profilo.
- Utilizza
-
Creare una configurazione di destinazione e aggiungere l'ID della configurazione del server di destinazione in
destinationDelivery.destinationServerId
. -
Ottieni l'ID della configurazione di destinazione appena creata, in modo da poterlo utilizzare nello strumento di creazione del modello.
-
Comprendere quali funzioni e filtri è possibile utilizzare nel modello di trasformazione dei messaggi.
Utilizzare l’API modello di esempio e l’API modello di rendering per creare un modello per la destinazione iterative-process
"template": "{% for profile in input.profiles %}{{profile|raw}}{% endfor %}}"
Il processo per ottenere e testare il modello è iterativo. Ripeti i passaggi seguenti fino a quando i profili esportati non corrispondono al formato di dati previsto della destinazione.
- ottenere un modello di esempio.
- Utilizza il modello di esempio come punto di partenza per creare una bozza personalizzata.
- Chiama l'endpoint API del modello di rendering 🔗 con il tuo modello. Adobe genera profili di esempio in base allo schema e restituisce il risultato o eventuali errori riscontrati.
- Confronta i dati esportati con il formato dati previsto dalla destinazione. Se necessario, modifica il modello.
- Ripeti questo processo fino a quando i profili esportati non corrispondono al formato di dati previsto della destinazione.
Ottenere un modello di esempio utilizzando l’API del modello di esempio sample-template-api
Aggiungi un ID di destinazione alla chiamata, come mostrato di seguito, e la risposta restituirà un esempio di modello corrispondente all’ID di destinazione.
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 l'ID di destinazione fornito corrisponde a una configurazione di destinazione con aggregazione della migliore risorsa e maxUsersPerRequest=1
nel criterio di aggregazione, la richiesta restituisce un modello di esempio simile al seguente:
{#- 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 l'ID di destinazione fornito corrisponde a un modello del server di destinazione con aggregazione configurabile o aggregazione ottimale con maxUsersPerRequest
maggiore di uno, la richiesta restituisce un modello di esempio simile al seguente:
{#- 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 %}
]
}
Carattere-escape per il modello character-escape-template
Prima di utilizzare il modello per eseguire il rendering di profili che corrispondono al formato previsto della destinazione, è necessario eseguire l’escape carattere del modello, come illustrato nella registrazione schermata seguente.
È possibile utilizzare uno strumento di escape di caratteri online. La demo precedente utilizza il formattatore di escape JSON.
Rendering dell’API modello render-template-api
Dopo aver creato un modello di trasformazione dei messaggi utilizzando l'API modello di esempio, puoi eseguire il rendering del modello per generare i dati esportati in base a esso. Questo ti consente di verificare se i profili che Adobe Experience Platform esporterebbe nella destinazione corrispondono al formato previsto della destinazione.
Per esempi di chiamate che puoi effettuare, consulta il riferimento API:
Modifica il modello ed effettua chiamate all’endpoint API del modello di rendering fino a quando i profili esportati non corrispondono al formato di dati previsto della destinazione.
Aggiungere il modello con escape di caratteri alla configurazione del server di destinazione
Una volta ottenuto il modello di trasformazione del messaggio, aggiungerlo alla configurazione del server di destinazione, in httpTemplate.requestBody.value
.