Comment enregistrer uniquement les sessions souhaitées

4 minutes de lecture
💡
L'article original est disponible ici sur Posthog : https://posthog.com/tutorials/limit-session-recordings

Configuration et commandes de relecture de session de base

Pour suivre ce tutoriel, vous devez remplacer disable_session_recording par true dans l'initialisation de PostHog. Par exemple, dans une application Next.js, cela donne :

JavaScript

Vous pouvez ensuite utiliser la méthode `startSessionRecording()` de PostHog pour déclencher une relecture de session au moment opportun. À titre d'exemple simple, nous pouvons utiliser la méthode d'initialisation `loaded` pour démarrer une relecture de session lorsque l'environnement n'est pas défini sur `development`.

JavaScript

Contrôler les enregistrements avec des indicateurs de fonctionnalités

Vous pouvez également utiliser des indicateurs de fonctionnalités pour contrôler les sessions à enregistrer. Cela vous permet de contrôler l'enregistrement des sessions en fonction de :

// pages/_app.js
import posthog from "posthog-js"
import { PostHogProvider } from 'posthog-js/react'
if (typeof window !== 'undefined') {
  posthog.init('phc_HVcGJdGDtkcvV1qUuz5bDrMf987gskGUpFH1nV6ufov', {
    api_host: 'https://us.i.posthog.com',
    defaults: '2025-05-24',
    disable_session_recording: true,
  })
}
export default function App({ Component, pageProps }) {
  return (
    <>
      <PostHogProvider client={posthog}>
        <Component {...pageProps} />
      </PostHogProvider>
    </>
  )
}

//...
if (typeof window !== 'undefined') {
  posthog.init('phc_HVcGJdGDtkcvV1qUuz5bDrMf987gskGUpFH1nV6ufov', {
    api_host: 'https://us.i.posthog.com',
    defaults: '2025-05-24',
    disable_session_recording: true,
    loaded: (posthog) => {
      if (process.env.NODE_ENV != 'development') posthog.startSessionRecording()
    }
  })
}
//...

  • propriétés des personnes
  • propriétés de groupe
  • cohortes
  • pourcentages de chacun de ces (ou de tous les utilisateurs)

Par exemple, si vous souhaitez enregistrer seulement 50 % des sessions des utilisateurs situés aux États-Unis, configurez un indicateur de fonctionnalité où le code pays est égal à « US » et déployez-le auprès de 50 % des utilisateurs correspondants comme ceci :

Utilisation des indicateurs de fonctionnalités liés

Vous pouvez ensuite activer cette option pour activer les enregistrements dans vos paramètres d'ingestion de relecture .

L'enregistrement est mis en mémoire tampon côté client jusqu'à réception de la réponse de décision. Il ne reprend que si l'option correspondante est activée. Autrement dit, si cette option est désactivée, l'enregistrement s'arrête et aucune donnée n'est transférée hors de l'appareil du client.

Manuellement dans votre code

Vous pouvez également vérifier cet indicateur après avoir initialisé PostHog et démarrer un enregistrement s'il est actif pour l'utilisateur actuel. Pour garantir l'exactitude des informations relatives à l'utilisateur et à l'indicateur, vous pouvez utiliser les hooks usePostHog et useFeatureFlagEnabled de posthog-js/react dans un composant comme celui-ci :

JavaScript

Évaluation du drapeau sur la charge

Si vous souhaitez évaluer les options dès le chargement de PostHog, vous pouvez utiliser la méthode `loaded` dans les options d'initialisation. Veillez à utiliser la méthode `onFeatureFlags` pour garantir le chargement des options avant leur évaluation.

JavaScript

Remarque : lors de l’évaluation des indicateurs pour un nouvel utilisateur, les propriétés de la personne ne seront disponibles qu’après l’ingestion. Par conséquent, les indicateurs dépendant des propriétés de la personne ne seront pas évalués correctement s’ils le sont dans la méthode chargée. Les propriétés GeoIP (telles que le code continent, le pays et le nom de la ville) fonctionneront car elles ne dépendent pas de l’ingestion. Pour que les indicateurs avec des propriétés de la personne fonctionnent dans ce cas, utilisez l’amorçage.

import { useFeatureFlagEnabled, usePostHog } from 'posthog-js/react'
export default function Home() {
  const posthog = usePostHog()

  if (useFeatureFlagEnabled('record-na')) {
    posthog.startSessionRecording()
  }
  return (
    <>
      <p>Record this page</p>
    </>
  )
}

// pages/_app.js
if (typeof window !== 'undefined') {
  posthog.init('phc_HVcGJdGDtkcvV1qUuz5bDrMf987gskGUpFH1nV6ufov', {
    api_host: 'https://us.i.posthog.com',
    defaults: '2025-05-24',
    disable_session_recording: true,
    loaded: (posthog) => {
      posthog.onFeatureFlags((flags) => {
        if (posthog.isFeatureEnabled('record-na')) posthog.startSessionRecording()
      })
    }
  })
}
//...

Inscrire sur des pages spécifiques

Vous pouvez démarrer des enregistrements sur des pages spécifiques en appelant startSessionRecording() lors du premier chargement de ces pages.

En utilisant le routeur, vous pouvez vérifier quelle page les utilisateurs consultent et configurer les relectures de session pour qu'elles démarrent une fois qu'ils accèdent à la page souhaitée.

JavaScript

Remarque : vous pouvez utiliser le routeur, mais les fonctions next/router (et autres) ne se déclenchent pas au chargement initial de la page. L’enregistrement se déclenchera lorsqu’un utilisateur accède à la page via le routeur, mais pas s’il y accède directement.

Enregistrement après un comportement spécifique de l'utilisateur

Enfin, vous pouvez déclencher l'enregistrement à chaque action de l'utilisateur : clics sur des boutons, saisies, survol de la souris, voire défilement. Il suffit pour cela d'appeler la fonction startSessionRecording() lorsque l'utilisateur effectue ces actions.

JavaScript

Ceci est utile si vous souhaitez enregistrer des parties ou des chemins spécifiques sur une page, tels que :

import { useEffect } from "react"
import { usePostHog } from "posthog-js/react"
export default function About() {
  const posthog = usePostHog()
  useEffect(() => {
    posthog.startSessionRecording()
  }, []);
  return (
    <>
      <p>Record this page</p>
    </>
  )
}

import { usePostHog } from 'posthog-js/react'
export default function Home() {
  const posthog = usePostHog()
  return (
    <>
      <p>Record this page</p>
      <button onClick={() => posthog.startSessionRecording()}>
        Start recording
      </button>
    </>
  )
}

  • tunnels d'inscription et de paiement
  • nouvelles fonctionnalités ou mises à jour
  • Des composants plus petits et spécifiques à l'intérieur d'un composant plus grand.
Avez-vous trouvé votre réponse?