Mise au point Google Tag Manager

ortolojf

WRInaute accro
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.
 

ortolojf

WRInaute accro
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);
    }
}
}
}
 

ortolojf

WRInaute accro
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.
 

ortolojf

WRInaute accro
Bonjour

Mon cookieExpire est égal à : 33695869.

Est-ce que c'est correct ?

Merci beaucoup de vos réponses.
 

ortolojf

WRInaute accro
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.
 

ortolojf

WRInaute accro
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.
 

Discussions similaires

Haut