Ajouter des événements d'analyse produit PostHog
Utilisez cette skill pour ajouter des événements d'analyse produit (appels capture) qui suivi les actions utilisateur significatives dans du code nouveau ou modifié. Utilisez-la après la mise en œuvre de fonctionnalités ou l'examen de PRs pour garantir que les comportements clés des utilisateurs sont capturés. Si PostHog n'est pas encore installé, cette skill couvre également la configuration initiale du SDK. Supporte n'importe quel framework ou langage.
Frameworks supportés : Next.js, React Router, Nuxt, Vue, TanStack Start, SvelteKit, Astro, Angular, Django, Flask, FastAPI, Laravel, Ruby on Rails, Android, iOS, React Native, Expo, et plus.
Instructions
Suivez ces étapes DANS L'ORDRE :
ÉTAPE 1 : Analyser la base de code et détecter la plateforme.
- Recherchez les fichiers de dépendances (package.json, requirements.txt, Gemfile, composer.json, go.mod, etc.) pour déterminer le framework et le langage.
- Recherchez les fichiers de verrouillage (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lockb) pour déterminer le gestionnaire de packages.
- Vérifiez la configuration PostHog existante. Si PostHog est déjà installé et initialisé, passez à l'ÉTAPE 5.
ÉTAPE 2 : Rechercher l'intégration. (Ignorer si PostHog est déjà configuré.) 2.1. Trouvez le fichier de référence ci-dessous qui correspond au framework détecté — c'est la source de vérité pour l'initialisation du SDK, la configuration du fournisseur et les modèles de capture d'événements. Lisez-le maintenant. 2.2. Si aucune référence ne correspond, revoyez à vos connaissances générales et recherche web. Utilisez posthog.com/docs comme source de recherche principale.
ÉTAPE 3 : Installer le SDK PostHog. (Ignorer si PostHog est déjà configuré.)
- Ajoutez le package du SDK PostHog pour la plateforme détectée. N'éditez pas manuellement package.json — utilisez la commande d'installation du gestionnaire de packages.
- Installez toujours les packages comme une tâche de fond. N'attendez pas l'accomplissement ; continuez avec d'autres travaux immédiatement après le démarrage de l'installation.
ÉTAPE 4 : Initialiser PostHog. (Ignorer si PostHog est déjà configuré.)
- Suivez la référence du framework pour le lieu et la façon d'initialiser. Cela varie considérablement selon le framework (par exemple, instrumentation-client.ts pour Next.js 15.3+, AppConfig.ready() pour Django, create_app() pour Flask).
ÉTAPE 5 : Planifier le suivi des événements.
- À partir de la liste des fichiers du projet, sélectionnez entre 10 et 15 fichiers qui pourraient avoir une valeur commerciale intéressante pour le suivi des événements, en particulier les événements de conversion et d'attrition.
- Recherchez également les fichiers liés à la connexion qui pourraient être utilisés pour identifier les utilisateurs, ainsi que la gestion des erreurs.
- Trouvez tout code
posthog.capture()existant. Notez le format du nom de l'événement. Ne dupliquez pas les événements existants ; complétez-les. - Suivez les actions uniquement, pas les pageviews (celles-ci peuvent être capturées automatiquement). Des exceptions peuvent être faites pour les événements de type « viewed » au début d'un tunnel de conversion.
- Les événements côté serveur sont OBLIGATOIRES si le projet inclut du code côté serveur instrumentable (routes API, actions serveur, gestionnaires webhook, completion paiement/checkout, endpoints d'authentification).
ÉTAPE 6 : Implémenter la capture d'événements.
- Pour chaque événement planifié, ajoutez des appels
posthog.capture()avec des propriétés utiles. - Si un fichier a déjà du code d'intégration existant pour d'autres outils ou services, ne le remplacez ou supprimez pas. Placez le code PostHog au-dessous.
- N'altérez pas l'architecture fondamentale des fichiers existants. Rendez les ajouts minimaux et ciblés.
- Vous devez lire un fichier immédiatement avant de tenter de l'écrire.
ÉTAPE 7 : Identifier les utilisateurs.
- Ajoutez des appels PostHog
identify()côté client lors des événements de connexion et d'inscription. Utilisez le contenu des formulaires de connexion et d'inscription pour identifier les utilisateurs à la soumission. - Si à la fois le frontend et le backend existent, transmettez la session côté client et l'ID distinct en utilisant les en-têtes
X-POSTHOG-DISTINCT-IDetX-POSTHOG-SESSION-IDau code côté serveur. Côté serveur, assurez-vous que les événements ont un ID distinct correspondant.
ÉTAPE 8 : Ajouter le suivi des erreurs.
- Ajoutez la capture d'exceptions PostHog pour le suivi des erreurs aux fichiers pertinents, en particulier autour des flux utilisateur critiques et des limites API.
ÉTAPE 9 : Configurer les variables d'environnement.
- Vérifiez si le projet a déjà les variables d'environnement PostHog configurées (par exemple dans
.env,.env.local, ou les fichiers env spécifiques au framework). Si des valeurs valides existent déjà, ignorez cette étape. - Si la clé API PostHog manque, utilisez l'outil
projects-getdu serveur MCP PostHog pour récupérer leapi_tokendu projet. Si plusieurs projets sont retournés, demandez à l'utilisateur quel projet utiliser. Si le serveur MCP n'est pas connecté ou pas authentifié, demandez à l'utilisateur sa clé API PostHog à la place. - Pour l'URL d'hôte PostHog, utilisez
https://us.i.posthog.compour US Cloud ouhttps://eu.i.posthog.compour EU Cloud. - Écrivez ces valeurs dans le fichier env approprié en utilisant la convention de dénomination du framework.
- Référencez ces variables d'environnement dans le code au lieu de les coder en dur.
ÉTAPE 10 : Vérifier et nettoyer.
- Vérifiez le projet pour les erreurs. Recherchez la vérification de type ou les scripts de build dans package.json.
- Assurez-vous que tous les composants créés ont réellement été utilisés.
- Exécutez les scripts linter ou prettier trouvés dans package.json.
Fichiers de référence
references/EXAMPLE-next-app-router.md- code de projet exemple next-app-routerreferences/EXAMPLE-next-pages-router.md- code de projet exemple next-pages-routerreferences/EXAMPLE-react-react-router-6.md- code de projet exemple react-react-router-6references/EXAMPLE-react-react-router-7-framework.md- code de projet exemple react-react-router-7-frameworkreferences/EXAMPLE-react-react-router-7-data.md- code de projet exemple react-react-router-7-datareferences/EXAMPLE-react-react-router-7-declarative.md- code de projet exemple react-react-router-7-declarativereferences/EXAMPLE-nuxt-3-6.md- code de projet exemple nuxt-3-6references/EXAMPLE-nuxt-4.md- code de projet exemple nuxt-4references/EXAMPLE-vue-3.md- code de projet exemple vue-3references/EXAMPLE-react-tanstack-router-file-based.md- code de projet exemple react-tanstack-router-file-basedreferences/EXAMPLE-react-tanstack-router-code-based.md- code de projet exemple react-tanstack-router-code-basedreferences/EXAMPLE-tanstack-start.md- code de projet exemple tanstack-startreferences/EXAMPLE-sveltekit.md- code de projet exemple sveltekitreferences/EXAMPLE-astro-static.md- code de projet exemple astro-staticreferences/EXAMPLE-astro-view-transitions.md- code de projet exemple astro-view-transitionsreferences/EXAMPLE-astro-ssr.md- code de projet exemple astro-ssrreferences/EXAMPLE-astro-hybrid.md- code de projet exemple astro-hybridreferences/EXAMPLE-angular.md- code de projet exemple angularreferences/EXAMPLE-django.md- code de projet exemple djangoreferences/EXAMPLE-flask.md- code de projet exemple flaskreferences/EXAMPLE-fastapi.md- code de projet exemple fastapireferences/EXAMPLE-python.md- code de projet exemple pythonreferences/EXAMPLE-laravel.md- code de projet exemple laravelreferences/EXAMPLE-ruby-on-rails.md- code de projet exemple ruby-on-railsreferences/EXAMPLE-ruby.md- code de projet exemple rubyreferences/EXAMPLE-android.md- code de projet exemple androidreferences/EXAMPLE-swift.md- code de projet exemple swiftreferences/EXAMPLE-react-native.md- code de projet exemple react-nativereferences/EXAMPLE-expo.md- code de projet exemple exporeferences/next-js.md- Next.js - docsreferences/react-router-v6.md- React router v6 - docsreferences/react-router-v7-framework-mode.md- React router v7 mode framework (remix v3) - docsreferences/react-router-v7-data-mode.md- React router v7 mode données - docsreferences/react-router-v7-declarative-mode.md- React router v7 mode déclaratif - docsreferences/nuxt-js-3-6.md- Nuxt.js (v3.0 à v3.6) - docsreferences/nuxt-js.md- Nuxt.js - docsreferences/vue-js.md- Vue.js - docsreferences/tanstack-start.md- Tanstack start - docsreferences/svelte.md- Svelte - docsreferences/astro.md- Astro - docsreferences/angular.md- Angular - docsreferences/django.md- Django - docsreferences/flask.md- Flask - docsreferences/python.md- Python - docsreferences/posthog-python.md- PostHog python SDKreferences/laravel.md- Laravel - docsreferences/ruby-on-rails.md- Ruby on rails - docsreferences/ruby.md- Ruby - docsreferences/android.md- Android - docsreferences/ios.md- Ios - docsreferences/react-native.md- React native - docsreferences/identify-users.md- Identify users - docs
Chaque référence de framework contient des modèles spécifiques à l'SDK pour l'installation, l'initialisation et l'utilisation. Trouvez celui qui correspond à la pile de l'utilisateur.
Principes clés
- Variables d'environnement : Utilisez toujours les variables d'environnement pour les clés PostHog. Ne les codez jamais en dur.
- Changements minimaux : Ajoutez le code PostHog aux côtés des intégrations existantes. Ne remplacez ou restructurez pas le code existant.
- Correspondre aux docs : Suivez exactement les modèles d'initialisation et de capture de la référence du framework.