Bonjour Après de nombreuses années avec Google Analytics, j'ai essayé hier de configurer Google Tag Manager pour mon site. Il n'y a pas d'erreurs avec le mode "Aperçu" de GTM, les données sont transmises mais sur Google Analytics il n'y a aucune visite. J'ai voulu mettre les paramètres suivants : - anonymizeIp : true - ForceSSL : true - Expires : 13 mois. Pour le Expires , voici ci-dessous les variables "Javascript personnalisé" : Code: /*****************************************************************************/ 1 – Créer une variable GTM « ID » pour récupérer le CID contenu dans le cookie « _ga ». /*****************************************************************************/ function() { var match = document.cookie.match('(?:^|;)\\s*_ga=([^;]*)'); var raw = (match) ? decodeURIComponent(match[1]) : null; if (raw) { match = raw.match(/(\d+\.\d+)$/); } var gacid = (match) ? match[1] : null; if (gacid) { return gacid; } /*****************************************************************************/ 2 – Créer une variable JavaScript personnalisée « cookie _ga expires 13 months » pour calculer et retourner la nouvelle date d’expiration en secondes. /*****************************************************************************/ function(){ try { var ga = {{ID}}; var ga_create= (Number(ga.split(".").pop()))*1000; var sec_expire = 60*60*24*30*13*1000; var t = new Date().getTime(); var t0 = new Date(ga_create).getTime(); var t1 = t0 + sec_expire; var t_diff = Math.round((t1-t)/1000); return t_diff; } catch(e){ return sec_expire/1000; console.log(e); } } /*****************************************************************************/ Configurer le paramètre « cookieExpires » avec la nouvelle date d’expiration dans la variable « Paramètres Google Analytics » qui doit être appelée par toutes les balises Google Analytics. /*****************************************************************************/ Cà marche, les données sont bien interprétées. A côté de çà, je filtre le déclencheur du type "Page vue" avec restriction : "Window Loaded" suivant la valeur d'une variable "Javascript personnalisée" , prenant en compte la valeur du cookie de gestion de cookies : 'CM_cookieConsent', qui est lu correctement, mais il semble que le filtre soit foireux. Je me perd un peu dans les filtres, actions du type : "set.model()" dans cette variable, il semble qu'elle ne soit pas prise en compte mais elle est censée rendre une fonction paramètre : "model." Je tiens à disposition cette variables programmée par mes soins. Merci beaucoup de votre aide. Amicalement.
Rebonjour Voici ci-dessous la fonction censée filtrer la prise en compte des données de GTM. Je ne sais pas en fait, comment filtrer la transmission des data à Google, par cette fonction. {{GestionCookie}} est visible correct dans le mode "Aperçu". La fonction théoriquement, rend une fonction de paramètre (model), cette fonction dépend du paramètre Google Analytics : customTask. Tout est correct, pas d'erreur, mais les data ne passent pas. Comment faire ? Merci de votre aide. Respectueusement. Code: function() { return function (model) { OptInOut = 'opt-in'; doNotTrackOption = window[doNotTrack] || window[navigator.doNotTrack] || window[navigator.webkitDoNotTrack] || window[navigator.msDoNotTrack]; // Teste si CM_cookieConsent = '0' ou doNotTrackOption === 'yes' ou doNotTrackOption === '1' // Si oui, on supprime les paramètres du hit ce qui annule l'envoi. if ( doNotTrackOption === 'yes' || doNotTrackOption === '1' ) { // Analytics data not sent. model.set('displayFeaturesTask', null); model.set('sendHitTask', null); // Cookies explicitely forbidden. } else if ( {{GestionCookie}} === '0' ) { // doNotTrackOption // not affected or supported. // CM_cookieConsent == '0'. // Analytics data not sent. model.set('displayFeaturesTask', null); model.set('sendHitTask', null); // Cookies explicitely allowed. } else if ( {{GestionCookie}} === '1' ) { ; // doNotTrackOption // not affected or supported. // CM_cookieConsent == '1'. // Analytics data are being sent. } else { // doNotTrackOption // not affected or supported. // CM_cookieConsent == null. // Version opt-out : // Analytics data not sent. if ( OptInOut === 'opt-in' ) { model.set('displayFeaturesTask', null); model.set('sendHitTask', null); } else { // Version opt-in : // Analytics data not sent. model.set('displayFeaturesTask', null); model.set('sendHitTask', null); } } } }
Voili, voilou Je touche au but. Les data sont envoyées quand il faut, et ne sont pas envoyées quand il ne faut pas. En mode "Aperçu" j'ai ce message : "No tags were evaluated because there was no Event in the selected Message." J'ai une balise de type "Google Analytics - Universal Analytics", avec comme déclencheur : "All Pages", et comme Exceptions les cas où le DoNotTrack est activé, et les Cookies interdits. Quoi faire pour un Event ? Le "All Pages" n'est pas suffisant ? Merci beaucoup.
Bonjour Mon cookieExpire est égal à : 33695869. Est-ce que c'est correct ? Merci beaucoup de vos réponses.
Je vous demande pardon Cà marche. Je m'étais trompé d'identificateur Google Analytics. Et puis, j'avais mis comme cookieExpires : nbre de secondes 13 mois + ( dernier champ de _ga ) - new Date.getTime(). Maintenant c'est : nbre de secondes 13 mois. Est-ce correct ? Maintenant je vois sur GA les visites en temps réel. Respectueusement.
Pour infos... Pour disposer du cookie _ga c'est facile : HTML: <script> function getCookie(name) { var nameEQ = name + '='; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } </script> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'userID' : 'unkwown', 'visitorID' : getCookie('_ga') }); </script> Après, vous avez dans la "variable de couche de données" : visitorID le cookie _ga , et vous pouvez l'interpréter dans GTM. Pour ce qui est de : "navigator.NotTrack" éventuel, c'est une "variable Javascript globale". Pour le reste, un cookie tel que : cookieConsent est un "cookie propriétaire". On peut jongler avec les variables "Javasript personnalisée", les déclencheurs et les exceptions. Je déclenche une balise de type "Google Analytics - Universal Analytics" avec un déclencheur '"All Pages" de type "page vue", et les deux exceptions : cookieConsent == 0 , et NotTrack != 0 Pour NotTrack, 0 est la valeur par défaut si null, false ou 0. C'est vrai que je prend pas en compte la valeur "no" équivalente qui dans mon cas est != 0. Est-ce grave ? Amicalement.