Générer des bannières publicitaires X pour différents emplacements

Ce document fournit un guide complet sur la génération d'annonces de bannières X pour différents types d’emplacements. Les bannières publicitaires X sont générées sur /bannerx un point de terminaison. Toutes les requêtes de bannières X nécessitent les éléments contentStandardId et bannerSlotIds auxquels vos requêtes d'annonces sont liées. Chaque requête API doit également inclure des détails sur le contexte, tels que :

  • Emplacement
  • ID du catalogue
  • customerId
  • sessionId
  • Terme de recherche
  • Nombre maximum d’annonces à afficher

Emplacement de recherche

Conditions préalables

Vous devez effectuer les étapes suivantes avant de commencer à demander des bannières publicitaires X pour les emplacements de recherche.

1. Ajouter des catalogues de produits

Assurez-vous que vos produits ont été ajoutés à vos catalogues et synchronisés avec la plateforme Epsilon Retail Media. Pour obtenir de plus amples informations, veuillez consulter la section Présentation des catalogues et des produits.

2. Créer une campagne et configurer les termes de recherche

Assurez-vous d'avoir créé une campagne et configuré des termes de recherche. Pour obtenir de plus amples informations, veuillez consulter la section Étape 4b : configurer les termes de recherche. Définissez les termes de recherche que vous désirez cibler (inclure et exclure) pour vos annonces de produits. Vous pouvez préciser une correspondance exacte, une correspondance d'expressions et des termes de recherche négatifs.

3. Récupérer les clés API et l’URL de base

  1. Vous devez disposer d’une clé API valide. Procédez comme suit :

    1. Connectez-vous au compte de votre équipe Retail Media d’Epsilon.

    2. Allez en haut à droite de la page et cliquez sur le menu déroulant.

    3. Sélectionnez Paramètres d’intégration dans le menu déroulant.

    4. Cliquez sur l’onglet Clé API. Votre clé API secrète est initialement masquée. Pour l’afficher, cliquez sur le bouton Afficher. Une fois visible, copiez-la. Utilisez-la pour effectuer des appels API.

  2. Vous devez avoir l’URL de base pour le point de terminaison d’API. Par exemple, https://staging-test.citrusad.com/v1/ads/generate HTTP/1.1. Vérifiez-la auprès de votre responsable de compte technique.

Générer des annonces

Procédez comme suit pour générer des annonces de produits.

Requête HTTP

Point de terminaison : /v1/ads/generate

Méthode : POST

En-têtes :

  • accepter : application/json
  • content-type : application/json
  • Autorisation : Basic <API_KEY>

Paramètres de la requête

Le corps de la requête doit être un objet JSON contenant les champs suivants :

objettypeDescription
customerIdchaîne, obligatoireL’identifiant unique du client (il est fourni par votre détaillant).
sessionIdchaîne, obligatoireL’identifiant unique de la session. Cette information est nécessaire pour l’attribution (elle est fournie par le détaillant).
ID de la norme de contenuchaîne, obligatoireL'identifiant de la norme de contenu de votre bannière X.
bannerSlotIdschaîne, obligatoireL'identifiant de l'espace de votre bannière X.
Emplacementchaîne, obligatoireContexte dans lequel l’annonce est affichée (par exemple, « recherche »).
ID du cataloguechaîne, obligatoireL’identifiant unique du catalogue de produits à partir duquel les produits sont filtrés. Vous pouvez l'obtenir à partir de l’interface utilisateur Retail Media d’Epsilon ou auprès du détaillant.
maxNumberOfAdsnombre entier, obligatoireNombre maximum d’annonces à afficher Lorsque vous émettez une requête de bannières publicitaires X, vous pouvez préciser le nombre maximum de bannières que vous souhaitez recevoir par espace de bannière. Vous pouvez contrôler cela grâce au paramètre maxNumberOfAds .
Terme de recherchechaîne, obligatoire pour les emplacements de rechercheTerme à rechercher dans le catalogue
optionsobjet, facultatifOptions supplémentaires telles que les modes de filtrage AndOrSi elle est précisée, le système utilisera les conditions « ET » et « OU » pour affiner les résultats de la recherche.

Exemple de requête

Les emplacements de recherche sont généralement les plus faciles à demander. Ils nécessitent qu'un searchTerm soit spécifié dans la requête, comme dans l'exemple ci-dessous :

POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "options": {
   						 "filterMode": "AndOr"
 							 },
    "contentStandardId": "c61941e2-1435-460b-9d2b-5d838e3dba9c",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
  ]
}

Emplacements de catégories

Les emplacements de catégories nécessitent que l'élément productFilters . L'exemple ci-dessous vous montre où envoyer les filtres de catégories :

POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "category",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 ["category:Cupboard/Snacks"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}

Au fur et à mesure que des catégories supplémentaires sont ajoutées, vous devriez mettre à jour votre appel API en conséquence.

Emplacements des catégories de ventes croisées

Les requêtes d'emplacement pour les catégories de ventes croisées sont très similaires à celles des catégories classiques. Vous devez préciser la catégorie exacte pour laquelle vous demandez des annonces. Il s'agit généralement de la page sur laquelle vous vous trouvez. Il vous faut indiquer la catégorie dans le productFilters de la requête. L'exemple ci-dessous vous montre où envoyer les filtres de catégories :

POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "category-cross-sell",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 ["category:Cupboard/Snacks"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlots": [
           {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
    ],            
    "maxNumberOfAds": 3
}

Au fur et à mesure que des catégories supplémentaires sont ajoutées, vous devez mettre à jour votre appel API en conséquence.

📘

Fusionner le ciblage des catégories organiques et des ventes croisées ?

Si vous souhaitez fusionner une requête d'annonce de catégorie organique et de ventes croisées dans un même emplacement, vous devez mettre en œuvre une logique de fusion et de diffusion à vos clients. Cela relève de l'intégrateur, bien que chez Epsilon Retail Media nous serions ravis d'être consultés.

En général, nous vous conseillons d'afficher des annonces de catégories organiques, et de positionner les annonces de ventes croisées après les organiques.

Emplacements de requête large

Sur des emplacements larges, tels que des pages d'accueil ou de paiement, il n'est pas nécessaire de préciser dans la requête l'élément productFilters soit précisé dans la requête. Le détaillant peut préciser les filtres de son choix (en promotion, nouveauté, etc.) dans l'élément productFilters afin de garantir qu'Epsilon Retail Media diffuse uniquement des annonces conformes aux exigences, comme dans l'exemple ci-dessous :

POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "home",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 []
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}

Améliorations des requêtes

Nous vous conseillons d'envisager les améliorations ci-dessous afin d'optimiser votre expérience utilisateur.

Recherches filtrées

Si votre client filtre sa recherche, vous pouvez élargir votre contexte afin de proposer des productFilters. Dans l'exemple ci-dessous, le client choisit de filtrer par catégorie « Cupboard » (Garde-manger), puis par restriction alimentaire « Gluten-free » (Sans gluten). Ce même principe peut être appliqué à n'importe quelle catégorie ou emplacement de requête large.

POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "productFilters": [
     	 ["category:Cupboard"],["dietary:Gluten-free"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}

Filtrage par emplacement

Si vous synchronisez les filtres d'emplacement dans votre catalogue, vous pouvez élargir votre contexte afin de proposer l'emplacement de la boutique du client dans les productFilters, comme dans l'exemple ci-dessous :

POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "productFilters": [
     	 ["category:Cupboard"],["dietary:Gluten-free"],["location:Westenbury"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}

Réponse de la bannière X

Toutes les réponses suivent le même format JSON. Tout le contenu requis pour afficher la bannière est fourni dans la réponse. Si aucun composant n'est configuré pour la bannière (par exemple, aucune image Hero secondaire), Epsilon Retail Media ne diffusera pas la propriété.

{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.tesco.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1
                }
            ]
        },
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun_kZp9yTCMm71vTo7iyQaK9I_YB09FUFYzNzBTQ0FO",
                    "citrusCampaignName": "milo-campaign-lakjsdf09kj",
                    "citrusContentStandardId": "21r372ba-dce6-46f2-bd16-1b923b9189f9",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "A banner for Milo with a product image and a shop now button",
                    "bannerText": "<strong>Try Milo Cereal</strong>",
                    "bannerTextColour": "48a94c",
                    "heroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8851d59f0574",
                    "heroImageAltText": "Milo product image",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Milo products",
                    "ctaLink": "retailer.com/everything/search/heritage%20mill?pageNumber=1",
                    "secondaryHeroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8m435c34r",
                    "secondaryHeroImageAltText": "Milo Logo",
                    "secondaryHeroMode": "landscape",
                    "backgroundColour": "895b5b",
                    "backgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "backgroundImagePosition": "FILL",
                    "secondaryBackgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "tags": {},
                    "gtins": [
                         "16309011",
                         "57312011",
                         "65250011"
                                ],
                    "position": 1
                }
            ]
        }
    ]
}

L'AD_ID id correspond à l'identifiant de votre annonce utilisé dans les rapports d'impressions et de clics. Reportez-vous à la référence pour plus d'informations sur chaque chaîne.

Balises de suivi tierces

Pour les bannières publicitaires X, Epsilon Retail Media prend en charge le transfert de balises de suivi tierces au détaillant. Ces balises permettent aux annonceurs de vérifier leurs performances via un tiers de confiance.

Epsilon Retail Media prend en charge les balises de suivi ci-dessous :

  • DoubleVerify (Javascript et Image)
  • DCM Click
  • DCM Impression
  • IAS
  • Adform Impression
  • Cliquez sur Adform

Lorsqu'une balise de suivi est configurée pour une campagne, elle s'affiche comme champ pertinent dans l'objet trackingTags suivant. Remarque : si aucune balise n'a été configurée pour une campagne, l'objet tagset trackingTags restera vide.

{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.tesco.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                  	"trackingTags": {
                        "ADFORM_CLICK": "https://track.adform.net...",
                        "ADFORM_IMPRESSION": "<img src=\"https://track.adform.net...",
                        "DCM_CLICK": "https://ad.doubleclick.net/ddm/trackclk/...",
                        "DCM_IMPRESSION": "<IMG SRC=\"https://ad.doubleclick.net/ddm/trackimp/...",
                        "DV": "<script src=\"https://cdn.doubleverify.com/dvtp_src.js?ctx=...",
                        "DV_IMAGE": "<img src=\"https://tps.doubleverify.com/visit.jpg?ctx=..."
                    },
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1
                }
            ]
        }
    ]
}

Étant donné qu'Epsilon Retail Media est une intégration de serveur à serveur, les balises de suivi tierces nécessitent un développement supplémentaire par le détaillant. Contactez votre gestionnaire de programmes d'intégration (IPM) si vous souhaitez utiliser cette fonctionnalité.

📘

tags objet

Pour les balises DoubleVerify (Javascript) et DCM, il se peut que tags l'objet soit également renseigné. La meilleure pratique consiste à utiliser l'option trackingTags réponse.

Annonces vidéo

Si une campagne comporte des annonces vidéo configurées, la réponse comprend un admobjet, comme vous pouvez le voir ci-dessous :

{

  "ads": [

    {

      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",

      "slotId": "Top_Banner",

      "banners": [

        {

          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",

          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",

          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",

          "citrusSlotId": "Top_Banner",

          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",

          "headingText": "recusandae 3205",

          "bannerText": "placeat 2825",

          "bannerTextColour": "ffffff",

          "ctaFlag": true,

          "ctaText": "CTA text",

          "ctaTextAccessibility": "call to action accessibility text",

          "ctaLink": http://citrusad.com ,

          "backgroundColour": "000000",

          "backgroundImage": https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4,

          "secondaryBackgroundImage": https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34,

          "secondaryBackgroundImagePosition": "rightaligned",

          "heroImage": https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372,

          "heroImageAltText": "hero image alt text",

          "secondaryHeroImage": https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f,

          "secondaryHeroImageAltText": "secondary hero image alt text",

          "secondaryHeroMode": "landscape",

          "tags": {},

          "additionalFields": [

            {

              "id": "text-1",

              "value": "sed 5731"

            }

          ],

          "gtins": [

            "Fingerlime26-fdxvq27",

            "Oranges5-qgxeb6",

            "Cherries9-adkoj11",

            "Incaberries20-ppscn21",

            "Banana14-simfk15"

          ],

          "sellerId": "seller_id_772_659",

          "position": 1,

          "metadata": {

            "advertiserInfo": {

             "advertiser": "Bob's advertising agency",

             "onBehalfOf": "Brand company inc"

            }

          },
          "adm": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<VAST version=\"4.0\">\n    <Ad id=\"1\">\n        <InLine>\n            <AdSystem>CitrusAd</AdSystem>\n            <Impression><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/first-i/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></Impression>\n            <ViewableImpression>\n                <Viewable><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/first-i/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></Viewable>\n                <NotViewable></NotViewable>\n                <ViewUndetermined></ViewUndetermined>\n            </ViewableImpression>\n            <AdTitle>VAST-4.0-Short-Intro.mp4</AdTitle>\n            <Creatives>\n                <Creative>\n                    <UniversalAdId idRegistry=\"http://citrusad.com \" idValue=\"VAST-4.0-Short-Intro.mp4\">VAST-4.0-Short-Intro.mp4</UniversalAdId>\n                    <Linear>\n                        <Duration></Duration>\n                        <MediaFiles>\n                            <MediaFile delivery=\"progressive\" type=\"video/mp4\" width=\"0\" height=\"0\" bitrate=\"0\" codec=\"\"><![CDATA[https://cdn.flavedo.io./citrus/VAST-4.0-Short-Intro.mp4]]></MediaFile>\n                            <Mezzanine><![CDATA[https://cdn.flavedo.io./citrus/VAST-4.0-Short-Intro.mp4]]></Mezzanine>\n                        </MediaFiles>\n                        <VideoClicks>\n                            <ClickTracking><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/second-c/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></ClickTracking>\n                            <ClickThrough><![CDATA[a/a-national/everything/browse]]></ClickThrough>\n                        </VideoClicks>\n                    </Linear>\n                </Creative>\n            </Creatives>\n        </InLine>\n    </Ad>\n</VAST>"      

       }

      ]

    }

  ]

} 

Produits complémentaires

Si des produits complémentaires sont configurés pour une campagne, la réponse comprend un companionProductstableau d'objets, comme on peut le voir ci-dessous :

{
  "ads": [
    {
      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
      "slotId": "Top_Banner",
      "banners": [
        {
          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",
          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",
          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
          "citrusSlotId": "Top_Banner",
          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",
          "headingText": "recusandae 3205",
          "bannerText": "placeat 2825",
          "bannerTextColour": "ffffff",
          "ctaFlag": true,
          "ctaText": "CTA text",
          "ctaTextAccessibility": "call to action accessibility text",
          "ctaLink": http://citrusad.com,
          "backgroundColour": "000000",
          "backgroundImage": https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4,
          "secondaryBackgroundImage": https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34,
          "secondaryBackgroundImagePosition": "rightaligned",
          "heroImage": https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372,
          "heroImageAltText": "hero image alt text",
          "secondaryHeroImage": https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f,
          "secondaryHeroImageAltText": "secondary hero image alt text",
          "secondaryHeroMode": "landscape",
          "tags": {},
          "additionalFields": [
            {
              "id": "text-1",
              "value": "sed 5731"
            }
          ],
          "gtins": [
            "Fingerlime26-fdxvq27",
            "Oranges5-qgxeb6",
            "Cherries9-adkoj11",
            "Incaberries20-ppscn21",
            "Banana14-simfk15"
          ],
          "sellerId": "seller_id_772_659",
          "position": 1,
          "metadata": {
            "advertiserInfo": {
             "advertiser": "Bob's advertising agency",
             "onBehalfOf": "Brand company inc"
            }
          },
          “companionProducts”: [
            "Banana14-simfk15"
            "Oranges5-qgxeb6",
            "Incaberries20-ppscn21",
          ]
        }
      ]
    }
  ]
}

ID de vendeur Marketplace

Lors de l'onboarding de vendeurs Marketplace, vous pouvez voir un sellerId supplémentaire par annonce dans la réponse. Il n'apparaîtra que si l'équipe détentrice de la campagne en cours de diffusion a configuré un ID de vendeur dans l'interface utilisateur. L'exemple ci-dessous montre une annonce avec un ID de vendeur et une autre sans.

{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.retailer.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1,
                    "sellerId": "1ben32-ss3d43-amea"
                }
            ]
        },
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun_kZp9yTCMm71vTo7iyQaK9I_YB09FUFYzNzBTQ0FO",
                    "citrusCampaignName": "milo-campaign-lakjsdf09kj",
                    "citrusContentStandardId": "21r372ba-dce6-46f2-bd16-1b923b9189f9",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "A banner for Milo with a product image and a shop now button",
                    "bannerText": "<strong>Try Milo Cereal</strong>",
                    "bannerTextColour": "48a94c",
                    "heroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8851d59f0574",
                    "heroImageAltText": "Milo product image",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Milo products",
                    "ctaLink": "retailer.com/everything/search/heritage%20mill?pageNumber=1",
                    "secondaryHeroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8m435c34r",
                    "secondaryHeroImageAltText": "Milo Logo",
                    "secondaryHeroMode": "landscape",
                    "backgroundColour": "895b5b",
                    "backgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "backgroundImagePosition": "FILL",
                    "secondaryBackgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "tags": {},
                    "gtins": [
                         "16309011",
                         "57312011",
                         "65250011"
                                ],
                    "position": 1
                }
            ]
        }
    ]
}

Balises de suivi tierces

Epsilon Retail Media prend en charge le transfert de balises de suivi tierces au détaillant. Ces balises permettent aux annonceurs de vérifier leurs performances via un tiers de confiance.

Epsilon Retail Media prend en charge les balises de suivi ci-dessous :

  • DoubleVerify
  • DCM Click
  • DCM Impression
  • IAS

Lorsqu'une balise de suivi est configurée pour une campagne, elle s'affiche comme champ pertinent dans l'objet tags suivant. Remarque : si aucune balise n'a été configurée pour une campagne, l'objet tags restera vide.

{
    "ads": [],
    "banners": [
				{
            "id": "banner_XeemTeq59HapGSp4vccOYfBq_yvc3zMzNjM2",
            "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
            "slotId": "<SLOT_ID>",
            "imageUrl": "https://cdn.flavedo.io/s/-oW-C3cEViSSO2krWkwOBUXOhvUdhHOySx-YQLGZ1lA=",
            "linkUrl": "https://www.retailer.com/link",
            "altText": "Your local ice cream",
            "text": "",
            "gtins": [
                "7733628",
                "7714107",
                "7163379",
                "7733636",
                "7733657"
            ],
            "expiry": "2021-05-17T01:49:17.75503253Z",
            "tags": {
                "dv": "<script src=\"https://cdn.doubleverify.com/dvtp_src.js?ctx=919421&cmp=1074060503&sid=1073907024&plc=1075810393&adsrv=115&btreg=&btadsrv=&crt=&tagtype=&dvtagver=6.1.src\" type=\"text/javascript\"></script>",
                "dcmClick": "<script ..../>",
                "dcmImpression": "<script.... />",
                "ias": "<script.... />"            }
        }
				],
    "products": [],
     "memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}

Étant donné qu'Epsilon Retail Media est une intégration de serveur à serveur, les balises de suivi tierces nécessitent un développement supplémentaire par le détaillant.

Loi sur les Services Numériques

Epsilon Retail Media aide les détaillants à remplir leurs obligations découlant du Règlement sur les services numériques (DSA) de l'Union européenne (UE). Le DSA établit un ensemble unifié de règles à travers l'UE, visant à réglementer le contenu en ligne, la publicité transparente et la désinformation. Pour obtenir de plus amples informations, veuillez consulter le Règlement de l'UE sur les services numériques.

Exemple de requête d'annonce

{
    "catalogId": "57a5318b-5349-46fd-80ed-fd2e0be15819",
    "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
    "bannerSlotIds": [
        {
            "slotId": "Top_Banner",
            "maxNumberOfAds": 1
        }
    ],
    "customerId": "velit3193",
    "placement": "broad-display-60e9699d-984f-4a80-9383-2e6dc7a68d03",
    "options": {
        "includeAdvertiserInfo": true
    }
}

Exemple de réponse d'annonce

{
  "ads": [
    {
      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
      "slotId": "Top_Banner",
      "banners": [
        {
          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",
          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",
          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
          "citrusSlotId": "Top_Banner",
          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",
          "headingText": "recusandae 3205",
          "bannerText": "placeat 2825",
          "bannerTextColour": "ffffff",
          "ctaFlag": true,
          "ctaText": "CTA text",
          "ctaTextAccessibility": "call to action accessibility text",
          "ctaLink": "http://citrusad.com",
          "backgroundColour": "000000",
          "backgroundImage": "https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4",
          "secondaryBackgroundImage": "https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34",
          "secondaryBackgroundImagePosition": "rightaligned",
          "heroImage": "https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372",
          "heroImageAltText": "hero image alt text",
          "secondaryHeroImage": "https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f",
          "secondaryHeroImageAltText": "secondary hero image alt text",
          "secondaryHeroMode": "landscape",
          "tags": {},
          "additionalFields": [
            {
              "id": "text-1",
              "value": "sed 5731"
            }
          ],
          "gtins": [
            "Fingerlime26-fdxvq27",
            "Oranges5-qgxeb6",
            "Cherries9-adkoj11",
            "Incaberries20-ppscn21",
            "Banana14-simfk15"
          ],
          "sellerId": "seller_id_772_659",
          "position": 1,
          "metadata": {
            "advertiserInfo": {
             "advertiser": "Bob's advertising agency",
          "onBehalfOf": "Brand company inc"
            }
          }
        }
      ]
    }
  ]
}