Les jetons de réponse vous permettent de générer automatiquement des informations spécifiques à Adobe Target sur la page web de votre marque. Ces informations peuvent inclure des détails sur l’activité, l’offre, l’expérience, le profil utilisateur, des informations géographiques, etc. Ces détails fournissent des données de réponse supplémentaires à partager avec des outils internes ou tiers ou à utiliser pour le débogage.
Les jetons de réponse vous permettent de choisir les variables (dans les paires clé-valeur) à utiliser, puis de les activer pour qu’elles soient envoyées dans le cadre d’une Target réponse. Vous activez une variable à l’aide du commutateur et la variable est envoyée avec Target réponses, qui peuvent être validées dans les appels réseau. Les jetons de réponse fonctionnent également dans Aperçu mode .
La principale différence entre les plug-ins et les jetons de réponse réside dans le fait que les plug-ins diffusent du code JavaScript sur la page qui s’exécute lors de la diffusion. Toutefois, les jetons de réponse diffusent un objet qui peut ensuite être lu et traité à l’aide d’écouteurs d’événement. L’approche du jeton de réponse est plus sûre et permet un développement et une maintenance plus simples des intégrations tierces.
Les jetons de réponse sont disponibles avec at.js version 1.1 ou ultérieure.
SDK Target | Actions proposées |
---|---|
SDK web Adobe Experience Platform | Assurez-vous que vous utilisez la version 2.6.0 ou ultérieure du SDK Web Platform. Pour plus d’informations sur le téléchargement de la dernière version du SDK Web de Platform, voir Installation du SDK dans le Présentation du SDK Web Platform guide. Pour plus d’informations sur les nouvelles fonctionnalités de chaque version du SDK Web de Platform, voir Notes de mise à jour dans le Présentation du SDK Web Platform guide. |
at.js | Assurez-vous que vous utilisez at.js version 1.1 ou ultérieure. Pour plus d’informations sur le téléchargement de la dernière version d’at.js, voir Télécharger at.js. For information about new functionality in each version of at.js, see at.js Version Details. Les clients utilisant at.js sont encouragés à utiliser les jetons de réponse et à ne plus utiliser les modules externes. Certains modules externes qui reposent sur des méthodes internes qui existaient dans mbox.js (désormais obsolètes), mais pas dans at.js, sont fournis mais échouent. |
Assurez-vous que vous utilisez la version 2.6.0 (ou ultérieure) du SDK Web Platform ou la version 1.1 (ou ultérieure) d’ at.js .
Pour plus d’informations:
Dans Target, cliquez sur Administration > Jetons de réponse.
Activez les jetons de réponse souhaités, tels que activity.id
et offer.id
.
Les paramètres suivants sont disponibles par défaut :
Type | Paramètre | Remarques |
---|---|---|
Profils intégrés | profile.activeActivities |
Renvoie une multitude de activityIds pour lesquels le visiteur est qualifié. Elle s’incrémente lorsque les utilisateurs sont qualifiés. Par exemple, sur une page avec deux Target demande la diffusion de deux activités différentes, la seconde demande inclut les deux activités. |
profile.isFirstSession |
Renvoie « true » ou « false ». | |
profile.isNewSession |
Renvoie « true » ou « false ». | |
profile.daysSinceLastVisit |
Renvoie le nombre de jours depuis la dernière visite du visiteur. | |
profile.tntId |
Renvoie le tntID du visiteur. | |
profile.marketingCloudVisitorId |
Renvoie l’identifiant visiteur Experience Cloud du visiteur. | |
profile.thirdPartyId |
Renvoie l’identifiant tiers du visiteur. | |
profile.categoryAffinity |
Renvoie la catégorie préférée du visiteur. | |
profile.categoryAffinities |
Renvoie un tableau des 5 catégories favorites du visiteur sous la forme de chaînes. | |
Activité | activity.name activity.id experience.name experience.id offer.name offer.id |
Détails de l’activité en cours. Notez que les valeurs des paramètres de l’offre sont évaluées au niveau de l’expérience. |
Géo | geo.country geo.state geo.city geo.zip geo.dma geo.domainName geo.ispName geo.connectionSpeed geo.mobileCarrier |
Pour plus d’informations sur l’utilisation du géociblage dans les activités, voir Géociblage. |
Méthode d’affectation du trafic (S’applique à Ciblage automatique et Automated Personalization activités uniquement.) |
experience.trafficAllocationId |
Renvoie 0 si un visiteur a reçu une expérience provenant d’un trafic de "contrôle" et 1 si un visiteur a reçu une expérience provenant de la distribution de trafic "ciblée". |
experience.trafficAllocationType |
Renvoie "contrôle" ou "ciblé". |
Les attributs de profil utilisateur et les attributs du client s’affichent également dans la liste.
Les paramètres dotés de caractères spéciaux ne s’affichent pas dans la liste. Seuls les caractères alphanumériques et les traits de soulignement sont pris en charge.
(Conditionnel) Pour utiliser un paramètre de profil comme jeton de réponse, mais le paramètre n’a pas été transmis par un événement Target et n’a donc pas chargé dans la variable Target Vous pouvez utiliser l’interface utilisateur de la variable Ajouter un jeton de réponse pour ajouter le profil à l’interface utilisateur.
Cliquez sur Ajouter un jeton de réponse, indiquez le nom du jeton, puis cliquez sur Activer.
Créez une activité.
Le processus que vous utilisez pour écouter Target les réponses et les jetons de réponse de lecture diffèrent selon que vous disposez d’une Platform Web SDK ou implémentation d’at.js.
Utilisez la classe d’objet Handle , qui comporte un objet de métadonnées et un objet de données à écouter. Target réponses et lisez les jetons de réponse.
L’exemple de réponse suivant ajoute une Platform Web SDK gestionnaire d’événements personnalisés directement sur la page de HTML (le tableau explique les objets utilisés dans le code) :
Objet | Informations |
---|---|
Type : Personalization.Decision | Si la décision a été prise par la variable Target ou fournisseur d’Offers decisionings. |
DecisionProvider - TGT | TGT-Target. Target fournit les métadonnées et les valeurs du jeton de réponse à la page. |
Meta | Métadonnées transmises à la page. |
Données | Valeurs des métadonnées transmises à la page. |
<html>
<head>
...
<script src="alloy.js"></script>
<script>
{
"requestId": "4d0a7cfd-952c-408c-b3b8-438edc38250a",
"handle": [{
"type": "personalization:decisions",
"payload": [{
"id": "....",
"scope": "__view__",
"scopeDetails": {
"decisionProvider": "TGT",
"activity": {
"id": "..."
},
"experience": {
"id": "...."
}
},
"items": [{
"id": "123",
"schema": "https://ns.adobe.com/personalization/dom-action",
"meta": {
"activity.id": "...",
"activity.name": "...",
"profile.foo": "...",
"profile.bar": "..."
},
"data": {
"id": "123",
"type": "setHtml",
"selector": "#foo",
"prehidingSelector": "#foo",
"content": "<div>Hello world</div>"
}
}]
}]
}]
}
});
</script>
</head>
<body>
...
</body>
</html>
Utilisez les Événements personnalisés at.js pour écouter la réponse et lire les jetons de réponse.Target
L’échantillon de code suivant ajoute un gestionnaire d’événements personnalisés at.js directement dans la page HTML :
<html>
<head>
....
<script src="at.js"></script>
<script>
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
</script>
<head>
<body>
...
</body>
</html>
Quel rôle est requis pour activer ou désactiver les jetons de réponse ?
Les jetons de réponse ne peuvent être activés ou désactivés que par les utilisateurs qui ont la variable Target Administrateur rôle.
Que se passe-t-il si je cours ? Platform Web SDK 2.6.0 (ou version antérieure) ?
Vous n’avez pas accès aux jetons de réponse.
Que se passe-t-il si j’exécute at.js 1.0 (ou version antérieure) ?
Les jetons de réponse s’affichent, mais at.js ne peut pas les utiliser.
Target ClassicLes modules externes de et les jetons de réponse peuvent-ils être actifs au même moment ?
Les modules externes et les jetons de réponse sont disponibles en parallèle ; toutefois, les modules externes seront abandonnés à l’avenir.
Les jetons de réponse sont-ils diffusés par l’intermédiaire de tous les Target réponses ou uniquement par Target réponses proposant une activité ?
Les jetons de réponse sont diffusés uniquement via Target réponses diffusant une activité.
My Target Classic module externe inclus : JavaScript. Comment puis-je reproduire ses fonctionnalités à l’aide des jetons de réponse ?
Lors de la migration vers des jetons de réponse, ce type de code JavaScript doit être conservé dans votre base de code ou votre solution de gestion des balises. Vous pouvez déclencher ce code à l’aide de Platform Web SDK ou at.js des événements personnalisés et transmettez les valeurs du jeton de réponse à vos fonctions JavaScript.
Pourquoi mon paramètre d’attribut de profil/client ne s’affiche-t-il pas dans la liste des jetons de réponse ?
Target actualise normalement les paramètres toutes les 15 minutes. Cette actualisation dépend de l’action de l’utilisateur et les données sont actualisées uniquement lorsque vous affichez la page des jetons de réponse. Si vos paramètres ne s’affichent pas dans la liste des jetons de réponse, Target n’a pas encore actualisé les données.
En outre, si votre paramètre contient autre chose que des caractères non alphanumériques ou tout autre symbole que des traits de soulignement, le paramètre n’apparaît pas dans la liste. Actuellement, seuls les caractères alphanumériques et les traits de soulignement sont pris en charge.
Le jeton de réponse diffuse-t-il toujours du contenu s’il utilise un script de profil supprimé ou un paramètre de profil supprimé ?
Les jetons de réponse extraient des informations des profils utilisateur, puis diffusent ces informations. Si vous supprimez un script ou un paramètre de profil, cela ne signifie pas que les informations ont été supprimées des profils utilisateur. Les profils utilisateur disposent toujours de données correspondant au script de profil. Le jeton de réponse continue à diffuser le contenu. Pour les utilisateurs qui ne disposent pas de ces informations dans leur profil, ou pour les nouveaux visiteurs, ce jeton n’est pas diffusé car les données ne sont pas présentes dans leurs profils.
Target ne désactive pas automatiquement le jeton. Si vous supprimez un script de profil et que vous ne voulez plus que le jeton soit diffusé, vous devez le désactiver vous-même.
J’ai renommé mon script de profil, mais pourquoi le jeton utilisant ce script est-il toujours actif avec l’ancien nom ?
Comme mentionné ci-dessus, les jetons de réponse fonctionnent selon les informations de profil enregistrées pour les utilisateurs. Même si vous avez renommé le script de profil, les utilisateurs qui ont consulté votre site web disposent de l’ancienne valeur de script de profil enregistrée dans leurs profils. Le jeton continue à relever l’ancienne valeur déjà enregistrée dans les profils utilisateur. Si vous voulez maintenant diffuser du contenu sur le nouveau nom, vous devez désactiver le jeton précédent et activer le nouveau jeton.
Si mes attributs ont changé, quand sont-ils supprimés de la liste ?
Target effectue une actualisation des attributs à intervalles réguliers. Tout attribut qui n’est pas activé est supprimé lors de la prochaine actualisation. Cependant, si un attribut a été activé et supprimé, ce script n’est pas supprimé de la liste d’attributs tant que vous ne l’avez pas désactivé. Par exemple, vous avez supprimé un script de profil utilisé comme jeton. Target supprime les attributs désactivés de la liste seulement lorsqu’ils sont supprimés ou renommés.
Les sections suivantes décrivent comment envoyer Target aux Google Analytics. Les données envoyées par des jetons de réponse peuvent également être envoyées à d’autres intégrations tierces.
Les Google Analytics peuvent être envoyés par l’intermédiaire du SDK Web Platform version 2.6.0 (ou ultérieure) en ajoutant le code suivant dans la page de HTML.
Assurez-vous que la paire de valeurs de clé de jeton de réponse se trouve sous le alloy("sendEvent"
.
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
alloy("sendEvent", {
})
.then(({ renderedPropositions, nonRenderedPropositions }) => {
// concatenate all the propositions
const propositions = [...renderedPropositions, ...nonRenderedPropositions];
// extractResponseTokens() extract the meta from item -> meta
const tokens = extractResponseTokens(propositions);
const activityNames = [];
const experienceNames = [];
const uniqueTokens = distinct(tokens);
uniqueTokens.forEach(token => {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
</script>
Vous pouvez envoyer des données à Google Analytics par l’intermédiaire d’at.js en ajoutant le code suivant à la page HTML :
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
var tokens = e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var activityNames = [];
var experienceNames = [];
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
function isEmpty(val) {
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
</script>
Les sections suivantes fournissent des informations sur le débogage des jetons de réponse :
Le code suivant vous permet de déboguer à l’aide de Google Analytics :
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
var tokens = e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var activityNames = [];
var experienceNames = [];
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
function isEmpty(val) {
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
Vous pouvez créer l’équivalent du module externe ttMeta à des fins de débogage en ajoutant le code suivant à la page HTML :
<script type="text/javascript" >
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function (e) {
window.ttMETA= typeof(window.ttMETA)!="undefined" ? window.ttMETA : [];
var tokens=e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
window.ttMETA.push({
'CampaignName': token["activity.name"],
'CampaignId' : token["activity.id"],
'RecipeName': token["experience.name"],
'RecipeId': token["experience.id"],
'OfferId': token["offer.id"],
'OfferName': token["offer.name"],
'MboxName': e.detail.mbox});
console.log(ttMETA);
});
});
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
</script>
La vidéo suivante explique comment utiliser les jetons de réponse et les événements personnalisés at.js pour partager les informations de profil de Target aux systèmes tiers.
L’interface utilisateur du menu Target Administration (anciennement Configuration) a été repensée afin d’améliorer les performances, de réduire le temps de maintenance requis lors de la publication de nouvelles fonctionnalités et d’améliorer l’expérience utilisateur. Les informations de la vidéo suivante sont correctes ; toutefois, les options se situent à des emplacements légèrement différents.
La vidéo mentionne option.name
et option.id
, qui ont été remplacés par offer.name
et offer.id
, respectivement.