Envoyer un événement seulement une fois par session?

Est-il possible d’envoyer un événement Google Analytics une seule fois par session? Je ne veux pas envoyer mon événement spécifique avec chaque page vue.

Ce que je veux réaliser:

Je gère un site Web sans aucune publicité pour le moment. Et je veux tester combien de visiteurs de mon site Web utilisent adblockers.

J’appendais un élément comme

qui serait filtré par probablement chaque adblocker (au moins la plupart d’entre eux). Ensuite, je voudrais juste tester avec jquery si l’élément existe

 $(function(){ function test(){ var len = $('.ad').length; if(len === 0){ ga.send(..); } } // give adblockers a sec to remove everything, just in case setTimeout(test,500); }); 

Je pourrais probablement utiliser une solution de contournement avec un cookie personnalisé, comme

 // simplified if (!cookie) { test(); } 

Mais je serais intéressé si cela est possible avec Google Api uniquement

Les événements Google Analytics sont un type de hit (comme les pages vues) qui ne peuvent pas être étendus aux sessions ou aux utilisateurs. Même si vous ne pouviez envoyer qu’un seul événement par session (à l’aide de cookies ou de sessionStorage, vous n’obtiendrez pas l’image complète dans vos rapports d’AG.

Pour offrir une meilleure solution, envisagez d’utiliser une dimension personnalisée avec une étendue de “session” pour stocker ces données. Ce qui est bien à propos de cela, c’est que la dimension est appliquée à tous les types de résultats dans la scope, ce qui signifie que toute vue de page, événement, etc. est également associé à la dimension.

Pour ce faire, créez la dimension dans Google Analytics Admin sous les parameters de propriété de Définitions personnalisées. Obtenez le numéro d’index (une chaîne ressemblant à 'dimension1' ou 'dimension 4' ) et collez la ligne AVANT d’ envoyer la vue de page (idéalement) ou un événement.

N’oubliez pas: les dimensions ne sont pas des occurrences. Il ne suffit donc pas de les définir avant qu’un hit soit également envoyé! Assurez-vous également d’activer la non-interaction sur les événements (s’il s’agit de l’itinéraire que vous choisissez), sinon vous ferez des déclarations erronées sur les rebonds de ceux qui utilisent des bloqueurs de publicité.

Voici l’extrait de code idéal (Remarque: si vous allez définir setTimeout dans le cadre de votre détection, n’utilisez pas cette méthode car cela retarderait l’envoi de la page vue également … Considérez une méthode qui n’a pas besoin de délai d’attente. ):

  

Votre code ci-dessus ressemblerait à ceci si vous ne pouvez pas effectuer la détection avant l’extrait de visualisation de la page GA.

 function test(){ var len = $('.ad').length; if(len === 0){ ga('set', 'dimension1', 'Ad Blocker'); //Change 'dimension1' to yours. ga('send', 'event', 'Ad Blocker', {nonInteraction: true}); //Add action and label as needed. } }