La dernière version d’at.js Adobe Target propose des ensembles de fonctionnalités riches qui permettent à votre entreprise d’exécuter la personnalisation sur les technologies de nouvelle génération côté client. Cette nouvelle version vise à mettre à niveau at.js afin d’établir des interactions harmonieuses avec les applications monopages (SPA).
Voici quelques avantages d’utiliser at.js 2.x qui ne sont pas disponibles dans les versions précédentes :
La capacité à mettre en cache toutes les offres au chargement de la page afin de réduire plusieurs appels serveur à un seul appel serveur.
Améliorez considérablement les expériences des utilisateurs finaux sur votre site. Les offres s’affichent immédiatement via le cache sans temps de latence que les appels serveur traditionnels imposent.
Une seule ligne de code et une configuration de développeur unique pour permettre à vos spécialistes marketing de créer et d’exécuter des activités Test A/B et Ciblage d’expérience (XT) via le compositeur d’expérience visuelle sur vos applications d’une seule page (SPA).
Schémas système d’at.js 2.x
Les diagrammes suivants vous aident à comprendre le workflow d’at.js 2.x avec Vues et la manière dont il améliore l’intégration de la SPA. Pour une meilleure présentation des concepts utilisés dans at.js 2.x, voir Implémentation d’applications d’une seule page.
(Cliquez sur l’image pour l’agrandir sur toute la largeur.)
{modal="regular"}
L’appel
Détails
1
L’appel renvoie l’Experience Cloud ID si l’utilisateur est authentifié ; un autre appel synchronise l’ID client.
2
La bibliothèque at.js se charge de manière synchrone et masque le corps du document.
at.js peut également être chargé de manière asynchrone avec une option de masquage préalable d’un fragment de code implémentée sur la page.
3
Une demande de chargement de page est faite, incluant tous les paramètres configurés (MCID, SDID et ID client).
4
Les scripts de profil s’exécutent, puis sont introduits dans le magasin de profils. Le magasin demande des audiences qualifiées à la bibliothèque d’audiences (par exemple, les audiences partagées depuis Adobe Analytics, Audience Manager, etc.).
Les attributs du client sont envoyés par lot dans le magasin de profils.
5
Selon les paramètres de requête d’URL et les données de profil, Target décidez quelles activités et expériences renvoyer au visiteur pour la page active et les futures vues.
6
Le contenu ciblé est renvoyé à la page, comprenant, éventuellement, les valeurs de profil pour une personnalisation plus poussée.
Le contenu ciblé sur la page active est révélé le plus rapidement possible sans scintillement du contenu par défaut.
Contenu ciblé pour les vues présentées à la suite d’actions de l’utilisateur dans une SPA mise en cache dans le navigateur, afin qu’elles puissent être appliquées instantanément sans appel au serveur supplémentaire lorsque les vues sont déclenchées via triggerView().
7
Les données Analytics sont envoyées aux serveurs de collecte de données.
8
Les données ciblées sont mises en correspondance avec les données Analytics via le SDID et sont traitées dans le stockage de rapports Analytics.
Les données Analytics peuvent ensuite être affichées dans les rapports Analytics et Target via Analytics for Target (A4T).
Désormais, où que soit implémenté triggerView() sur votre application d’une seule page, les vues et actions sont récupérées depuis le cache et présentées à l’utilisateur sans appel au serveur. triggerView() envoie également une demande de notification au serveur principal Target afin d’incrémenter et d’enregistrer le nombre d’impressions.
(Cliquez sur l’image pour l’agrandir sur toute la largeur.)
{modal="regular"}
L’appel
Détails
1
triggerView() est appelée dans l’application d’une seule page pour afficher les vues et appliquer les actions pour modifier les éléments visuels.
2
Le contenu ciblé pour la vue est lu à partir du cache.
3
Le contenu ciblé s’affiche aussi rapidement que possible, sans scintillement du contenu par défaut.
4
La demande de notification est envoyée au magasin de profils Target pour compter le visiteur dans l’activité et incrémenter les mesures.
5
Données Analytics envoyées aux serveurs de collecte de données.
6
Target données sont associées aux données Analytics via le SDID et traitées dans le stockage de rapports Analytics. Les données Analytics peuvent ensuite être affichées dans Analytics et Target via les rapports A4T.
La méthode recommandée consiste à déployer at.js à l’aide de balises dans Adobe Experience Platform.
Ou
Téléchargez at.js 2.x manuellement à l’aide de l’interface utilisateur Target et déployez-le à l’aide de la méthode de votre choix.
Fonctions d’at.js obsolètes
Plusieurs fonctions ont été abandonnées dans at.js 2.x.
WARNING
Si ces fonctions obsolètes sont toujours utilisées sur votre site lors du déploiement d’at.js 2.x, des avertissements s’affichent dans la console. L’approche recommandée lors de la mise à niveau consiste à tester le déploiement d’at.js 2.x dans un environnement d’évaluation et à vérifier chaque avertissement enregistré dans la console et à traduire les fonctions obsolètes en nouvelles fonctions introduites dans at.js 2.x.
Les fonctions obsolètes et leurs contreparties sont présentées ci-après. Pour obtenir la liste complète des fonctions, voir Fonctions at.js.
NOTE
at.js 2.x ne prémasque plus automatiquement mboxDefault éléments marqués. Les clients doivent donc s’adapter manuellement à la logique pré-masquée, soit sur le site, soit via un gestionnaire de balises.
mboxCreate(mbox,params)
Description :
Exécute une requête et applique l’offre au DIV le plus proche avec le nom de classe mboxDefault.
Exemple :
<div class="mboxDefault">
default content to replace by offer
</div>
<script>
mboxCreate('mboxName','param1=value1','param2=value2');
</script>
at.js 2.x équivalent
Une alternative à mboxCreate(mbox, params) est getOffer() et applyOffer().
Exemple :
<div class="mboxDefault">
default content to replace by offer
</div>
<script>
var el = document.currentScript.previousElementSibling;
adobe.target.getOffer({
mbox: "mboxName",
params: {
param1: "value1",
param2: "value2"
},
success: function(offer) {
adobe.target.applyOffer({
mbox: "mboxName",
selector: el,
offer: offer
});
},
error: function(error) {
console.error(error);
el.style.visibility = "visible";
}
});
</script>
mboxDefine() et mboxUpdate()
Description :
Crée un mappage interne entre un élément et le nom d’une mbox, mais n’exécute pas la demande. Utilisé conjointement avec mboxUpdate(), qui exécute la requête et applique l’offre à l’élément identifié par le nodeld dans mboxDefine(). Cette fonction peut être également utilisée pour mettre à jour une mbox initiée par mboxCreate.
Une alternative à mboxDefine() et mboxUpdate, est getOffer() et applyOffer(), avec l’option de sélecteur utilisée dans applyOffer(). Cette approche permet de mapper l’offre à un élément à l’aide d’un sélecteur CSS, et pas seulement avec un identifiant.
Propose une méthode standard pour enregistrer une extension spécifique.
Ce paramètre n’est plus pris en charge et ne doit pas être utilisé.
Résumé des fonctions at.js obsolètes, nouvelles et prises en charge dans 2.x
Méthode
Pris en charge ?
Nouveau ?
Obsolète ?
(Le contenu par défaut s’affiche)
getOffer()
Oui
getOffers()
Oui
applyOffer()
Oui
applyOffers()
Oui
triggerView()
Oui
trackEvent()
Oui
mboxCreate()
Oui
mboxDefine()
mboxUpdate()
Oui
targetGlobalSettings()
Oui
Data Providers
Oui
targetPageParams()
Oui
targetPageParamsAll()
Oui
registerExtension()
Oui
At.js Custom Events
Oui
Limites et légendes
Gardez à l’esprit les limites et légendes suivantes :
Suivi des conversions
Les clients qui utilisent mboxCreate() le suivi de conversion doivent utiliser trackEvent() ou getOffer().
Présentation des offres
Clients qui ne remplacent mboxCreate() pas les getOffer() offres ou applyOffer() ne les risquent pas.
at.js 2.x peut-il être utilisé sur certaines pages tandis qu’at.js 1.x est utilisé sur d’autres pages ?
Oui, le profil du visiteur est conservé sur plusieurs pages à l’aide de différentes versions et bibliothèques. Le format de cookie est identique.
Nouvelle utilisation de l’API dans at.js 2.x
at.js 2.x utilise une nouvelle API, que nous appelons l’API de diffusion. Pour déboguer si at.js appelle correctement le serveur Edge de Target, vous pouvez filtrer l’onglet Réseau des outils de développement de votre navigateur par « diffusion », « tt.omtrdc.net » ou votre code client. Vous remarquerez également que Target envoie une charge utile JSON plutôt que des paires clé-valeur.
Target mbox globale n’est plus utilisée
Dans at.js 2.x, vous ne voyez plus « target-global-mbox » de manière visible dans les appels réseau. Au lieu de cela, nous avons remplacé la syntaxe « target-global-mbox » par « execute > pageLoad » dans la payload JSON envoyée aux serveurs Target, comme illustré ci-dessous :
Essentiellement, le concept de mbox globale a été introduit pour faire savoir à Target si les offres et le contenu doivent être récupérés au chargement de la page. Cela a donc été plus explicite dans notre nouvelle version.
Le nom de la mbox globale dans at.js est-il plus volumineux ?
Les clients peuvent spécifier un nom de mbox global via Target > Administration > Implémentation > Modifier les paramètres at.js. Ce paramètre est utilisé par les Target serveurs Edge pour convertir exécuter > pageload en nom de mbox globale, qui apparaît dans Target l’interface utilisateur. Ainsi, les clients peuvent continuer à utiliser les API côté serveur, le compositeur basé sur les formulaires, les scripts de profil et créer des audiences à l’aide du nom de mbox globale. Nous vous recommandons vivement de vous assurer que le même nom de mbox globale est configuré sur la page Administration > Compositeur d’expérience visuelle, également, au cas où vous auriez encore des pages utilisant at.js 1.x, comme illustré dans les illustrations suivantes.
et
Le paramètre de mbox globale de création automatique doit-il être activé pour at.js 2.x ?
Dans la plupart des cas, oui. Ce paramètre indique à at.js 2.x de déclencher une requête sur les serveurs Edge de Target au chargement de la page. La mbox globale étant traduite pour exécuter > pageload, ce paramètre doit être activé si vous souhaitez déclencher une requête au chargement de la page.
Les activités du compositeur d’expérience visuelle existantes continueront-elles de fonctionner, même si le nom de la mbox globale cible n’est pas spécifié à partir d’at.js 2.x ?
Oui, car exécuter > pageload est traité sur le Target serveur principal comme target-global-mbox.
Si mes activités basées sur des formulaires sont ciblées sur target-global-mbox, ces activités continueront-elles à fonctionner ?
Oui, car exécuter > pageload est traité sur les Target serveurs Edge comme target-global-mbox.
Paramètres at.js 2.x pris et non pris en charge
Paramètre
Pris en charge ?
X-Domaine
Non
Créer automatiquement la mbox globale
Oui
Nom de mbox globale
Oui
Prise en charge du suivi inter-domaines dans at.js 2.x
Le suivi inter-domaines permet de regrouper les visiteurs dans différents domaines. Un nouveau cookie devant être créé pour chaque domaine, il est difficile de suivre les visiteurs lorsqu’ils passent d’un domaine à l’autre. Pour effectuer le suivi inter-domaines, Target utilise un cookie tiers pour suivre les visiteurs entre les domaines. Vous pouvez ainsi créer une activité Target qui s’étend sur siteA.com et siteB.com et les visiteurs restent dans la même expérience lorsqu’ils naviguent sur des domaines uniques. Cette fonctionnalité est liée au comportement des cookies tiers et propriétaires d’Target.
NOTE
Le suivi inter-domaines est pris en charge à partir d’at.js 2.10, mais n’est pas pris en charge par défaut dans at.js 2.x antérieur à la version 2.10. Le suivi inter-domaines est pris en charge dans at.js 2.x via la bibliothèque Experience Cloud ID (ECID) version 4.3.0 ou ultérieure.
En Target, le cookie tiers est stocké dans <CLIENTCODE>.tt.omtrdc.net. Le cookie propriétaire est stocké dans clientdomain.com. Première requête de renvoi des en-têtes de réponse HTTP qui tentent de définir des cookies tiers nommés mboxSession et mboxPC tandis qu’une requête de redirection est renvoyée avec un paramètre supplémentaire (mboxXDomainCheck=true). Si le navigateur accepte les cookies tiers, la requête de redirection inclut ces cookies et l’expérience est renvoyée. Ce processus est possible car nous utilisons la méthode HTTP GET.
Toutefois, dans at.js 2.x, la méthode HTTP GET n’est pas utilisée. Au lieu de cela, la requête HTTP POST est utilisée via at.js 2.x pour envoyer des payloads JSON aux serveurs Target Edge. L’utilisation de la requête HTTP POST signifie que la requête de redirection visant à vérifier si un navigateur prend en charge les cookies tiers sera interrompue. Cela est dû au fait que les requêtes HTTP GET sont des transactions idempotentes, tandis que HTTP POST est non idempotent et ne doit pas être répété arbitrairement. Par conséquent, le suivi inter-domaines dans at.js 2.x (antérieur à la version 2.10) n’est pas pris en charge prêt à l’emploi. Seul at.js 1.x prend en charge le suivi inter-domaines prêt à l’emploi.
Pour utiliser le suivi inter-domaines pour at.js v2.10 ou une version ultérieure, vous pouvez effectuer l’une des opérations suivantes :
Installez la bibliothèque ECID v4.3.0+ conjointement avec at.js 2.x. Le but de la bibliothèque ECID est de gérer les ID persistants utilisés pour identifier un visiteur et ce même entre les domaines. Après avoir installé la bibliothèque ECID v4.3.0+ et at.js 2.x, vous pourrez créer des activités qui s’étendent sur des domaines uniques et effectuer le suivi des utilisateurs. Il est important de noter que cette fonctionnalité ne fonctionne qu’après l’expiration de la session.
Au lieu d’installer la bibliothèque ECID, si vous disposez d’at.js version 2.10 ou ultérieure, vous pouvez activer le paramètre interdomaines dans l’interface utilisateur Target dans Administration > Implémentation. (Vous pouvez également définir l’option crossDomain sur enabled dans le code at.js.)
Pour utiliser le suivi inter-domaines pour les versions d’at.js v2.x antérieures à la version 2.10, vous pouvez implémenter l’option #1 ci-dessus (installer la bibliothèque ECID).
La création automatique de la mbox globale est prise en charge
Ce paramètre indique à at.js 2.x de déclencher une requête aux serveurs Edge de Target au chargement de la page. Etant donné que la mbox globale est convertie pour exécuter > pageLoad, et que cela est interprété par les serveurs Edge Target, les clients doivent activer cette fonction s’ils souhaitent déclencher une requête au moment du chargement de la page.
Le nom de la mbox globale est pris en charge
Les clients peuvent spécifier un nom de mbox global via Target > Administration > Implémentation > Modifier. Ce paramètre est utilisé par les serveurs Edge Target pour convertir exécuter > pageLoad en nom de la mbox globale saisi. Cela permet aux clients de continuer à utiliser les API côté serveur, le compositeur basé sur les formulaires, les scripts de profil et de créer les audiences qui ciblent la mbox globale.
Les événements personnalisés at.js ci-dessous sont-ils applicables à triggerView() ou n’est-ce que pour applyOffer() ou applyOffers() ?
adobe.target.event.CONTENT_RENDERING_FAILED
adobe.target.event.CONTENT_RENDERING_SUCCEEDED
adobe.target.event.CONTENT_RENDERING_NO_OFFERS
adobe.target.event.CONTENT_RENDERING_REDIRECT
Oui, les événements personnalisés at.js s’appliquent à triggerView() également.
Elle indique que lorsque j’appelle triggerView() avec {"page" : "true"}, une notification est envoyée au serveur principal Target et l’impression est augmentée. Cela entraîne-t-il également l’exécution des scripts de profil ?
Lorsqu’un appel de pré-récupération est effectué au Target principal, les scripts de profil sont exécutés. Ensuite, les données de profil impactées seront chiffrées et retransmises côté client. Après l’appel de triggerView() avec {"page": "true"}, une notification est envoyée avec les données de profil chiffrées. C’est alors que l’arrière-plan Target déchiffrera les données de profil et les stockera dans les bases de données.
Devons-nous ajouter un prémasquage du code avant d’appeler triggerView() pour gérer le scintillement ?
Non, il n’est pas nécessaire d’ajouter un prémasquage du code avant d’appeler triggerView(). at.js 2.x gère la logique de pré-masquage et de scintillement avant l’affichage et l’application de la vue.
Quels paramètres at.js 1.x pour la création d’audiences ne sont pas pris en charge dans at.js 2.x ?
Les paramètres at.js 1.x suivants ne sont PAS actuellement pris en charge pour la création d’audiences lors de l’utilisation d’at.js 2.x :
browserHeight
browserWidth
browserTimeOffset
screenHeight
screenWidth
screenOrientation
colorDepth
devicePixelRatio
paramètres vst.* (voir ci-dessous)
at.js 2.x ne prend pas en charge la création d’audiences à l’aide de paramètres vst.*
Les clients utilisant at.js 1.x ont pu utiliser les paramètres de mbox vst.* pour créer des audiences. Il s’agissait d’un effet secondaire involontaire de la manière dont at.js 1.x a envoyé les paramètres de mbox au serveur principal Target. Après la migration vers at.js 2.x, vous ne pouvez plus créer d’audiences à l’aide de ces paramètres, car at.js 2.x envoie différemment les paramètres de mbox.
Compatibilité at.js
Les tableaux suivants décrivent at.js. compatibilité 2.x avec différents types d’activités, intégrations, fonctionnalités et fonctions at.js ;
Types d’activités
Type
Pris en charge ?
Test A/B
Oui
affectation automatique
Oui
ciblage automatique
Oui
Ciblage d’expérience
Oui
Test multivarié
Oui
Automated Personalization
Oui
Recommendations
Oui
NOTE
Les activités de ciblage automatique sont prises en charge par at.js 2.x et le compositeur d’expérience visuelle lorsque toutes les modifications sont appliquées au Page Load Event. Lorsque des modifications sont ajoutées à des vues spécifiques, les activités Test A/B, Affectation automatique et Ciblage d’expérience (XT) sont uniquement prises en charge.
at.js 2.x, tout comme at.js 1.x, utilise le at-request-succeeded d’événement personnalisé pour faire apparaître les jetons de réponse. Pour des exemples de code utilisant l’événement at-request-succeeded personnalisé, voir Jetons réponse.
Paramètres at.js 1.x pour le mappage de la payload vers at.js 2.x
Cette section décrit les mappages entre at.js 1.x et at.js 2.x.
Avant de passer à la correspondance des paramètres, les points d’entrée que ces versions de bibliothèque utilisent ont changé :
Une autre différence majeure réside dans le fait que :
at.js 1.x - Le code client fait partie du chemin d’accès
at.js 2.x - Le code client est envoyé en tant que paramètre de chaîne de requête, tel que : http://<client code>.tt.omtrdc.net/rest/v1/delivery?client=democlient
Les sections suivantes répertorient chaque paramètre at.js 1.x, sa description et la payload JSON 2.x correspondante (le cas échéant) :
Fonctionnalités du rendu WEB GL du navigateur. Ce mécanisme est utilisé par notre mécanisme de détection d’appareil pour déterminer si l’appareil du visiteur est un ordinateur, un iPhone, un appareil Android, etc.
La version est envoyée en tant que paramètre de chaîne de requête via le paramètre de version.
Vidéo de formation : diagramme architectural d’at.js 2.x
at.js 2.x améliore la prise en charge des SPA par Adobe Target et s’intègre à d’autres solutions Experience Cloud. Cette vidéo explique comment tout se connecte.