Créer et tester un modèle de transformation de message

Présentation

Dans le cadre de la Destination SDK, Adobe fournit des outils de développement pour vous aider à configurer et tester votre destination. Cette page décrit comment créer et tester un modèle de transformation de messages. Pour plus d’informations sur la manière de tester votre destination, reportez-vous à la section Test de votre configuration de destination.

À créer et tester un modèle de transformation de message ; entre le schéma cible de Adobe Experience Platform et le format de message pris en charge par votre destination, utilisez la méthode Outil de création de modèles décrit plus loin. En savoir plus sur la transformation des données entre le schéma source et le schéma cible dans la section document format du message.

L’illustration ci-dessous montre comment la création et le test d’un modèle de transformation de message s’insèrent dans le workflow de configuration des destinations en Destination SDK :

Graphique indiquant l’emplacement de l’étape de création de modèle dans le workflow de configuration de destination

Pourquoi vous devez créer et tester un modèle de transformation de message

L’une des premières étapes de la création de votre destination dans Destination SDK consiste à réfléchir à la manière dont le format de données pour l’appartenance à un segment, les identités et les attributs de profil est transformé lors de l’exportation de Adobe Experience Platform vers votre destination. Obtenez des informations sur la transformation entre le schéma XDM d’Adobe et votre schéma de destination dans la section document format du message.

Pour que la transformation réussisse, vous devez fournir un modèle de transformation semblable à celui-ci : Créer un modèle qui envoie des segments, des identités et des attributs de profil.

Adobe fournit un outil de modèle qui vous permet de créer et de tester le modèle de message qui transforme les données du format XDM d’Adobe dans le format pris en charge par votre destination. L’outil comporte deux points de terminaison API que vous pouvez utiliser :

  • Utilisez la variable exemple d’API de modèle pour obtenir un exemple de modèle.
  • Utilisez la variable API de modèle de rendu pour effectuer le rendu de l’exemple de modèle afin de comparer le résultat au format de données attendu de votre destination. Après avoir comparé les données exportées au format de données attendu par votre destination, vous pouvez modifier le modèle. Ainsi, les données exportées que vous générez correspondent au format de données attendu par votre destination.

Etapes à suivre avant de créer le modèle

Avant de vous préparer à créer le modèle, procédez comme suit :

  1. Création d’une configuration de serveur de destination. Le modèle que vous allez générer diffère en fonction de la valeur fournie pour la variable maxUsersPerRequest .
    • Utilisation maxUsersPerRequest=1 si vous souhaitez qu’un appel d’API à votre destination inclue un seul profil, ainsi que ses qualifications de segment, ses identités et ses attributs de profil.
    • Utilisation maxUsersPerRequest avec une valeur supérieure à un si vous souhaitez qu’un appel d’API vers votre destination inclue plusieurs profils, ainsi que leurs qualifications de segments, leurs identités et leurs attributs de profil.
  2. Création d’une configuration de destination et ajoutez l’identifiant de la configuration du serveur de destination dans destinationDelivery.destinationServerId.
  3. Obtention de l’identifiant de la configuration de destination que vous venez de créer, afin que vous puissiez l’utiliser dans l’outil de création de modèles.
  4. Comprendre fonctions et filtres que vous pouvez utiliser dans le modèle de transformation des messages.

Utilisation de l’exemple d’API de modèle et de l’API de modèle de rendu pour créer un modèle pour votre destination

CONSEIL

Avant de concevoir et de modifier votre modèle de transformation des messages, vous pouvez commencer par appeler le point d’entrée de l’API de modèle de rendu avec un modèle simple qui exporte vos profils bruts sans appliquer de transformations. La syntaxe du modèle simple est la suivante :
. "template": "{% for profile in input.profiles %}{{profile|raw}}{% endfor %}}"

Le processus d’obtention et de test du modèle est itératif. Répétez les étapes ci-dessous jusqu’à ce que les profils exportés correspondent au format de données attendu de votre destination.

  1. Tout d’abord, obtenir un exemple de modèle.
  2. Utilisez l’exemple de modèle comme point de départ pour créer votre propre version préliminaire.
  3. Appelez le point d’entrée de l’API de modèle de rendu avec votre propre modèle. Adobe génère des exemples de profils en fonction de votre schéma et renvoie le résultat ou les erreurs rencontrées.
  4. Comparez les données exportées au format de données attendu par votre destination. Si nécessaire, modifiez le modèle.
  5. Répétez cette procédure jusqu’à ce que les profils exportés correspondent au format de données attendu de votre destination.

Obtention d’un exemple de modèle à l’aide de l’API Exemple de modèle

REMARQUE

Pour consulter la documentation de référence complète sur l’API, reportez-vous à la section Obtention d’un exemple d’opération d’API de modèle.

Ajoutez un ID de destination à l’appel, comme illustré ci-dessous, et la réponse renvoie un exemple de modèle correspondant à l’ID de destination.

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}' \

Si l’identifiant de destination que vous fournissez correspond à une configuration de destination avec agrégation des meilleurs efforts et maxUsersPerRequest=1 dans la stratégie d’agrégation, la requête renvoie un exemple de modèle similaire à celui-ci :

{#- 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 %}
        ]
    }
}

Si l’identifiant de destination que vous fournissez correspond à un modèle de serveur de destination avec agrégation configurable ou agrégation des meilleurs efforts avec maxUsersPerRequest supérieur à un, la requête renvoie un exemple de modèle similaire à celui-ci :

{#- 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 %}
    ]
}

Caractère et échappement du modèle

Avant d’utiliser le modèle pour effectuer le rendu des profils qui correspondent au format attendu de votre destination, vous devez ajouter un caractère d’échappement au modèle, comme indiqué dans l’enregistrement d’écran ci-dessous.

Vidéo montrant comment ajouter une séquence d’échappement de caractère à un modèle à l’aide d’un outil d’échappement de caractères en ligne

Vous pouvez utiliser un outil d’échappement des caractères en ligne. La démonstration ci-dessus utilise la méthode Formateur d’échappement JSON.

API de modèle de rendu

Après avoir créé un modèle de transformation de message à l’aide de la variable exemple d’API de modèle, vous pouvez rendu du modèle ; pour générer les données exportées en fonction de celle-ci. Cela vous permet de vérifier si les profils que Adobe Experience Platform exporterait vers votre destination correspondent au format prévu de votre destination.

Reportez-vous à la référence d’API pour obtenir des exemples d’appels que vous pouvez effectuer :

Modifiez le modèle et effectuez des appels vers le point de terminaison de l’API du modèle de rendu jusqu’à ce que les profils exportés correspondent au format de données attendu de votre destination.

Ajoutez votre modèle avec séquence d’échappement aux caractères à la configuration du serveur de destination.

Une fois que vous êtes satisfait de votre modèle de transformation de messages, ajoutez-le à votre configuration du serveur de destination, dans httpTemplate.requestBody.value.

Sur cette page