1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

solution pour avoir une "Durée de la session" autre que 0

Discussion dans 'Google Analytics' créé par daniel19, 5 Avril 2020.

  1. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    bonjour,
    je cherche un moyen d'obtenir que Google Analytics indique une "Durée de la session" autre que 00:00:00 pour les pages de mon site.
    La doc dit:
    "S'il n'y a aucun autre appel après le premier enregistré, Analytics ne peut pas calculer la durée de la session."
    "Il calcule le temps passé sur la page en examinant le temps écoulé entre le moment où une page est chargée et le moment où une page a été fermée ou remplacée."

    j'ai bien pensé à GTM mais je n'ai pas su faire... alors j'ai essayé 2 solutions:
    1/ j'ai placé sur ma page TEST.html une image cliquable de fermeture :

    <form><input type='image' src="IMAGES/porte.png" class="CloseWindow" onclick="window.open('EXIT.html'); self.close()"></form>

    EXIT.html contient juste :
    <script>self.close();</script>

    quand je clique sur l'icône de la porte, Google Analytics comptabilise alors le temps passé sur TEST.html, mais on ne quitte pas la page...
    La doc dit:
    "vous ne pouvez pas fermer une fenêtre de navigateur via JavaScript si vous n'avez pas créé la fenêtre via un script". Donc il semble que je sois coincé de ce côté là...

    2/ piéger la croix X de sortie avec genre:
    <body beforeunload = "alert('GO')">
    ou
    <body onbeforeunload="alert('GO')">
    ou
    <body onBlur = "alert('GO')">

    mais aucun n'exécute la commande, autrement dit je ne peux pas appeler EXIT.html...
    si vous avez une idée, un conseil...
    merci et bien cordialement
    daniel
     
  2. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 517
    J'aime reçus:
    202
    Je n'ai pas testé mais ce que je ferais, c'est faire un hit vers une page virtuelle dans l'événement onbeforeunload :

    ga('set', 'transport', 'beacon');
    ga('send', 'pageview', '/page_virtuelle_de_sortie.html');
     
  3. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 789
    J'aime reçus:
    452
    la dernière page vue d'une session est forcément de durée nulle, sauf s'il y a une autre interaction trackée
    détails et explications : durée de visite à 0 dans Analytics
     
  4. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    oui, c'est ce que j'avais lu... mais ça me titille et j'ai voulu quand même creuser
    @rick38, merci de ta suggestion mais dis-moi:
    si déjà
    <body onbeforeunload="alert('GO')">
    "GO" ne s'affiche pas ça veut dire que onbeforeunload fait rien, non?
    mais je vais essayer! /page_virtuelle_de_sortie.html c'est mon EXIT.htlm?
    (dans EXIT.htlm j'ai mis aussi le "Global site tag")

    daniel
     
  5. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 517
    J'aime reçus:
    202
    Non, ça veut dire que les navigateurs ne veulent plus qu'on empêche le visiteur de quitter la page, donc ils ignorent la fonction alert() à cet endroit.

    Et l'autre problématique de onbeforeunload par rapport aux autres événements, c'est qu'en exécutant du code asynchrone, comme ajax(), il n'aura pas le temps d'être exécuté avant que le navigateur le passe à la trappe, donc il faut un code synchrone, comme la fonction sendBeacon(), si on veut appeler une page à cette endroit, mais comme le code de GA a une propriété transport: beacon j'en déduis qu'il doit pour utiliser cette façon de faire.

    Non c'est une page qui ne sera pas réellement appelée, c'est virtuel, juste histoire de déclencher un événement, peu importe son nom. Une alternative est de déclencher un 'event' pour ne pas faire apparaître cette fausse page dans les stats.
     
  6. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    j'ai essayé... le résultat est inattendu :
    j'ai d'abord eu :
    1 (6,67 %) 00:00:00 (0,00 %) 00:00:00 (0,00 %) 0,00 %
    puis après 5mn :
    1 (6,67 %) 00:04:58 (100,00 %) 00:04:58 (100,00 %) 0,00 %
    je vais continuer ces tests sur plusieurs pages, vues en direct et vi
     
  7. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    zut, le mail est parti tout seul, désolé
    je disais donc que j'allais continuer ces tests et que je ferai un bilan demain
    En attendant je te remercie beaucoup!!

    daniel
     
  8. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    bonjour @rick38
    j'ai appliqué ce matin ta solution sur les 70 pages de mon site et envoyé le sitemap. Je dois attendre que Google les indexe et laisser passer quelques jours avant de pouvoir dire son impact sur la durée de session calculée. Je ne peux encore le dire.
    A bientôt donc et encore merci
    daniel
     
  9. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 789
    J'aime reçus:
    452
    quel est le rapport avec le sitemap ?
     
  10. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 517
    J'aime reçus:
    202
    Oui je ne vois pas ce que le sitemap fait dans tout ça.

    Puis ce serait mieux que tu aies un fichier javascript séparé, chargé dans chaque page, plutôt que de recopier le code dans toutes les pages. En jquery ça donne $('body').on('beforeunload', function() { ... }); pour lier l'événement.

    Je reprécise que je n'ai pas essayé ma solution, je ne certifie pas que ça marche.

    Une autre solution est évoquée avec GTM mais c'est trop long je n'ai pas lu : https://www.simoahava.com/analytics/leverage-usebeacon-beforeunload-google-analytics/
     
  11. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    bonjour
    j'ai renvoyé le sitemap pour que Google réindexe les pages... Je dis une bêtise?

    j'ai remplacé le <body> de toutes les pages ainsi:
    <body onbeforeunload = "ga('set', 'transport', 'beacon');ga('send', 'pageview', '/page_virtuelle_de_sortie.html');">
    peut-être que j'aurais pu le faire dans mon "site.css"...

    en effet ça paraissait possible avec GTM, mais je n'ai pas compris comment faire

    merci de vos messages!
    daniel
     
  12. daniel19
    daniel19 Nouveau WRInaute
    Inscrit:
    27 Décembre 2019
    Messages:
    7
    J'aime reçus:
    0
    bonjour,
    comme promis, je vous fais un point sur la problématique que je vous ai soumise.
    1/ Avec ta solution @rick38 :
    -> d'abord GA indique le temps exact passé sur la page mais après 10-20 minutes c'est le délire : au lieu de qques secondes il indique des dizaines de minutes...
    => cela indique mais ne respecte pas la durée de la session
    2/ sur ton conseil je me suis replongé dans GTM, et suivi le cours de Bruno Guyot :
    https://www.bruno-guyot.com/guide-gtm-concepts.php
    Il est très bien fait! Malheureusement, et il me l'a confirmé, il n'y a pas de déclencheur prévu quand le visiteur ferme la page avec X
    3/ nouvelles recherches sur le Net :
    trouvé sur :
    https://developers.google.com/analytics/devguides/collection/analyticsjs
    <script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
    ga('create', 'UA-XXXXX-Y', 'auto');
    ga('send', 'pageview');
    </script>
    -> placé ce code en <head> AVANT le "Global site tag"
    => mais idem: indique mais ne respecte pas la durée de la session
    Ex: 2mn10s -> 00:19:14 / 00:10:14 !

    Par contre:
    inséré ce même code en <body onbeforeunload =...> comme suggéré par @rick38 :
    <body onbeforeunload = " (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create', 'UA-XXXXX-Y', 'auto');ga('send', 'pageview')">

    et là, ça marche !
    Ex: une connexion de 2mn20s :
    il y a 2 traces de session :
    905 --> 00:00:00 / 00:02:22
    907 --> 0s
    la 1ère indique correctement la durée et la 2ème, de 0s, se produit n minutes après la 1ère. Elle confirme en quelque sorte la durée de la session...

    Fonctionne aussi :
    placé le code suivant AVANT le "Global site tag" :
    <script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-XXXXX-Y', 'auto');
    ga('send', 'pageview');
    </script>
    <script async src='https://www.google-analytics.com/analytics.js'></script>

    connexion de 2mn5s :
    780 --> 00:02:11 OK
    783 --> 0s
    => idem donc que le cas précédent

    En conclusion :
    2 solutions, apparemment équivalentes
    La session "fantôme" supplémentaire ne gêne pas trop
    Il reste à les observer dans le temps, notamment sur les anciens mobiles qui ne reconnaissent par la commande "async"... (pas tout compris)

    Encore un grand merci à @rick38
    daniel
     
Chargement...
Similar Threads - solution Durée session Forum Date
Adaptation mobile sans solutions ?! Développement d'un site Web ou d'une appli mobile 2 Janvier 2020
Solution pratique pour avoir des backlinks. Netlinking, backlinks, liens et redirections 15 Décembre 2019
Plateforme - Solution publicitaire intégrée aux éditoriaux. Demandes d'avis et de conseils sur vos sites 28 Octobre 2019
Bonne extension ou solution de petites annonces Développement d'un site Web ou d'une appli mobile 2 Octobre 2019
Les annuaires sont-ils la solution du référencement d'un site ? Annuaires et moteurs 14 Mai 2019
Campagne adwords sans aucun retour, quelle solution ? AdWords 6 Janvier 2019
Solution : Redirections de nombreuses pages Débuter en référencement 6 Novembre 2018
Vol de photos ya t-il une solution efficace? Droit du web (juridique, fiscalité...) 9 Avril 2018
Quelle solution de forum utiliser pour migration phpbbseo ? Demandes d'avis et de conseils sur vos sites 11 Mars 2018
Solution de paiement pour gros montants e-commerce 4 Mars 2018