Mise au point Google Tag Manager

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é" :

JavaScript:
/*****************************************************************************/
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.


JavaScript:
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.
 
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.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut