Vous consultez actuellement l'aide de la version:
AEM Analytics vous permet d’effectuer le suivi des interactions utilisateur sur votre site web. En tant que développeur, vous pouvez avoir besoin :
- de suivre la façon dont les visiteurs interagissent avec les composants (cela peut être effectué à l’aide d’événements personnalisés) ;
- d’accéder aux valeurs dans le contexte client ;
- d’ajouter des rappels d’enregistrement.
Remarque :
Ces informations sont essentiellement génériques, mais elles utilisent SiteCatalyst pour des exemples spécifiques.
Pour obtenir des informations générales sur le développement de composants et de boîtes de dialogue, voir Développement de composants.
Les événements personnalisés suivent tout ce qui dépend de la disponibilité d’un élément spécifique sur la page. Cela inclut également les événements spécifiques à un modèle, car le composant de page est traité comme un autre composant.
Ce type d’opération peut être réalisé en utilisant le pseudo-attribut data-tracking (l’ancien attribut d’enregistrement est toujours pris en charge pour la compatibilité descendante). Vous pouvez l’ajouter à n’importe quelle balise HTML.
La syntaxe de data-tracking est :
- data-tracking="{'event': ['eventName'], 'values': {'key': 'value', 'nextKey': 'nextValue'}, componentPath: 'myapp/component/mycomponent'}"
Vous pouvez transmettre n’importe quel nombre de paires clé-valeur comme second paramètre appelé charge utile.
En voici un exemple :
<span data-tracking="{event:'blogEntryView', values:{ 'blogEntryContentType': 'blog', 'blogEntryUniqueID': '<%= xssAPI.encodeForJSString(entry.getId()) %>', 'blogEntryTitle': '<%= xssAPI.encodeForJSString(entry.getTitle()) %>', 'blogEntryAuthor':'<%= xssAPI.encodeForJSString(entry.getAuthor()) %>', 'blogEntryPageLanguage':'<%= currentPage.getLanguage(true) %>' }, componentPath:'myapp/component/mycomponent'}"> </span>
Au chargement de la page, tous les attributs data-tracking sont collectés et ajoutés à la section d’événement du contexte client où ils peuvent être mappés aux événements SiteCatalyst. Les événements qui ne sont pas mappés ne sont pas suivis par SiteCatalyst. Voir Connexion à Adobe Analytics pour plus d’informations sur le mappage d’événements.
Pour suivre des événements se produisant après le chargement d’une page (tels que des interactions utilisateur), utilisez la fonction JavaScript CQ_Analytics.record :
- CQ_Analytics.record({event: 'eventName', values: { valueName: 'VALUE' }, collect: false, options: { obj: this, defaultLinkType: 'X' }, componentPath: '<%=resource.getResourceType()%>'})
Où :
- events est une chaîne ou un tableau de chaîne (pour plusieurs événements).
- values contient toutes les valeurs à suivre.
- collect est facultatif et renvoie un tableau contenant l’événement et l’objet de données.
- options est facultatif et contient des options de suivi des liens comme l’élément HTML obj et defaultLinkType.
- componentPath est un attribut nécessaire, et il est recommandé de le définir sur <%=resource.getResourceType()%>.
Par exemple, avec la définition suivante, un utilisateur cliquant sur le lien Aller en haut entraîne le déclenchement de deux événements, jumptop et headlineclick :
<h1 data-tracking="{event: 'headline', values: {level:'1'}, componentPath: '<%=resource.getResourceType()%>'}"> My Headline <a href="#" onclick="CQ_Analytics.record({event: ['jumptop','headlineclick'], values: {level:'1'}, componentPath: '<%=resource.getResourceType()%>'})">Jump to top</a> </h1>
Chaque gestionnaire de données possède une fonction getProperty(clé) qui renvoie la valeur de la clé spécifiée, si disponible. À l’aide de la fonction getPropertyNames, il est possible de récupérer un tableau de clés définies.
Vous pouvez être averti des changements de valeurs en ajoutant une fonction d’écouteur addListener(événement, rappel, portée). Les événements qui peuvent être déclenchés sont mis à jour et persistants.
La meilleure façon d’être informé de la disponibilité initiale du contexte client consiste à utiliser la fonction CQ_Analytics.ClientContextMgr.addListener("storesloaded", function(e) { }).
Écouteurs supplémentaires pour le contexte client :
Toutes les boutiques sont prêtes :
CQ_Analytics.ClientContextMgr.onReady(function(){});
Une boutique spécifique :
CQ_Analytics.ClientContextUtils.onStoreInitialized("profile",function(event) {});
Les rappels antérieurs et postérieurs sont enregistrés à l’aide des fonctions CQ_Analytics.registerBeforeCallback(rappel, classement) et CQ_Analytics.registerAfterCallback(rappel, classement).
Les deux fonctions prennent une fonction comme premier argument et un classement comme deuxième argument, ce qui détermine l’ordre dans lequel les rappels sont exécutés.
Si votre rappel renvoie false, les rappels suivants dans la chaîne d’exécution ne sont pas exécutés.