Premiers pas avec Track
Commencez à analyser votre site en 2 minutes. 100 % anonyme, 0 % cookies.
Installation rapide
Copiez ce code juste avant </head> :
<script src="https://votre-domaine.com/api/script/tk_VOTRE_ID"></script>
C'est tout ! Vos heatmaps et analytics commencent immédiatement.
Webhooks
Automatisez vos flux de travail avec des données 100 % agrégées (aucune donnée personnelle envoyée).
Configuration
- Allez dans Site → Webhooks
- Entrez votre URL webhook (Zapier, Make.com, ou custom)
- Choisissez vos événements : Anomalies, Rapports quotidiens, Insights
- Sélectionnez le mode de confidentialité (Agrégé recommandé)
- Testez avec le bouton "Tester"
Événements disponibles
1. Anomalies détectées
Recevez une notification lors de pics d'erreurs, chutes de trafic, etc.
{
"event": "anomaly_detected",
"timestamp": "2026-02-10T14:30:00Z",
"anomaly": {
"type": "js_error_spike",
"severity": "critical",
"deviation_percent": 598.4
}
}
2. Rapport quotidien
Statistiques du jour précédent (sessions, clics, frustration).
3. Insights critiques
Alertes sur les pages problématiques détectées par l'IA.
Modes de confidentialité
Agrégé
Uniquement stats globales (recommandé)
Page-level
Stats par page (pas de session)
Full
Toutes données (à utiliser prudemment)
Validation signature HMAC
Tous les webhooks incluent un header X-Webhook-Signature. Validez-le pour garantir l'authenticité :
// PHP
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'];
$payload = file_get_contents('php://input');
$secret = 'votre_webhook_secret';
$expected = hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $signature)) {
die('Invalid signature');
}
Zapier, Make.com, n8n, Slack, Discord, Microsoft Teams, custom endpoints.
Google Analytics 4
Importez vos sources de trafic GA4 pour les corréler avec Track (import seulement, jamais d'export).
Configuration en 3 étapes
Créer un service account Google
- Allez sur Google Cloud Console
- Créez un projet (ou utilisez un existant)
- Activez l'API Google Analytics Data API v1
- Créez un compte de service (IAM → Comptes de service)
- Téléchargez la clé JSON
Donner accès au service account dans GA4
- Ouvrez Google Analytics 4
- Admin → Accès à la propriété
- Ajoutez l'email du service account avec le rôle Lecteur
Configurer dans L'Analyste
- Allez dans Site → Google Analytics 4
- Entrez votre Measurement ID (format G-XXXXXXXXXX)
- Entrez votre Property ID (ID numérique)
- Collez le contenu JSON du service account
- Testez la connexion
Synchronisation automatique
L'Analyste synchronise automatiquement vos sources de trafic tous les jours à 7h.
Vous pouvez aussi déclencher une synchronisation manuelle :
- Depuis l'interface : bouton "Synchroniser maintenant"
- En ligne de commande :
php artisan ga:sync-sources
Données importées
Dimensions
- • Source (google, facebook, direct...)
- • Medium (organic, cpc, referral...)
- • Campaign (nom de campagne)
Métriques
- • Sessions & Utilisateurs
- • Pages vues
- • Bounce rate & Durée
Aucune donnée de L'Analyste n'est exportée vers GA. Import GA → L'Analyste uniquement (lecture seule).
Sources de trafic
Corrélez vos sources de trafic GA4 avec le comportement utilisateur capté par Track.
Vue d'ensemble
Le dashboard Traffic Sources combine le meilleur des deux mondes :
Données GA4
- • Sources et medium
- • Sessions, utilisateurs
- • Bounce rate
- • Pages vues
Métriques de L'Analyste
- • Taux de rage clicks
- • Taux de dead clicks
- • Taux d'erreurs JS
- • Score de frustration
Métriques disponibles
Google Analytics 4
- • Sessions par source/medium
- • Nombre d'utilisateurs
- • Pages vues
- • Bounce rate (%)
- • Durée moyenne de session
L'Analyste (moyennes globales)
- • Taux de rage clicks (%) - frustration élevée
- • Taux de dead clicks (%) - UX problématique
- • Taux d'erreurs JS (%) - bugs bloquants
Les métriques de L'Analyste sont des moyennes globales, pas de corrélation session-à-session. Votre confidentialité reste intacte.
Utilisation
- Configurez d'abord GA4 (voir section précédente)
- Attendez la première synchronisation (ou lancez manuellement)
- Allez dans Site → Traffic Sources
- Analysez quelle source génère le plus de frustration
Cas d'usage
Optimiser les campagnes
Identifiez les sources avec fort bounce + frustration
Landing pages
Comparez l'expérience par source d'acquisition
Budget marketing
Priorisez les sources avec meilleure UX
Source "google/cpc" a 45% bounce mais seulement 2% rage clicks → Landing OK, contenu à revoir.
Source "facebook/cpc" a 25% bounce mais 18% rage clicks → Landing problématique à corriger en priorité.
Confidentialité et sécurité
Track est 100 % anonyme par conception. Aucun cookie, aucun consentement requis.
Anonymisation complète
Hachage des IP
SHA-256 + sel quotidien. Impossible de retrouver l'IP d'origine.
Rotation de session
Nouvelle session toutes les 30 min. Aucun pistage longue durée.
Réduction du User-Agent
User-Agent réduit à « OS Navigateur Version » (18 caractères au lieu de 785).
Validation des données personnelles
Bloque automatiquement courriels, téléphones et cartes bancaires.
Conformité RGPD & Loi 25
L'Analyste respecte les réglementations les plus strictes :
RGPD (Europe)
- Aucune donnée personnelle collectée
- Aucun cookie de tracking
- Pas de consentement requis (Article 6.1.f)
- Droit à l'oubli automatique (30 jours)
- Stockage UE possible (self-hosted)
Loi 25 (Québec)
- Conforme aux exigences septembre 2024
- Minimisation des données
- Transparence totale (code open source possible)
- Pas de transfert hors Québec (self-hosted)
Sécurité technique
HTTPS obligatoire
Toutes les communications utilisent TLS 1.3+ avec certificats valides.
Authentication HMAC
Le script dynamique utilise des tokens HMAC SHA-256 avec TTL 1h :
Token = base64(siteId | timestamp | hmac_sha256(siteId|timestamp, secret))
TTL = 3600 secondes
Origin validation = Referer + Origin headers
Rate Limiting
Protection contre les abus :
- API Tracking : 100 requêtes/min par site
- API Behavior : 60 requêtes/min par site
- Session Replay : 60 requêtes/min par session
Data Retention
Toutes les données sont automatiquement supprimées après 30 jours :
- Heatmap events
- Behavior events (rage/dead clicks, erreurs)
- Form analytics
- Session replays (fichiers + metadata)
- Custom events
Commande : php artisan events:cleanup (schedulée daily 1h)
Self-Hosting
L'Analyste peut être hébergé sur vos propres serveurs pour contrôle total :
- Laravel 11 (PHP 8.2+)
- MySQL/PostgreSQL
- Redis (optionnel pour cache)
- Code source disponible
Audit de sécurité
Le code de L'Analyste est auditable. Contactez-nous pour un audit de sécurité complet ou une installation on-premise.
Cartes de chaleur
Visualisez où vos visiteurs cliquent, scrollent et passent leur temps.
Types de heatmaps
Carte des clics
Zones les plus cliquées en rouge/jaune/vert.
Carte de défilement
Profondeur de défilement par bandes de 10 %.
Carte de survol
Temps passé sur chaque zone.
Visualisation
Les heatmaps s'affichent par-dessus une capture d'écran de votre page. Les couleurs indiquent l'intensité :
- Rouge : Zones très actives (80-100%)
- Orange : Zones actives (60-80%)
- Jaune : Zones moyennes (40-60%)
- Vert : Zones peu actives (20-40%)
- Bleu : Zones très peu actives (0-20%)
Utilisation
- Allez dans Sites et cliquez sur un site
- Cliquez sur Heatmaps dans la navigation
- Sélectionnez une page dans la liste
- Choisissez le type de heatmap (Click/Scroll/Hover)
- Ajustez la période (7/14/30 jours)
Cas d'usage
- Optimiser les CTA : Vérifiez que vos boutons sont bien cliqués
- Détecter les zones mortes : Éléments cliquables ignorés
- Améliorer le layout : Placez le contenu important là où les gens regardent
- Mobile vs Desktop : Comparez le comportement par device
Combinez les heatmaps avec les Insights pour identifier automatiquement les zones problématiques.
Rejeu de session
Rejouez les sessions de vos visiteurs comme une vidéo. 100 % anonyme.
Configuration
Pour activer Session Replay :
- Allez dans Sites → Éditer
- Onglet Replay
- Activez Session Replay
- Réglez le taux d'échantillonnage (1-100%)
- Durée max par session : 60-3600 secondes
- Rétention : 1-90 jours
Fonctionnalités
Lecteur intégré
Vitesse 1x/2x/4x, pause, avance rapide.
Marqueurs de frustration
Rage clics et erreurs affichés sur la chronologie.
Infos appareil
Système d'exploitation, navigateur, résolution.
Compression
Gzip automatique après finalisation.
Anonymisation
Les replays sont 100% anonymes :
- Tous les inputs sont masqués (***)
- Emails, téléphones automatiquement cachés
- IP hashées (impossible de retrouver)
- Session ID rotationnelle (30min max)
- Aucun cookie de tracking
Le script replay (~15KB) se charge via requestIdleCallback pour ne pas bloquer la page.
Taux d'échantillonnage
Recommandations :
- 10-20% : Sites à fort trafic (10K+ sessions/jour)
- 50% : Sites moyens (1-10K sessions/jour)
- 100% : Sites à faible trafic ou debugging
Nettoyage automatique
La commande replay:cleanup s'exécute quotidiennement (4h) pour :
- Finaliser les replays "stale" (>30min)
- Supprimer les replays expirés (selon rétention)
- Nettoyer les dossiers vides
Détection des frustrations
Repérez automatiquement les rage clicks, dead clicks et erreurs JavaScript qui frustrent vos visiteurs.
Types de comportements détectés
Rage Clicks
Détection : 3+ clics sur le même élément en moins de 1 seconde
Signification : Élément non réactif, utilisateur frustré
Score : ×3 au calcul de frustration
Dead Clicks
Détection : Clic sans changement DOM après 1 seconde
Signification : Élément semble cliquable mais ne l'est pas
Score : ×2 au calcul de frustration
JavaScript Errors
Détection : Erreurs JS capturées (max 10/session)
Signification : Bugs bloquants pour l'utilisateur
Score : ×1 au calcul de frustration
Score de frustration
Chaque session reçoit un score calculé ainsi :
Score = (rage_clicks × 3) + (dead_clicks × 2) + (js_errors × 1)
Interprétation :
- 0-5 : Session normale
- 6-15 : Frustration modérée
- 16+ : Frustration élevée
Dashboard Comportements
Accédez aux comportements via Site → Comportements.
Vous pouvez :
- Filtrer par type (rage/dead/error)
- Trier par score de frustration
- Voir la timeline d'une session
- Lancer le replay directement
Session Timeline
Cliquez sur une session pour voir la timeline complète avec :
- Timestamp de chaque événement
- Type d'événement (click/error/page change)
- Sélecteur CSS de l'élément
- Coordonnées x/y du clic
- Message d'erreur JS complet
Les sessions avec frustration élevée remontent automatiquement dans les Insights avec recommandations.
Analyses intelligentes
Analyses automatiques avec recommandations concrètes pour améliorer votre site.
Health Score
Chaque site reçoit un score de santé global (0-100) calculé à partir de :
- Taux de rage clicks
- Taux de dead clicks
- Taux d'erreurs JS
- Profondeur de scroll moyenne
- Temps moyen par session
Interprétation :
- 90-100 : Excellent
- 70-89 : Bon
- 50-69 : À améliorer
- 0-49 : Critique
Types d'insights
Frustrating Page
Page avec score frustration > seuil configuré (défaut: 15). Recommande de vérifier les éléments problématiques.
Recurring Dead Click
Élément cliqué > seuil (défaut: 10) sans être cliquable. Recommande d'ajouter un event listener ou un curseur pointer.
Hot Zone No Link
Zone très cliquée sans lien/bouton. Recommande d'ajouter une action ou de retirer l'élément.
Frequent JS Error
Erreur JS récurrente > seuil (défaut: 5). Recommande de corriger le bug avec stack trace fourni.
Configuration
Pour configurer les insights :
- Allez dans Sites → Éditer
- Onglet Analyse
- Activez Smart Insights
- Réglez la fréquence (quotidienne/hebdomadaire)
- Ajustez les 3 seuils de détection
Actions disponibles
Pour chaque insight, vous pouvez :
- Résoudre : Marque comme corrigé (historisé)
- Ignorer : Ne plus afficher cet insight
- Snooze 7j : Reporter de 7 jours
Snapshots mensuels
L'Analyste crée automatiquement des snapshots mensuels avec :
- Health score du mois
- Évolution vs mois précédent (delta)
- Top 5 pages frustrantes
- Statistiques globales (sessions, clics, erreurs)
Commandes disponibles :
php artisan insights:generate: Génère insights immédiatementphp artisan insights:cleanup: Supprime insights résolus >90j
Les insights critiques déclenchent automatiquement un email + webhook si configurés.
Tunnels de conversion
Analysez vos tunnels de conversion et identifiez les points de friction.
Créer un funnel
- Allez dans Site → Funnels
- Cliquez sur Créer un funnel
- Donnez un nom (ex: "Parcours d'achat")
- Ajoutez 2 à 10 étapes avec les URLs
- Cliquez sur Créer
Exemple de funnel
Métriques calculées
Pour chaque étape, L'Analyste calcule :
- Taux de conversion global : % utilisateurs qui terminent
- Drop-off par étape : % d'abandons entre chaque étape
- Sessions uniques : Nombre de sessions passées par l'étape
- Temps moyen : Durée entre chaque étape
Regex et wildcards
Les URLs supportent les patterns :
/products/.*: Tous les produits/blog/.*/comments: Pages de commentaires/checkout/step-[1-3]: Étapes 1 à 3
Cas d'usage
- E-commerce : Accueil → Produit → Panier → Paiement → Confirmation
- SaaS : Landing → Signup → Onboarding → Activation
- Blog : Accueil → Article → Inscription newsletter
- Formulaires : Étape 1 → Étape 2 → Étape 3 → Merci
Combinez les funnels avec les heatmaps des pages à fort drop-off pour identifier précisément les problèmes.
Analyse des formulaires
Analysez chaque champ de formulaire pour optimiser vos taux de conversion.
Détection automatique
L'Analyste détecte automatiquement tous vos formulaires. Aucune configuration requise !
Événements trackés
Focus
Utilisateur clique dans le champ
Change
Utilisateur modifie la valeur
Blur
Utilisateur quitte le champ
Submit
Formulaire soumis avec succès
Abandon
Utilisateur quitte sans soumettre
Métriques par formulaire
- Taux de complétion : % soumissions vs. interactions
- Taux d'abandon : % abandons après focus
- Temps moyen : Durée focus → submit
- Champ problématique : Le plus abandonné
Métriques par champ
- Taux de remplissage : % champs remplis
- Temps passé : Durée focus → blur
- Refontes : Nombre de modifications
- Taux de correction : % users qui reviennent dessus
Anonymisation
L'Analyste respecte votre confidentialité :
- Aucune valeur n'est stockée
- Seulement metadata : field_name, field_type, interaction_type
- Durées agrégées
- Pas de keystroke logging
Exemple d'utilisation
Problème détecté : Le champ "Téléphone" a un taux d'abandon de 68%.
Action : Rendre le champ optionnel ou clarifier le format attendu.
Résultat : Taux de complétion passe de 32% à 78%.
Cas d'usage
- Inscription : Identifiez les champs trop complexes
- Checkout : Réduisez la friction au paiement
- Contact : Simplifiez les formulaires de contact
- Survey : Optimisez les questionnaires longs
Alertes
Recevez des notifications en temps réel quand des seuils que vous fixez sont dépassés.
Créer une alerte
- Allez dans Site → Alertes
- Cliquez sur Créer une alerte
- Choisissez la métrique à surveiller
- Définissez la condition (supérieur/inférieur)
- Seuil numérique
- Fenêtre de temps (5-60 minutes)
- Canal de notification (email/webhook)
Métriques disponibles
Error Rate
% de sessions avec erreurs JS
Rage Clicks
Nombre de rage clicks par fenêtre
Dead Clicks
Nombre de dead clicks par fenêtre
Low Scroll
% sessions avec scroll < 25%
Form Abandon
Taux d'abandon de formulaires
Conditions et fenêtres
Vous pouvez définir :
- Condition : "supérieur à" ou "inférieur à"
- Seuil : Valeur numérique (ex: 10 pour 10 rage clicks)
- Fenêtre : Période d'évaluation (5/15/30/60 minutes)
Exemple d'alertes
Cooldown
Pour éviter le spam, chaque alerte a un cooldown de 60 minutes. Une fois déclenchée, elle ne se redéclenchera pas avant 1h même si la condition reste vraie.
Canaux de notification
- Email : Envoyé au propriétaire du site
- Webhook : Envoyé à l'URL configurée (Zapier, Slack, etc.)
Commande de vérification
La commande alerts:check s'exécute toutes les 5 minutes pour évaluer toutes les alertes actives.
Combinez les alertes avec les webhooks pour automatiser des actions (ex: créer un ticket Jira quand error_rate > 10%).
Événements personnalisés
Suivez vos propres événements métier avec l'API JavaScript de Track.
API JavaScript
Après avoir installé le script de L'Analyste, utilisez window._ht_track() :
// Événement simple
window._ht_track('purchase_completed');
// Événement avec données
window._ht_track('add_to_cart', {
product_id: 'SKU-12345',
price: 49.99,
currency: 'CAD',
quantity: 2
});
// Événement d'erreur personnalisé
window._ht_track('api_error', {
endpoint: '/api/products',
status: 500,
message: 'Internal Server Error'
});
Données stockées
Pour chaque custom event, L'Analyste stocke :
- event_name : Nom de l'événement
- event_data : Objet JSON avec vos données
- session_id : Session anonyme
- path : URL où l'événement s'est produit
- timestamp : Date/heure précise
Exemples d'utilisation
E-commerce
// Ajout au panier
window._ht_track('add_to_cart', { product: 'T-shirt XL', price: 29.99 });
// Achat
window._ht_track('purchase', { amount: 127.50, items: 3 });
// Abandon panier
window._ht_track('cart_abandoned', { cart_value: 89.99 });
SaaS
// Feature utilisée
window._ht_track('feature_used', { feature: 'export_pdf' });
// Upgrade plan
window._ht_track('plan_upgraded', { from: 'free', to: 'pro' });
// Onboarding complété
window._ht_track('onboarding_completed', { steps: 5, duration: 240 });
Médias
// Vidéo vue
window._ht_track('video_watched', { video_id: 'intro', percent: 87 });
// Article lu
window._ht_track('article_read', { article_id: 123, reading_time: 180 });
// Newsletter inscrit
window._ht_track('newsletter_signup', { source: 'footer' });
Dashboard Custom Events
Accédez aux custom events via Site → Custom Events.
Le dashboard affiche :
- Top 10 événements par volume
- Timeline des derniers événements
- Filtres par event_name et période
- Données JSON complètes pour chaque event
Anonymisation
L'Analyste valide automatiquement event_data et bloque tout PII :
- Emails détectés et rejetés
- Numéros de téléphone rejetés
- Numéros de carte bancaire rejetés
- Vos données métiers anonymes passent
N'envoyez JAMAIS de données personnelles (noms, emails, IPs) via les custom events. Utilisez uniquement des IDs anonymes.
Limites
- Rate limit : 100 événements/minute par site
- Taille max event_data : 10KB
- Rétention : 30 jours (comme tous les événements)
Référence API
Documentation complète de l'API REST Track.
Authentification
Les points d'accès publics utilisent HMAC SHA-256 avec votre signing_secret.
// Format du jeton
Token = base64(siteId|timestamp|hmac_sha256)
// En-têtes requis
X-Site-Id: tk_xxxxx
X-Track-Token: {token_base64}
Origin: https://yourdomain.com
Points d'accès disponibles
POST /api/track
Envoie un événement de carte de chaleur (clic / survol).
{
"site_id": "tk_xxxxx",
"event_type": "click",
"x": 450,
"y": 320,
"path": "/products/shoes",
"selector": "button.add-to-cart",
"viewport_width": 1920,
"viewport_height": 1080,
"device_type": "desktop"
}
POST /api/behavior
Envoie un événement de comportement (rage / dead / erreur).
{
"site_id": "tk_xxxxx",
"session_id": "sess_abc123",
"type": "rage_click",
"path": "/checkout",
"selector": "button#submit-order",
"x": 600,
"y": 400,
"metadata": {
"clicks_count": 5,
"duration_ms": 800
}
}
POST /api/replay-events
Envoie des événements rrweb pour le rejeu de session.
{
"site_id": "tk_xxxxx",
"session_id": "sess_abc123",
"events": [
{ "type": 2, "data": {...}, "timestamp": 1707580800000 },
{ "type": 3, "data": {...}, "timestamp": 1707580801000 }
]
}
POST /api/scroll
Envoie la profondeur de défilement maximale atteinte.
{
"site_id": "tk_xxxxx",
"session_id": "sess_abc123",
"path": "/blog/article-123",
"max_scroll_percent": 87,
"viewport_height": 1080,
"page_height": 4500
}
POST /api/form-events
Envoie des interactions avec les formulaires.
{
"site_id": "tk_xxxxx",
"session_id": "sess_abc123",
"path": "/contact",
"form_selector": "form#contact-form",
"field_name": "email",
"field_type": "email",
"interaction_type": "blur",
"time_spent_ms": 3200
}
POST /api/custom-events
Envoie des événements personnalisés.
{
"site_id": "tk_xxxxx",
"session_id": "sess_abc123",
"path": "/checkout",
"event_name": "purchase_completed",
"event_data": {
"amount": 127.50,
"currency": "CAD",
"items": 3
}
}
Limites de débit
| Point d'accès | Limite | Par |
|---|---|---|
| /api/track | 100 req/min | site_id |
| /api/behavior | 60 req/min | site_id |
| /api/replay-events | 60 req/min | session_id |
| /api/custom-events | 100 req/min | site_id |
| /api/script/* | 30 req/min | IP |
Codes de statut
- 200 OK : Événement enregistré avec succès
- 400 Bad Request : Données invalides ou information personnelle détectée
- 401 Unauthorized : Jeton HMAC invalide ou expiré
- 403 Forbidden : Origine non autorisée
- 429 Too Many Requests : Limite de débit dépassée
- 500 Internal Server Error : Erreur serveur
Exemple complet (cURL)
curl -X POST https://lanalyste.app/api/track \
-H "Content-Type: application/json" \
-H "X-Site-Id: tk_xxxxx" \
-H "X-Track-Token: base64_token_here" \
-H "Origin: https://yourdomain.com" \
-d '{
"site_id": "tk_xxxxx",
"event_type": "click",
"x": 450,
"y": 320,
"path": "/",
"selector": "button.cta"
}'
Utilisez le script JavaScript Track plutôt que l'API REST directement. Il gère automatiquement l'authentification, le regroupement et les nouvelles tentatives.
Questions fréquentes
L'Analyste est-il vraiment 100% anonyme ?
Oui ! L'Analyste :
- Hash les IPs avec SHA-256 + salt quotidien
- Rotate les sessions toutes les 30min
- Tronque les user agents
- Valide et bloque automatiquement tout PII
- Aucun cookie de tracking
Vous pouvez utiliser L'Analyste sans consentement en RGPD/Loi 25.
Les webhooks envoient-ils des données personnelles ?
Non, jamais. Les webhooks de L'Analyste envoient uniquement des données agrégées :
- Aucun IP
- Aucun session ID
- Aucun identifiant utilisateur
- Uniquement des statistiques globales
C'est ce qui rend L'Analyste unique : intégrations + anonymisation totale.
Exportez-vous des données de L'Analyste vers Google Analytics ?
Non, jamais. L'intégration GA4 est import uniquement (GA → L'Analyste).
Nous importons vos sources de trafic de GA4 pour enrichir vos analyses dans L'Analyste, mais aucune donnée de L'Analyste n'est envoyée vers Google.
Combien coûte L'Analyste ?
30$ CAD par site par mois, avec :
- Sessions illimitées
- Sites illimités
- Webhooks inclus
- Intégration GA4 incluse
- 30 jours d'essai gratuit
L'Analyste ralentit-il mon site ?
Non. Le script de L'Analyste :
- Pèse seulement ~15KB (gzippé)
- Se charge de manière asynchrone
- N'bloque jamais le rendu de la page
- Utilise requestIdleCallback quand disponible
Puis-je utiliser L'Analyste avec Zapier ?
Oui ! Utilisez les webhooks de L'Analyste avec Zapier :
- Dans Zapier, créez un trigger "Webhooks - Catch Hook"
- Copiez l'URL fournie
- Collez-la dans L'Analyste → Site → Webhooks
- Testez avec le bouton "Tester"
- Connectez à 5000+ apps Zapier
Installation du script de suivi
Guide détaillé pour installer Track sur votre site web.
Formats de domaine acceptés
Formats valides
example.comwww.monsite.frapp.monservice.iosubdomain.example.co.uk
Formats invalides
https://example.com(avec protocole)http://www.monsite.fr(avec protocole)example.com/page(avec chemin)example.com:8080(avec port)
Installation selon votre plateforme
HTML / Sites statiques
Ajoutez le code juste avant la balise </body> :
<script src="https://votre-domaine.com/api/script/tk_xxxxx"></script>
</body>
React / Next.js
React (Create React App) : Ajoutez dans public/index.html avant </body>
Next.js : Ajoutez dans pages/_document.js ou app/layout.tsx
Vue.js / Nuxt
Vue.js : Ajoutez dans public/index.html
Nuxt 3 : Créez app.vue ou ajoutez dans nuxt.config.ts
WordPress
Méthode 1 : Thème Ajoutez dans footer.php avant </body>
Méthode 2 : Plugin Utilisez "Insert Headers and Footers" puis collez le code dans "Scripts in Footer"
Shopify
- Allez dans Boutique en ligne → Thèmes → Actions → Modifier le code
- Ouvrez
theme.liquid - Cherchez
</body> - Collez le code juste avant
Webflow
- Ouvrez les Paramètres du projet
- Allez dans Custom Code
- Collez le code dans Footer Code
- Publiez votre site
Captures d'écran automatiques
Comment Track capture et gère les captures d'écran de vos pages.
Génération automatique
L'Analyste génère automatiquement des screenshots de vos pages pour afficher les heatmaps. Voici comment ça fonctionne :
Déclenchement
Un screenshot est généré automatiquement après le premier clic détecté sur une nouvelle page.
Délai
La capture peut prendre 30-60 secondes selon la complexité de votre page.
Mise à jour
Les screenshots sont conservés 30 jours, puis régénérés automatiquement.
Génération manuelle
Si vous avez modifié le design de votre site, vous pouvez forcer une régénération :
php artisan screenshot:capture --website-id=1 --path="/" --device=desktop
Astuce
Générez des screenshots pour chaque type d'appareil (mobile, tablet, desktop) pour voir les différences de comportement.
Bandeau de consentement
Collectez le consentement de vos visiteurs de manière conforme à la Loi 25 (Québec) avant d'activer le suivi.
Conformité Loi 25
Le module de consentement est conforme à la Loi 25 (Québec) et à la LPRPDE (Canada). Chaque choix est enregistré avec horodatage et adresse IP, à titre de preuve légale.
Comment ça fonctionne
Le bandeau se charge avant le suivi et bloque tous les scripts d'analyse jusqu'au choix du visiteur :
- Le visiteur arrive — le script de consentement se charge en premier.
- Le bandeau s'affiche — avec les options que vous avez configurées.
- Le visiteur choisit — tout accepter, tout refuser, ou personnaliser par catégorie.
- Le choix est enregistré — dans le localStorage, et journalisé avec IP et horodatage.
- Le suivi démarre, si consenti — les scripts d'analyse ne se lancent qu'en cas d'acceptation.
1. Activer le bandeau
- Ouvrez votre site dans le tableau de bord.
- Cliquez sur Consentement.
- Cochez Activer le bandeau de consentement.
- Configurez l'apparence et les textes.
- Cliquez sur Enregistrer.
2. Personnaliser l'apparence
Onglet Apparence
- Position : haut ou bas de page
- Thème : clair, sombre ou personnalisé
- Couleurs : primaire, fond, texte
- Style : boutons arrondis ou carrés
- Logo : téléversement optionnel (2 Mo maximum)
Onglet Textes
- Titre : en français et en anglais
- Description : 500 caractères maximum
- Boutons : textes personnalisables
- Bilingue : détection automatique FR/EN
Un aperçu en direct est disponible pendant la configuration.
3. Configurer les catégories
Essentiels
Toujours activéCookies nécessaires au fonctionnement (session, authentification). Ils ne peuvent pas être désactivés.
Analyse
RecommandéCartes de chaleur, rejeu de session, détection des frustrations. Si le visiteur refuse, le suivi de L'Analyste ne démarre pas.
Marketing
OptionnelPour vos propres scripts marketing (Meta Pixel, Google Ads, etc.). L'Analyste ne contrôle pas ces scripts : utilisez window.hasConsent('marketing') dans votre code pour vérifier le choix du visiteur.
4. Changer le script — étape obligatoire
Le chemin du script n'est pas le même
Activer le bandeau dans le tableau de bord ne suffit pas : tant que vos pages chargent l'ancien script, le suivi démarre sans demander le consentement. Vous devez remplacer /api/script/ par /api/consent/ dans votre balise.
À retirer
<script src="https://lanalyste.app/api/script/tk_xxxxx"></script>
À mettre en place
<script src="https://lanalyste.app/api/consent/tk_xxxxx"></script>
- Gardez le même identifiant
tk_xxxxx— seul le chemin change. - Le nouveau script gère le consentement automatiquement.
- Si le bandeau est désactivé, son comportement est identique à celui de l'ancien script.
5. Consulter les statistiques
Le bouton Statistiques de la page de configuration donne accès au taux d'acceptation sur les 30 derniers jours, réparti entre « tout accepté », « tout refusé » et « personnalisé », ainsi qu'au détail par catégorie. Les journaux sont exportables en CSV pour un audit.
Vérifier le consentement depuis vos scripts
// Vérifier si le visiteur a consenti au marketing
if (window.hasConsent && window.hasConsent('marketing')) {
// Charger vos scripts marketing ici
}
// Réagir dès que le choix est connu
window.addEventListener('consentReady', function (event) {
const consent = event.detail;
// { essential: true, analytics: true, marketing: false }
});
Questions fréquentes
Que se passe-t-il si je désactive le bandeau ?
Le suivi démarre directement, sans demander le consentement. Utile si vous le gérez déjà autrement.
Combien de temps le consentement est-il conservé ?
Le choix reste dans le localStorage du navigateur sans limite de durée. Le journal avec IP et horodatage est conservé à titre de preuve légale (Loi 25).
Puis-je forcer un nouveau consentement ?
Oui. Demandez au visiteur de vider son localStorage, ou changez l'identifiant du site pour invalider les choix précédents.
Est-ce compatible avec une autre plateforme de consentement ?
Deux bandeaux simultanés sont à éviter. Si vous utilisez déjà une plateforme dédiée, désactivez le bandeau de L'Analyste et déclenchez son script depuis votre outil.
Facturation
Un seul tarif, sans palier : 30 $ CAD par site actif et par mois.
Comment ça marche
- Créez autant de sites que vous voulez — il n'y a aucune limite.
- Vous ne payez que les sites actifs — 30 $ CAD par mois et par site.
- L'abonnement s'ajuste seul — activer ou désactiver un site met le montant à jour.
- 30 jours d'essai gratuit — pour tout nouveau compte.
Exemples
- 1 site actif = 30 $ CAD par mois
- 5 sites actifs = 150 $ CAD par mois
- 10 sites actifs = 300 $ CAD par mois
Votre moyen de paiement
Votre carte est enregistrée à la création de votre premier site, au cours de l'accompagnement initial. Aucun montant n'est débité pendant les 30 jours d'essai. À l'issue de l'essai, la facturation démarre automatiquement selon le nombre de sites actifs.
Gérer votre abonnement
Depuis la page Facturation, vous pouvez mettre à jour votre carte, consulter et télécharger vos factures, ou résilier. Tout passe par le portail sécurisé de Stripe : nous ne conservons jamais votre numéro de carte.
Prorata automatique
Si vous ajoutez ou retirez un site en cours de mois, Stripe calcule le prorata. Vous ne payez que la période réellement utilisée.