Optimiser le ciblage publicitaire
Ce document décrit les recommandations pour la génération d'annonces de produits dans les emplacements de recherche, de catégorie et d'affichage large (accueil, passage en caisse, promotions, etc.). La mise en œuvre de ces stratégies rend vos annonces plus pertinentes et plus ciblées, ce qui améliore l'engagement et la satisfaction des utilisateurs. Les améliorations comprennent la pagination, les recherches filtrées et le filtrage basé sur la localisation pour une approche publicitaire personnalisée.
Pour générer des annonces de produits à l'aide de recherches et d'emplacements de catégories, consultez les rubriques suivantes :
- Générez des annonces de produits à l'aide de l'emplacement dans les résultats de recherche
- Générez des annonces de produits à l'aide des emplacements par catégorie
Paginer les requêtes
La pagination est une technique utilisée pour gérer de grands ensembles de données en les divisant en pages ou segments distincts. Dans le contexte de la création d'annonces de produits, la pagination permet de s'assurer que les utilisateurs ne sont pas submergés par un trop grand nombre d'annonces à la fois et que les annonces déjà consultées ne sont pas diffusées de manière redondante.
Lorsque vous générez des annonces pour des produits, la réponse inclut un memoryToken
. Ce jeton permet de savoir quelles annonces ont déjà été diffusées. En incluant ce paramètre memoryToken
dans les requêtes d'annonces suivantes, vous pouvez garantir que les annonces diffusées précédemment sont exclues de la nouvelle réponse d'annonces, améliorant ainsi l'expérience utilisateur en présentant des annonces nouvelles et pertinentes.
- Demande initiale : générez des annonces pour vos produits et recevez un
memoryToken
dans la réponse. - Demandes suivantes : incluez le
memoryToken
dans les demandes d'annonces suivantes afin d'exclure les annonces déjà diffusées de la réponse.
Pour plus d'informations, consultez la rubrique Pagination.
Paramètres de la requête
Le corps de la requête doit être un objet JSON contenant les champs suivants :
objet | type | Description |
---|---|---|
customerId | chaîne, obligatoire | L’identifiant unique du client (il est fourni par votre détaillant). |
sessionId | chaîne, obligatoire | L’identifiant unique de la session. Cette information est nécessaire pour l’attribution (elle est fournie par le détaillant). |
Emplacement | chaîne, obligatoire | Contexte dans lequel l’annonce est affichée (par exemple, « recherche »). |
ID du catalogue | chaîne, obligatoire | L’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. |
maxNumberOfAds | nombre entier, obligatoire | Nombre maximum d’annonces à afficher |
Terme de recherche | chaîne, obligatoire pour les emplacements de recherche | Terme à rechercher dans le catalogue |
jeton de mémoire | chaîne, obligatoire | Jeton pour exclure les annonces précédemment diffusées. |
options | objet, facultatif | Options supplémentaires telles que les modes de filtrage AndOr Si 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
Dans l'exemple suivant, la requête d'annonce initiale concerne un emplacement de recherche avec le terme « chocolat ». Le memoryToken
est inclus pour s'assurer que les annonces précédemment diffusées pour le même terme de recherche et le même contexte sont exclues de la réponse. L'objet options
précise le mode de filtrage, et maxNumberOfAds
fixe la limite du nombre de publicités à générer dans la réponse.
En exploitant la pagination et les jetons de mémoire, vous pouvez offrir à vos utilisateurs une expérience publicitaire plus dynamique et engageante, en évitant la redondance et en améliorant la pertinence.
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": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0=",
"options": {
"filterMode": "AndOr"
},
"maxNumberOfAds": 3
}
Exemple de réponse
Toutes les réponses d'annonces de produits suivent un format JSON standard. Les annonces de produits sont renvoyées dans le tableau « annonces ».
- id : ID de l'annonce utilisé dans les rapports d'impressions et de clics.
- gtin : code article international (GTIN) pour le produit.
- réduction : informations sur les éventuelles remises applicables à l'annonce.
- montant : montant de la remise.
- minPrix : prix minimum du produit pour la remise.
- maxParClient : nombre maximum d'articles qu'un client peut acheter avec la réduction.
- expiration : date et heure d'expiration de l'annonce.
- position : position de l'annonce dans la réponse. Lisez et respectez toujours le champ position pour vous assurer que les emplacements de location fixe s'affichent correctement.
{
"ads": [
{
"id": "display_QqHaKRrKlFm1Wxr9c_DXJN4HSE3NzMzNjM2",
"gtin": "7733636",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400902957Z",
"position": 1
},
{
"id": "display_NzsHqP0_iQedlo9VnrO2vqkwi_k3NzMzNjI4",
"gtin": "7733628",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400908257Z",
"position": 2
},
{
"id": "display_xNeShqidaMuEqiJ0zNdt-Gzygjs3NzE0MTA3",
"gtin": "7714107",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400912929Z",
"position": 3
},
{
"id": "display_3rGiryPskhQusmsf43nghbQwnqo3NzMzNjU3",
"gtin": "7733657",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400917769Z",
"position": 4
}
],
"banners": [],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
Lors de l'onboarding de vendeurs Marketplace, un champ sellerId
supplémentaire peut apparaître dans la réponse à l'annonce. Ce champ n'est inclus que si l'équipe propriétaire de la campagne a configuré un ID de vendeur dans l'interface utilisateur d'Epsilon Retail Media.
Exemple avec l'ID du vendeur
{
"ads": [
{
"id": "display_QqHaKRrKlFm1Wxr9c_DXJN4HSE3NzMzNjM2",
"gtin": "7733636",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400902957Z",
"position": 1
},
{
"id": "display_NzsHqP0_iQedlo9VnrO2vqkwi_k3NzMzNjI4",
"gtin": "7733628",
"sellerId": "2834-ascre-2wcr4",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400908257Z",
"position": 2
}
],
"banners": [],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
Recherches filtrées
Lorsqu'un client applique des filtres à sa recherche, vous pouvez améliorer le contexte de sa requête en utilisant les options suivantes productFilters
. Cela vous permet de cibler plus précisément les annonces en fonction de catégories ou d'attributs spécifiques. Ci-dessous, nous vous donnons un exemple de filtrage selon la catégorie « Placard » et la restriction alimentaire « Sans gluten ». Cette méthodologie peut être adaptée à n'importe quelle catégorie ou emplacement de requête large.
Paramètres de la requête
Le corps de la requête doit être un objet JSON contenant les champs suivants :
objet | type | Description |
---|---|---|
customerId | chaîne, obligatoire | L’identifiant unique du client (il est fourni par votre détaillant). |
sessionId | chaîne, obligatoire | L’identifiant unique de la session. Cette information est nécessaire pour l’attribution (elle est fournie par le détaillant). |
Emplacement | chaîne, obligatoire | Contexte dans lequel l’annonce est affichée (par exemple, « recherche »). |
ID du catalogue | chaîne, obligatoire | L’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. |
maxNumberOfAds | nombre entier, obligatoire | Nombre maximum d’annonces à afficher |
Terme de recherche | chaîne, obligatoire pour les emplacements de recherche | Terme à rechercher dans le catalogue |
productFilters | tableau, obligatoire | Un tableau contenant les filtres de catégorie. |
options | objet, facultatif | Options supplémentaires telles que les modes de filtrage AndOr Si 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
La requête de l'exemple utilise la méthode HTTP POST pour envoyer un objet JSON au point de terminaison précisé. Le tableau productFilters
précise que la recherche doit être filtrée par la catégorie « Placard » et la restriction alimentaire « Sans gluten ». L'objet Options définit le filterMode
à AndOr
, permettant une combinaison flexible de filtres. Le maxNumberOfAds
champ limite le nombre de publicités affichées à trois.
En suivant cette structure, vous pouvez créer des campagnes publicitaires ciblées qui sont plus pertinentes par rapport aux critères de recherche du client, améliorant ainsi l'expérience globale de l'utilisateur.
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": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"productFilters": [
["category:Cupboard"],["dietary:Gluten-free"]
],
"options": {
"filterMode": "AndOr"
},
"maxNumberOfAds": 3
}
Filtrer 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
. Cette fonctionnalité vous permet de cibler les annonces en fonction de l'emplacement spécifique du magasin, augmentant ainsi la pertinence des annonces affichées au client.
Paramètres de la requête
Le corps de la requête doit être un objet JSON contenant les champs suivants :
objet | type | Description |
---|---|---|
customerId | chaîne, obligatoire | L’identifiant unique du client (il est fourni par votre détaillant). |
sessionId | chaîne, obligatoire | L’identifiant unique de la session. Cette information est nécessaire pour l’attribution (elle est fournie par le détaillant). |
Emplacement | chaîne, obligatoire | Contexte dans lequel l’annonce est affichée (par exemple, « recherche »). |
ID du catalogue | chaîne, obligatoire | L’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. |
maxNumberOfAds | nombre entier, obligatoire | Nombre maximum d’annonces à afficher |
Terme de recherche | chaîne, obligatoire pour les emplacements de recherche | Terme à rechercher dans le catalogue |
productFilters | tableau, obligatoire | Un tableau contenant les filtres de catégorie. |
options | objet, facultatif | Options supplémentaires telles que les modes de filtrage AndOr Si 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
La requête de l'exemple utilise la méthode HTTP POST pour envoyer un objet JSON au point de terminaison précisé.
- L'AD_ID
productFilters
tableau indique que la recherche doit être filtrée par :- Catégorie : « Placard »
- Restriction alimentaire : « Sans gluten »
- Lieu : « Westenbury »
- L'objet Options définit le
filterMode
àAndOr
, permettant une combinaison flexible de filtres. - L'AD_ID
maxNumberOfAds
champ limite le nombre de publicités affichées à trois.
En suivant cette structure, vous pouvez créer des campagnes publicitaires ciblées qui sont plus pertinentes par rapport aux critères de recherche du client, améliorant ainsi l'expérience globale de l'utilisateur.
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": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"productFilters": [
["category:Cupboard"],["dietary:Gluten-free"],["location:Westenbury"]
],
"options": {
"filterMode": "AndOr"
},
"maxNumberOfAds": 3
}
Mis à jour Il y a 12 mois