GTM: Mesurer les visites en fonction de l’age des pages
La date de publication d’une page et donc son ancienneté a un impact sur le référencement. les requêtes chaudes ont tendance à se positionner sur des pages fraiches tandis que les requêtes plus longue traîne peuvent se positionner sur des pages plus anciennes. Mais comment le mesurer clairement sur son propre site ? C’est ce que je vais essayer de faire en vous montrant comment configurer Google tag manager et Google analytics afin de mesurer les visites ou autres KPI en fonction de l’age des pages.
Sommaire:
Pourquoi mesurer l’ancienneté des pages ?
L’idée est de calculer le nombre de jours entre la visite d’un internaute et la date de publication de la page visitée. On pourra notamment voir la répartition des visites du site en fonction de leur ancienneté. On pourra aussi voir si des articles plus anciens ont un comportement utilisateur différent d’un article plus frais: taux de rebond, temps passé par page, etc..
Ce genre d’analyses est utile pour tout type de site, même e-commerce mais il l’est particulièrement pour un site média ou un site d’actualités. C’est d’ailleurs sur un site d’actualités que je vais vous montrer un cas pratique.
Sur un de mes clients, je me suis rendu compte que les articles entre 2 et 3 mois d’ancienneté étaient particulièrement efficaces en terme de trafic alors qu’ils n’étaient pas du tout mis en avant dans la structure du site. Cet enseignement a permis d’agir opérationnellement par la création de tops d’articles qui avaient entre 2 et 3 mois d’ancienneté. C’est une des optimisations parmi d’autres qu’il est possible de faire grâce à ce type de données.
1/ Extraire la date de publication de la page
L’équation est la suivante:
Age des pages = date de la visite – date de publication
On va donc déjà commencer par extraire la date de publication. L’extraction de la date de publication dépend bien-sur de la manière dont elle est indiquée sur la page: En front, uniquement dans le code source ? Dans le cas que je présente, je récupère la date qui est indiquée en JSON dans le code source, ce qui est souvent le cas lorsque les données structurées sont bien présentes.
On va créer et stocker la date de publication dans une variable javascript personnalisée sur Google Tag Manager. Vous allez dans Variables > Nouvelle et pour le type de variable, vous choisissez « javascript personnalisée »:
Reste plus qu’à insérer la fonction qui permettra d’aller chercher la date de publication
Solution 1: on récupère directement la date de publication dans le JSON
Voici le code:
function() {
var obj = JSON.parse(document.querySelector(‘script[type= »application/ld+json »]’).innerHTML);
return obj.datePublished;
}
La date de publication se trouve dans la balise « datePublished »
Solution 2 (en 2 temps): on récupérer tout le contenu json dans une variable puis on va chercher la date dans cette variable
Cette solution permet de simplifier le code des fonctions surtout si on veux également récupérer d’autres informations contenues également dans le JSON. On peut penser à la date de mise à jour par exemple, à l’auteur et à d’autres informations qui peuvent être intéressantes à analyser. C’est la solution que je préfère même si elle consiste à créer une étape supplémentaire puisqu’on va utiliser 2 variables au lieu d’une.
Une variable pour stocker le contenu entier du json et qu’on va appeler jsondata:
function() {
var json = document.querySelector(‘script[type= »application/ld+json »]’)
var obj = JSON.parse(json?json.innerHTML:'{}’);
return obj;
}
Et une autre variable qu’on va appeler simplement « date de publication » qui va aller chercher l’information dans jsondata:
function() {
var obj = {{jsondata}};
return obj.datePublished;
}
C’est beaucoup plus propre, et plus performant surtout si on va chercher plusieurs variables.
2/ Créer la fonction qui va calculer l’age des pages
J’en reviens à mon équation de départ:
Age des pages = date de la visite – date de publication
« date de publication », c’est bon, la variable est au chaud. Date de la visite, c’est la date du jour où la page a été visitée qui peut se traduite en javascript par Date.now().
Là où ça se complique c’est que la date de publication doit être au même format que la date de jour. On va pas faire une soustraction entre des patates et des haricots. On va utiliser le format timestamp, c’est à dire le format universel en informatique pour représenter la date et l’heure.
Voila ce que ça donne pour la variable qu’on va nommer AncienneteArticle :
function() {
var datePub = {{Date de publication}};
if(datePub!==undefined){
var timePub = (new Date(datePub)).getTime();
var timeVisite = Date.now();
var msDiff = Math.abs(timePub – timeVisite );
var daysDiff = Math.floor(msDiff/(1000 * 60 * 60 * 24));
return daysDiff;
}else{
return undefined ;
}
}
En détails ligne par ligne:
ligne 1: c’est l’ouverture de la fonction
Ligne 2: on stocke notre variable GTM dans une variable qu’on nome « datepub »
Ligne 3: On vérifie que la date de publication existe
Ligne 4: On convertit la date de publication au format timestamp
Ligne 5: On récupère la date du jour dans Timevisite
Ligne 6: On fait notre soustraction: [date de publication au format timestamp] – [la date du jour]
Ligne 7 : on transforme ce résultat en jours, afin d’avoir le nombre de jours entre la visite et la date de publication de l’article.
Créer la dimension personnalisée sur Google Tag Manager
là c’est la partie la plus simple qui consiste à créer une dimension personnalisée avec l’ancienneté des pages en jours. L’avantage est de pouvoir croiser facilement cette donnée sur Google analytics ou via son API (ce que je prèfère).
Rien de plus simple, sur Google Tag Manager cliquez sur votre balise analytics (ou la variable qui regroupe les paramètres de votre balise) >Plus de paramètres > Dimensions personnalisées.
Et vous rentrez une valeur d’index (ex:3) et la valeur de la dimension qui correspond à la variable javascript personnalisée qu’on a crée juste avant: {{AncienneteArticle}}
Vous pouvez créer jusqu’à 20 dimensions personnalisées sur Google analytics et même 200 sur un compte analytics 360.
Créer la dimension personnalisée sur Google Analytics
Cette fois ça se passe du côté de l’administration de Google Analytics. vous cliquez sur la roue dentée pour accéder à l’admin, dans la colonne propriété, vous allez dans définitions personnalisées > dimensions personnalisées et là vous créez simplement la dimension avec le nom que vous voulez mais avec la même valeur d’index que vous avez créez sur GTM.
Exploitation des données analytics
Bon voila, après on peut s’amuser à se faire des tableaux de bord sur Google analytics ou simplement choisir la dimension personnalisée « Ancienneté de l’article » en tant que dimension secondaire
On peut bien sur extraire les données sur excel et se faire ses propres graphes:
Et encore mieux c’est de se faire son propre tableau bord analytics personnalisée qui centralise vos données analytics essentielles mais aussi les indicateurs de vos autres canaux marketing: adwords, facebook ads, mailing, CRM, ereputation, veille d’actualités, etc… Pour en savoir plus sur notre tableau de bord digital 360 développé par Creapulse ou pour une démo, contactez -nous:
Pour la création de dimension personnalisée, si tu as Goole Tag manager, tu n’as pas besoin d’ajouter le code javascript qui est indiquée sur Google analytics (var dimensionValue = ‘SOME_DIMENSION_VALUE’;
ga(‘set’, ‘dimension1’, dimensionValue);)
Le javascript est déja crée sur google tag manager comme précisé dans l’article, donc pas besoin de l’ajouter en dur dans le code de la page. C’est la beauté de GTM, un fois installé tu peux faire des tas de choses sans avoir à modifier le code des pages.
Les valeurs d’index indiquées dans GA doivent bien correspondre à ce que tu as indiqué dans GTM.
J’espère avoir répondu à ta question
Bonjour Serge,
Merci pour cet article très intéressant.
Je ne suis pas très à l’aise avec les dimensions personnalisées. Pouvez-vous détailler davantage la partie ‘Créer la dimension personnalisée sur Google Analytics’ ? Il faut en créer une par index ou je peux mettre plusieurs dans le même bout de code ?
On doit créer la dimension > lui donner un nom (date de publication par ex)> choisir la portée hit?>et le code à modifier et intégrer c’est le ‘javascript’ var dimensionValue = ‘SOME_DIMENSION_VALUE’;
ga(‘set’, ‘dimension1’, dimensionValue);
Quelles valeurs doivent être modifiées en fonction de l’index etc ? Merci d’avance !
Audrey
Merci
Pour ta question, je t’avoue pas bien saisir le problème. Les dimensions personnalisées sont disponibles en tant que dimensions secondaires, dans les rapports personnalisées et quand tu crées des segments avancés. Elles ne sont pas dispos en tant que dimension principale si c’est la question. Aussi, elles sont accessibles par le nom que tu leur a données, pas via cd3 ou cd4 par exemple. Après, si tu veux plus de personnalisations dans la manière d’extraire les données, je te conseille vivement d’utiliser Google query explorer, tu te libères de beaucoup de contraintes de l’interface de google analytics.
Tout d’abord, merci pour ce tuto fort intéressant.
J’ai rajouté de mon côté la date de Maj et le nb de jour depuis la maj ?
Je vois bien les données passer dans le tag Analytics >>
cd1: »2018-03-08 00:00:00 +0100″
cd2: »2020-02-04 00:00:00 +0100″
cd3: »711″
cd4: »13″
Par contre, pas de « cd3 » ni de « cd4 » (valeur) au niveau des rapports bien que j’ai les dimensions secondaires de disponibles…
Qu’en pensez-vous ?