Mesurer les sessions et l'engagement des utilisateurs

Pour obtenir des présentations conceptuelles des portées utilisateur et session, y compris la façon dont Google Analytics définit et limite strictement les sessions par inactivité, consultez les Dimensions et métriques : À propos des sessions Analytics et le guide sur les portées des dimensions de source de trafic.

Ce guide aborde les défis spécifiques aux développeurs et les bonnes pratiques pour gérer les configurations de session et le suivi passif.

Associer des dimensions au niveau de la page à des métriques de session

L'une des nuances les plus courantes dans les rapports se produit lorsque vous associez des dimensions avec portée au niveau de la page (par exemple, le chemin de la page et la classe de l'écran) à la métrique Sessions au niveau de la session.

Définitions de session et de vue

  • Sessions comptabilise les périodes uniques pendant lesquelles un chemin de page donné a été chargé au moins une fois.

  • Vues (pages vues) comptabilise le nombre total cumulé de fois où le chemin de la page a été chargé.

Exemple

Prenons l'exemple d'une session unique avec le chemin de navigation utilisateur suivant : /home/products/home → Quitter

S'il s'agit de la seule session, un rapport configuré avec les métriques Chemin de la page et classe de l'écran et Sessions ou Vues affiche les éléments suivants :

Chemin de la page Sessions Vues
/home 1 2
/products 1 1
Total (déduplication Google Analytics) 1 3

Si vous additionnez les lignes, vous obtenez deux sessions, mais le total réel de la propriété est dédupliqué à 1.

Règles de personnalisation

  • Sessions avec chemin de la page fait référence aux sessions uniques qui visitent le chemin au moins une fois.
  • Sessions avec page de destination fait référence aux sessions uniques qui commencent sur le chemin. Pour afficher le trafic de destination, utilisez toujours Page de destination + chaîne de requête plutôt que Sessions avec chemin de la page.
  • Vues comptabilise toujours la fréquence totale de chargement.

Bonnes pratiques pour les développeurs et les analystes

  • Maintenir la cohérence des portées : ne mélangez pas les dimensions de trafic avec portée au niveau de l'utilisateur (par exemple, Groupe de canaux par défaut du premier utilisateur) avec les métriques avec portée au niveau de la session (par exemple, Durée moyenne des sessions) si votre objectif est de comprendre les performances des sessions.
  • Valider session_start dans DebugView : pendant la phase d'assurance qualité et de vérification, utilisez des outils de débogage standards tels que Google Analytics DebugView pour confirmer que session_start se déclenche correctement au début de la session.

Bonnes pratiques pour gérer les délais avant expiration des sessions

La durée par défaut d'une session Google Analytics est de 30 minutes.

Nous vous déconseillons d'implémenter un code personnalisé pour "pinguer" régulièrement Google Analytics afin d'éviter les délais avant expiration dus à l'inactivité. Si vous gonflez artificiellement les métriques de session, vous faussez les données sur le comportement des utilisateurs. Utilisez plutôt les fonctionnalités intégrées de Google Analytics ou ciblez des événements d'engagement pertinents pour proposer une solution plus propre.

Pourquoi les pings "keep-alive" génériques sont une mauvaise pratique

  • Métriques principales faussées : si un utilisateur s'éloigne de son onglet, il est réellement inactif. Si vous forcez la session à rester ouverte, vous créez des "sessions zombies" et gonflez faussement votre durée moyenne des sessions. Cela masque le moment réel où les utilisateurs perdent intérêt ou quittent votre site.
  • Impact sur les sessions avec engagement : Google Analytics définit une session avec engagement comme une session qui dure plus de 10 secondes, comporte au moins deux pages vues ou déclenche un événement clé (anciennement événement de conversion). Si vous maintenez artificiellement une session ouverte, elle apparaît comme une session avec engagement, ce qui gonfle votre taux d'engagement.
  • Gonflement des données et coûts : si vous déclenchez constamment des événements de ping en arrière-plan vides, cela augmente le bruit du nombre d'événements et les coûts de l'entrepôt de données si vous exportez des données Google Analytics vers BigQuery.

Quand suivre l'engagement passif (et comment procéder)

Dans certains cas légitimes, un utilisateur interagit activement avec un contenu, mais ne déclenche pas d'événements d'interaction Google Analytics standards (comme des clics ou des changements de page). Dans ce cas, au lieu d'un ping keep-alive générique, capturez des événements de progression pertinents initiés par l'utilisateur :

  • Contenu vidéo long : un utilisateur qui regarde une vidéo intégrée de 45 minutes restera passif pendant plus de 30 minutes et risque de voir sa session expirer.
  • Articles approfondis : un utilisateur peut passer 40 minutes à lire un guide technique et faire défiler lentement la page sans déclencher d'actions de navigation.
  • Applications Web interactives : les utilisateurs qui surveillent des flux en direct, des cours de bourse ou des tableaux de bord de données consomment des informations de manière passive sans cliquer.

Si l'utilisateur réduit la fenêtre du navigateur ou change d'onglet, les pings en arrière-plan doivent s'arrêter.

Exemple de code : ping d'événement tenant compte de la visibilité

Le modèle JavaScript suivant montre comment suivre l'engagement passif et respecter la visibilité des onglets. Ajustez l'intervalle de suivi et la valeur du paramètre (par exemple, 5 minutes ou 300 000 ms) en fonction de votre cas d'utilisation spécifique, comme la durée habituelle de vos vidéos ou de vos articles longs :

const TRACKING_INTERVAL_MILLIS = 5 * 60 * 1000;

let engagementInterval;

function startEngagementTracking() {
  // Prevent duplicate intervals if tab becomes visible
  if (engagementInterval) return;

  engagementInterval = setInterval(() => {
    gtag('event', 'passive_engagement', {
      'engagement_time_msec': TRACKING_INTERVAL_MILLIS
    });
  }, TRACKING_INTERVAL_MILLIS);
}

function stopEngagementTracking() {
  if (engagementInterval) {
    clearInterval(engagementInterval);
    engagementInterval = null;
  }
}

// Start tracking initially if the page is visible
if (!document.hidden) {
  startEngagementTracking();
}

// Stop tracking when tab is hidden, resume when visible
document.addEventListener('visibilitychange', () => {
  if (document.hidden) {
    stopEngagementTracking();
  } else {
    startEngagementTracking();
  }
});

Mesures améliorées de Google Analytics par rapport au suivi personnalisé

Google Analytics propose des mesures améliorées, qui gèrent automatiquement certains scénarios de suivi passif, mais présentent des limites spécifiques.

Type d'interaction Géré par les mesures améliorées ? Exigences / Tâches
Vidéos YouTube intégrées Oui Déclenche automatiquement les étapes video_start, video_complete et video_progress à 10%, 25%, 50 % et 75% (nécessite l'activation de la compatibilité avec l'API JS).
Vidéos non YouTube (HTML5, Vimeo) Non Nécessite une implémentation personnalisée. Déclenchez des événements par programmation à l'aide de gtag.js ou gérez les déclencheurs à l'aide de Google Tag Manager (GTM).
Défilement de page standard Partiel Déclenche un seul événement scroll uniquement lorsque l'utilisateur atteint 90% d'une page.
Progression de lecture incrémentale Non Désactivez le suivi du défilement par défaut de Google Analytics et implémentez des seuils de défilement personnalisés (par exemple, 25%, 50%, 75%) par programmation ou dans GTM.

L'alternative la plus propre : ajuster la limite du délai avant expiration de la session Google Analytics

Si votre site Web est naturellement axé sur du contenu long, des cours vidéo ou une utilisation continue de l'application, vous n'avez pas besoin d'injecter des hacks de script personnalisés. Vous pouvez ajuster le seuil par défaut de 30 minutes dans l'interface Google Analytics jusqu'à un maximum de 7 heures et 55 minutes. Pour obtenir des instructions, consultez Ajuster le délai avant expiration de la session.