Vous pouvez utiliser le moteur de recommandation Dynamic Yield pour renvoyer les résultats d'une recommandation sans que Dynamic Yield la rende, à l'aide d'une API côté client. Cela vous permet de contrôler la façon d'afficher la recommandation au lieu de présenter la recommandation dans le HTML à travers une campagne de recommandation. Cela vous permet également d'ajouter des filtres en temps réel pour permettre des résultats en temps réel basés sur des données obtenues au cours de la session (par exemple, montrer des produits dont le prix est supérieur à celui du produit actuellement consulté ou présenter des produits en fonction de la sélection explicite des visiteurs).
Les résultats sont retournés sous forme d'un ensemble de produits au format JSON.
Avant de proposer des recommandations via l'API côté client, tenez compte des points suivants :
- Alors que l'API côté client vous permet de mettre en œuvre une recommandation sans campagne, nous vous conseillons de toujours l'implémenter dans une variation. De cette façon, vous pouvez ensuite effectuer des tests, utiliser un groupe témoin pour mesurer l'impact et cibler différents algorithmes pour différents publics – sans devoir écrire du code sur votre site.
- Dans le rapport sur les recommandations, les données de recommandation sont attribuées au type de page « Autre », quelle que soit la page sur laquelle les recommandations sont présentées.
Présentation des recommandations via l'API côté client
Créez une stratégie pour effectuer un appel via une API
- Accédez à Assets (Ressources) › Strategies (Stratégies).
- Créez une stratégie de recommandation et activez l'option « Use via an API call (advanced) » (Utiliser via un appel d'API (avancé)) dans les paramètres de la stratégie.
- Choisissez le nombre d'articles que vous souhaitez que l'API renvoie (généralement, le nombre d'articles que vous prévoyez de rendre).
- Sauvegardez la stratégie.
- Dans la liste « Recommendation Strategies » (Stratégies de recommandation) - dans le menu More Options (Plus d'options), sélectionnez « Embed Code » (Incorporer le code), puis copiez l'extrait de l'API.
- Modifiez l'API recommendationWidgetData selon vos besoins. Pour plus de détails, reportez-vous à ce qui suit. Vous pouvez également utiliser cette API en plus de l'API de filtrage de données en temps réel pour le renvoi de recommandations afin d'ajouter des règles de filtrage en temps réel pour filtrer les résultats en fonction des données obtenues au cours de la session.
- Collez le code dans une campagne Custom Code afin de l'exécuter pour les utilisateurs concernés.
- Mettez en œuvre la performance des recommandations en utilisant l'API recommendations.registerElements. Pour plus de détails, reportez-vous à ce qui suit.
Rendre une recommandation ou un contenu dynamique
Rendez le contenu dynamique ou la recommandation défini par un nom ou un ID. C'est uniquement applicable aux campagnes dont l'emplacement est défini sur Embed with code (Intégrer avec le code) :
Syntaxe
DYO.smartObject(smartObjectId, props)
Paramètres :
- smartObjectId : ID ou nom du contenu dynamique ou de la recommandation
-
props :
Propriétés de rendu :
target : ID de sélecteur utilisé comme cible d'étiquetage rendu
afterRenderCallback : une fonction facultative à exécuter après que l'article ait été rendu
Exemple :
DYO.smartObject('Car Ad', {
target: 'car_ad_div_id',
inline: true
});
Retourner les données du widget de recommandation
Les résultats sont renvoyés sous la forme d'un ensemble de produits au format JSON. Cette API vous oblige aussi à suivre le widget de recommandation comme détaillé ci-dessous.
Syntaxe
DYO.recommendationWidgetData(id, opts, callback)
Paramètres :
- id : l'ID de la stratégie à utiliser lors du rendu de la recommandation.
-
opts : paramètres optionnels
- context : le contexte de la page est tiré de la page actuelle sauf si vous spécifiez un contexte différent ici.
- maxProducts : remplace la valeur « number of items » (nombre d'articles) à partir de l'écran de configuration de la stratégie.
- exclude : un ensemble de SKU ou de Group_ID à exclure des résultats de la recommandation. Ceci est souvent utilisé pour empêcher l'affichage du même article plus d'une fois sur une page qui a plusieurs widgets de recommandation. (Cette option n'est pas disponible pour la stratégie Vus récemment qui n'utilise pas cette fonction de suppression d'article)
- realtimeRules : ajoutez des règles de filtre en temps réel pour permettre des résultats en temps réel basés sur les données obtenues au cours de la session. Les informations sur les cas d'utilisation et les données de filtrage en temps réel sont disponibles dans Filtrage de données en temps réel pour le renvoi de recommandations.
- distinct : après avoir envoyé « true », vous ne recevrez pas de SKU faisant partie d'autres widgets de recommandation sur cette page spécifique.
- callback : fonction de rappel à exécuter une fois que les données de recommandation sont renvoyées.
Exemple d'appel :
// passer manuellement le contexte du produit pour effectuer la requête
DYO.recommendationWidgetData(12345, {
exclude: {
'group_id': ['127829', '1217317', '1247581']
},
context: {
'lng': 'en_GB',
'type': 'PRODUCT',
'data': ["1253851-001"]
}},
function(err, data) {
if (err) {
//gestion des erreurs
}
var rcomData = data;
});
Exemple de réponse :
{
"wId": 3197,
"name": "TOP_N", // nom de la stratégie
"expData": {
"varId": null,
"expId": null
},
"fId": 543,
"fallback": true, //au moins un des articles a utilisé un repli
"slots": [
{
"item": {
"entity_id": "330367",
"color" : "1349",
"product_url": "......html",
"color_prod_img": "https:.....3.jpg",
"publish_time": "2019-07-05T03:22:08",
"flag_img_url": "NONE",
"size_label": "38",
"color_image": "https://tropicalflowerdress.......jpg",
"size": "1899",
"category": "robes",
"related_colors_label": "string",
"title": "formidable robe fleurie",
"related_colors": "619,628,3064,3070,3133",
"color_label": "flower",
"item_group_id": "620",
"category1": "femmes",
"sku": "6510120",
"description": "la meilleure robe à fleurs tropicales de l'univers",
"price": 199,
"in_stock": true,
"categories": [
"femmes",
"robes"
],
"dy_display_price": "199",
"name": "Robe à fleurs tropicales",
"url": "https://www.tropicdresses........html",
"category4": "",
"flag": "",
"tier_prices": "NONE",
"thumbnail_url": "https://tropicdresses......jpg",
"image_url": "https://tropicdresses......jpg",
"keywords": [
"femmes",
"robes",
],
"group_id": "33112327",
"quantity": "2"
},
"fallback": true, //cet article a utilisé une stratégie de repli
"strId": 1,
"md": {}
},
{
"item": {
"entity_id": "330368",
"color": "1349",
"product_url": "......html",
"color_prod_img": "https:.....4.jpg",
"publish_time": "2019-07-06T03:21:00",
"flag_img_url": "NONE",
"size_label": "38",
"color_image": "https://tropicalflowerpants.......jpg",
"size": "1899",
"category": "pantalon",
"related_colors_label": "string",
"title": "formidable pantalon à fleurs",
"related_colors": "619,628,3064,3070,3133",
"color_label": "fleur",
"item_group_id": "534",
"category1": "femmes",
"sku": "6510145",
"description": "le meilleur pantalon à fleurs tropicales de l'univers",
"price": 89,
lng:In stock – true
"categories": [
"femmes",
"pantalons"
],
"dy_display_price": "89",
"name": "pantalon à fleurs tropicales",
"url": "https://www.tropicpants........html",
"category5": "",
"flag": "",
"tier_prices": "NONE",
"thumbnail_url": "https://tropicpants......jpg",
"image_url": "https://tropicpants......jpg",
"keywords": [
"femmes",
"pantalon",
],
"group_id": "33112347",
"quantity": "1"
},
"fallback": false, //cet article a utilisé la stratégie choisie
"strId": 1,
"md": {}
},
]
}
Filtrage de données en temps réel pour le renvoi de recommandations
Voir l'article Filtrage de données en temps réel pour le renvoi de recommandations
Suivre le widget de recommandation
Pour suivre un widget de recommandation que vous avez ajouté manuellement à votre site à l'aide de l'API recommendationWidgetData , vous devez vous assurer que Dynamic Yield peut également suivre le widget. Les résultats JSON de recommendationWidgetData sont utilisés pour configurer ce suivi.
Syntaxe
DYO.recommendations.registerElements(el);
Utilisation
- Ajoutez les attributs suivants à l'élément DOM qui contient le widget de recommandation :
<div data-dy-widget-id="WIDGET_ID_HERE" data-dy-feed-id="FEED_ID_HERE"> <div data-dy-product-id="PRODUCT_SKU_HERE" data-dy-strategy-id="STRATEGY_ID_HERE">...</div> <div data-dy-product-id="PRODUCT_SKU_HERE" data-dy-strategy-id="STRATEGY_ID_HERE">... </div> . . </div>
- widget id – le wId depuis la réponse JSON. Il s'agit de l'ID de la stratégie.
- feed id – le fId depuis la réponse JSON.
- strategy id – le strId depuis la réponse JSON (se trouve sous chaque « emplacement »). Cela représente le type de stratégie de chaque emplacement.
- product id – le sku de chaque produit de la réponse JSON.
- Exécutez l'appel d'API suivant :
Où el est l'élément DOM avec l'attribut ID de widget (data-dy-widget-id).DYO.recommendations.registerElements(el);
Afficher toutes les réponses du widget de recommandation
Présente tous les produits retournés par tous les widgets de recommandation sur la page.
Syntaxe
DYO.recommendations.getLoadedWidgets()
La réponse est un ensemble de résultats données de widget pour renvoi de recommandation pour tous les widgets de recommandation renvoyés sur la page.