adobe.target.getOffers() - at.js 2.x
Cette fonction permet de récupérer plusieurs offres en transmettant plusieurs mbox. De plus, plusieurs offres peuvent être extraites pour toutes les vues des activités actives.
consumerIdLa valeur par défaut est la mbox globale du client si elle n’est pas fournie. Cette clé est utilisée pour générer le SDID (Supplemental Data ID) utilisé pour l’intégration d’A4T.
Lors de l’utilisation de getOffers(), chaque appel génère un nouveau SDID. Si plusieurs requêtes de mbox se trouvent sur la même page et que vous souhaitez conserver le SDID (afin qu’il corresponde au SDID de la target-global-mbox et du SDID Adobe Analytics), utilisez le paramètre consumerId .
Si getOffers() inclut trois mbox (nommées « mbox1 », « mbox2 » et « mbox3 »), incluez : consumerId: "mbox1, mbox2, mbox3" dans l’appel getOffers().
decisioningMethodrequesttimeoutDemande
tntId, thirdPartyIdou marketingCloudVisitorId est obligatoire.Les éléments suivants doivent être implémentés sur la page :
- Service d’identification des visiteurs
- Appmeasurement.js
Les valeurs suivantes sont prises en charge :
client_side : lorsqu’elle est spécifiée, une payload d’analyse est renvoyée à l’appelant. Celui-ci doit alors l’utiliser pour l’envoyer à Adobe Analytics via l’Data Insertion API .
server_side : il s’agit de la valeur par défaut où le Target et Analytics serveur principal utiliseront le SDID pour regrouper les appels à des fins de création de rapports.
Nb maximal de 50.
Nom non vide.
Longueur du nom <= 128.
Longueur de la valeur <= 5 000.
Le nom ne doit pas commencer par « profile ».
Noms non autorisés : « orderId », « orderTotal », « productPurchasedId ».
Nombre maximal de 50.
Nom non vide.
Longueur du nom <= 128.
Longueur de la valeur <= 5 000.
Accepte uniquement les valeurs de chaîne.
Le nom ne doit pas commencer par « profile ».
Pas vide.
taille maximale = 128.
Pas vide.
taille maximale = 128.
>= 0.Aucune valeur vide.
La longueur maximale de chaque valeur est de 50.
Concaténé et séparé par une virgule.
Longueur totale des ID de produit <= 250.
Nb maximal de 50.
Nom non vide.
Longueur du nom <= 128.
Longueur de la valeur <= 5 000.
Accepte uniquement les valeurs de chaîne.
Le nom ne doit pas commencer par « profile ».
Noms non autorisés : « orderId », « orderTotal », « productPurchasedId ».
Nb maximal de 50.
Nom non vide.
Longueur du nom <= 128.
Longueur de la valeur <=256.
Le nom ne doit pas commencer par « profile ».
Accepte uniquement les valeurs de chaîne.
Pas vide.
Taille maximale = 128.
Pas vide.
Taille maximale = 128.
>= 0.Aucune valeur vide.
La longueur maximale de chaque valeur est de 50.
Concaténé et séparé par une virgule.
Longueur totale des ID de produit <= 250.
Taille maximale = 50.
Aucun élément nul.
Pas vide.
Pas de suffixe '-clicked'.
Taille maximale = 250.
Caractères autorisés : `'-, ./=:;&!@#$%^&*()+
Non nul.
Unique.
>= 0.
Nb maximal = 50.
Nom non vide.
Longueur du nom <= 128.
Accepte uniquement les valeurs de chaîne.
Longueur de la valeur <= 5 000.
Le nom ne doit pas commencer par « profile ».
Noms non autorisés : « orderId », « orderTotal », « productPurchasedId ».
Nb maximal = 50.
Nom non vide.
Longueur du nom <= 128.
Accepte uniquement les valeurs de chaîne.
Longueur de la valeur <=256.
Le nom ne doit pas commencer par « profile ».
Pas vide.
Taille maximale = 128.
Pas vide.
Taille maximale = 128.
>= 0.Aucune valeur vide.
Longueur maximale de chaque valeur = 50.
Concaténé et séparé par une virgule.
Longueur totale des ID de produit <= 250.
Appel de getOffers() pour toutes les vues
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
Appeler getOffers() pour prendre une décision sur l’appareil
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
Appel de getOffers() pour récupérer les dernières vues avec les paramètres transmis et les paramètres de profil
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
Appel de getOffers() pour récupérer les mbox avec des paramètres et des paramètres de profil transmis.
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
Appelez getOffers() pour récupérer la payload d’analyse du côté client
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Réponse :
{
"prefetch": {
"mboxes": [{
"index": 0,
"name": "a1-serverside-xt",
"options": [{
"content": "<img src=\"http://s7d2.scene7.com/is/image/TargetAdobeTargetMobile/L4242-xt-usa?tm=1490025518668&fit=constrain&hei=491&wid=980&fmt=png-alpha\"/>",
"type": "html",
"eventToken": "n/K05qdH0MxsiyH4gX05/2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "bucharest",
"activity.id": "167169",
"experience.name": "USA Experience",
"geo.country": "romania"
}
}],
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}]
}
}
La payload peut ensuite être transmise à Adobe Analytics via l’API Data Insertion.
Récupérer et générer des données à partir de plusieurs mbox via getOffers() et applyOffers()
at.js 2.x vous permet de récupérer plusieurs mbox via l’getOffers()API. Vous pouvez également récupérer des données pour plusieurs mbox, puis utiliser applyOffers() pour effectuer le rendu des données à différents emplacements identifiés par un sélecteur CSS.
L’exemple suivant illustre une page HTML simple avec at.js 2.x implémentée :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>at.js 2.x, multiple selectors and multiple mboxes</title>
<script src="at.js"></script>
</head>
<body>
<div id="container1">Default content 1</div>
<div id="container2">Default content 2</div>
<div id="container3">Default content 3</div>
</body>
</html>
Supposons que vous ayez trois conteneurs que vous souhaitez modifier via le contenu reçu Target. Vous pouvez créer une requête unique pour trois mbox dans lesquelles chaque mbox comporte du contenu à rendre dans le conteneur correspondant.
Le code de requête et de rendu peut ressembler à l’exemple suivant :
adobe.target.getOffers({
request: {
prefetch: {
mboxes: [
{
index: 0,
name: "mbox1"
},
{
index: 1,
name: "mbox2"
},
{
index: 2,
name: "mbox3"
}
]
}
}
})
.then(response => {
// get all mboxes from response
const mboxes = response.prefetch.mboxes;
let count = 1;
mboxes.forEach(el => {
adobe.target.applyOffers({
selector: "#container" + count,
response: {
prefetch: {
mboxes: [el]
}
}
});
count += 1;
});
});
Dans la section request > prefetch > mboxes, il existe trois mbox différentes. Si la requête a réussi, vous recevez la réponse pour chaque mbox de response > prefetch > mboxes. Après avoir reçu les réponses et les emplacements à utiliser pour le rendu, vous pouvez invoquer applyOffers() pour obtenir le rendu du contenu récupéré dans Target. Dans cet exemple, nous avons le mappage suivant :
- mbox1 > Sélecteur CSS #container1
- mbox2 > Sélecteur CSS #container2
- mbox3 > Sélecteur CSS #container3
Cet exemple utilise la variable count pour construire les sélecteurs CSS. Dans un scénario réel, vous pouvez utiliser un mappage différent entre le sélecteur CSS et la mbox.
Notez que cet exemple utilise prefetch > mboxes, mais vous pouvez également utiliser execute > mboxes. Vérifiez que si vous utilisez la prérécupération dans getOffers(), vous devez également utiliser la prérécupération dans l’appel de applyOffers().
Appeler getOffers() pour effectuer un chargement de page
L’exemple suivant montre comment effectuer un chargement de page à l’aide de getOffers() avec at.js 2.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});