Analytics

Créer et mettre à jour le cookie d’expiration de la session Google Analytics

Dans Google Analytics, le concept de session est l’unité d’agrégation clé de toutes les données avec lesquelles vous travaillez. C’est tellement central pour toutes les mesures clés que vous utilisez (taux de conversion, taux de rebond, durée de session, page de destination), et pourtant il y a une complexité sous-jacente qui, je suis presque certain, n’est pas reconnue par de nombreux utilisateurs de GA. Et pourtant, comme cette idée de session est tellement focalisée sur GA (au point d’en être envahissante), c’est embêtant que le le navigateur n’est au courant d’aucun des paramètres de mise en session que Google Analytics applique aux appels envoyés du navigateur à ses serveurs.

Eh bien, pour rectifier cela, j’ai écrit un très simple customTask solution, qui imite essentiellement le délai d’expiration de la session (30 minutes par défaut) dans un cookie de navigateur. Vous pouvez utiliser ce cookie pour un certain nombre de choses, comme empêcher un événement hits d’être distribués si la session a expiré, ou pour transformer ces hits d’événement en non interactif les coups.

Mettre à jour le cookie de session Google Analytics

Naturellement, j’ai également mis à jour mon guide pour customTask ainsi que mon outil customTask Builder avec cette astuce, vous pouvez donc commencer à l’utiliser avec tous les autres cool customTask trucs là-bas!

Les customTask code

Voici ce que le customTask la méthode ressemble à :

var _customTask = function() {   // Update expiresMs to be the number of milliseconds when the cookie should expire.   // Update domain to match the parent domain of your website.   var updateSessionCookie = {     expiresMs: 1000*60*30,     domain: 'mydomain.com'   };    // DO NOT EDIT ANYTHING BELOW THIS LINE   var globalSendHitTaskName   = '_ga_originalSendHitTask';    return function(customTaskModel) {      window[globalSendHitTaskName] = window[globalSendHitTaskName] || customTaskModel.get('sendHitTask');      customTaskModel.set('sendHitTask', function(sendHitTaskModel) {        var originalSendHitTaskModel = sendHitTaskModel,           originalSendHitTask      = window[globalSendHitTaskName];        var hitType, nonInteraction, d;        try {         originalSendHitTask(sendHitTaskModel);          // updateSessionCookie         if (typeof updateSessionCookie === 'object' && updateSessionCookie.hasOwnProperty('expiresMs') && updateSessionCookie.hasOwnProperty('domain')) {           hitType = sendHitTaskModel.get('hitType');           nonInteraction = sendHitTaskModel.get('nonInteraction');           if (nonInteraction !== true && (hitType === 'pageview' || hitType === 'event')) {             d = new Date();             d.setTime(d.getTime() + updateSessionCookie.expiresMs);             document.cookie = '_session_' + sendHitTaskModel.get('trackingId') + '=true; expires=' + d.toUTCString() + '; path=/; domain=' + updateSessionCookie.domain;           }         }         // /updateSessionCookie        } catch(e) {         originalSendHitTask(originalSendHitTaskModel);       }            });   }; }; 

Si vous utilisez Google Tag Manager, copiez-le dans une variable JavaScript personnalisée, puis remplacez la première ligne par function() { et supprimez le tout dernier caractère du bloc de code (le dernier point-virgule). Ensuite, ajoutez-le en tant que nouveau Champ à définir dans les paramètres de votre balise Google Analytics.

si vous utilisez Google Analytics, vous devez exécuter ce code JavaScript avant l’extrait de code Google Analytics, puis lors de la création du tracker, modifiez-le pour :

ga('create', 'UA-XXXXX-Y'); ga('set', 'customTask', _customTask); // <-- Add this ga('send', 'pageview'); 

Cette customTask doit être ajouté à tous les tags et hits dont vous souhaitez qu’ils aient un impact sur l’actualisation de la session. Fondamentalement, il devrait se déclencher avec toutes vos pages vues et événements, car ce sont les deux qui maintiennent la session en vie.

Comment ça fonctionne

Tout tag ou hit qui utilise ceci customTask exécutera désormais du code supplémentaire lorsque le hit aura été envoyé à Google Analytics. Le code vérifie si le hit était interactif (puisque les hits non interactifs ne maintiennent pas une session en vie) et s’il s’agissait d’un événement ou d’une page vue (puisque ce sont les deux hits qui maintiennent une session en vie).

Dans ces deux conditions sont vraies, un cookie nommé _session_UA-XXXXX-Y est créé (ou mis à jour s’il existe déjà) avec une expiration définie sur ce que vous avez configuré comme valeur du expiresMs propriété au début du bloc de code.

En d’autres termes, vous aurez désormais un cookie qui, s’il existe, signifie qu’il y a très probablement une session active dans Google Analytics. Je dis “le plus probable”, car il existe de nombreuses façons d’interrompre les sessions avant même l’expiration du délai d’attente.

Ce cookie est un abstraction raisonnable du schéma de délai d’expiration de session dans Google Analytics. Ce n’est pas parfait, mais cela vous donne une idée.

Choses que vous pouvez faire avec

Eh bien, le plus simple est de l’utiliser pour empêcher les événements de se déclencher si le cookie de session n’existe pas. Pourquoi? Parce que c’est fastidieux d’avoir des sessions qui n’ont que des événements. Même s’il n’y a vraiment aucun problème à déclencher des événements avant pages vues (même si toute la documentation essaie de vous dire le contraire), il y a un risque que vous ayez des sessions qui seul avoir des événements.

Ces séances seront gâchées par le laid (not set) Landing Page, car Google Analytics est tyrannique dans les sessions exigeantes pour toujours inclure une page vue (je ne sais pas pourquoi).

Ainsi, dans Google Tag Manager, vous pouvez le faire en créant d’abord un Biscuit propriétaire variable pour le cookie de session. N’oubliez pas de remplacer « UA-XXXXXX-Y » par l’ID de suivi de la propriété dont vous surveillez le délai d’expiration.

Cookie de session

Ensuite, créez un nouveau déclencheur d’événement personnalisé qui vérifie si ce cookie a la valeur true:

Déclencheur pour bloquer si la session n'est pas active

Désormais, toute balise à laquelle vous ajoutez ce déclencheur en tant qu’exception ne pas feu si la session a expiré.

C’est assez brutal – vous n’envoyez pas de hits d’événement à GA parce que vous avez peur qu’ils créent des sessions orphelines. C’est une crainte valable à avoir avec le schéma de mise en session de GA, mais cela pourrait être exagéré.

Donc, une autre option consiste à transformer tous les hits d’événement en non interactif hits, car ceux-ci n’incrémentent pas le nombre de sessions ou les dimensions dans votre ensemble de données, mais les données sont toujours collectées.

Pour ce faire, vous avez besoin d’un Variable JavaScript personnalisée ça ressemble à ça :

function() {   return {{UA-XXXXX-Y session}} !== 'true'; } 

Ce JavaScript renvoie false si la session est active, et true s’il n’y a pas de session active. En ajoutant ceci au Non-interaction dans vos tags d’événement, le hit sera non interactif s’il n’y a pas de session active.

Vous pouvez même modifier le customTask faire cette logique pour vous. Au sein de la customTask méthode, juste après try {vous pourriez faire quelque chose comme ça (vous aurez besoin du Biscuit propriétaire pour ça):

try {      // ADD THIS   if ({{UA-XXXXX-Y session}} !== 'true' && sendHitTaskModel.get('hitType') === 'event' && sendHitTaskModel.get('nonInteraction') !== true) {     return;   }   // UP TO HERE      originalSendHitTask(sendHitTaskModel);   ... } 

Cet ajout empêche le déclenchement du hit (et la création/mise à jour du cookie) si la session est ne pas vivant et le coup est un événement interactif. Pour tous les autres types de hits, le hit est envoyé et le cookie est créé. De cette façon, vous n’avez pas besoin de jouer avec les déclencheurs – vous pouvez avoir customTask faire toutes les démarches pour vous.

Résumé

Cette customTask Cette astuce peut être utilisée pour apporter un aperçu dans le navigateur si une session est actuellement active ou non dans Google Analytics.

Ce n’est pas parfait, puisque la mise en session dépend de tant de choses (dont une multitude se produit dans les entrailles des serveurs de traitement de GA), mais cela peut être utilisé comme un indication de savoir s’il y a ou non une session active.

Cette solution est également pas nécessaire, surtout si vous utilisez BigQuery. Les données brutes que vous collectez sur le site sont utiles et valides même s’il n’y a pas de page vue initiant une session. Assurez-vous donc d’avoir un cas d’utilisation pour cela avant de vous lancer.

Source : www.simoahava.com

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Index