Section 01

Le Pixel en profondeur

Comment le pixel fonctionne techniquement, pour diagnostiquer quand ça merde.

Ce qui se passe quand quelqu'un visite le site

Le parcours technique d'un visiteur 1. Le navigateur charge la page 2. Le code base du pixel s'exécute 3. Le pixel envoie une requête à Meta : "Utilisateur avec cookie _fbp=xyz a visité cette page" 4. Meta reçoit et matche avec ses données : "Cookie xyz = Marie, 34 ans, a cliqué sur la pub #4521" 5. Meta enregistre : PageView ✅ Si Marie remplit le formulaire : 6. Le code event "Lead" s'exécute 7. Le pixel envoie une 2ème requête 8. Meta enregistre : Lead ✅ 9. L'algo apprend : "Ce profil convertit → chercher des similaires"

Les deux couches du pixel

Le pixel c'est pas un seul bout de code. C'est deux couches indépendantes.

Couche 1 — Code base
  • Sur TOUTES les pages du site
  • Dans le <head> du HTML
  • Déclenche automatiquement PageView
  • Permet le retargeting de tous les visiteurs
  • Nourrit l'algo en data de navigation
Couche 2 — Events
  • Sur des actions SPÉCIFIQUES (formulaire)
  • Déclenché par une action du visiteur
  • C'est CE signal que l'algo utilise pour optimiser
  • Sans ça, l'algo sait pas qui convertit
  • Chaque event est un appel supplémentaire
Le code technique COUCHE 1 : fbq('init', 'TON_PIXEL_ID'); fbq('track', 'PageView'); → Se charge automatiquement à chaque visite COUCHE 2 : fbq('track', 'Lead'); → Se déclenche uniquement quand le formulaire est soumis
⚠️ Le piège classique
Tu installes le pixel base. PageView marche. Tu lances les pubs. Meta optimise pour les gens qui visitent des pages, pas pour ceux qui remplissent le formulaire. Tu reçois du trafic, pas des leads. En fait c'est ton event Lead qui est pas configuré.

Les cookies — comment le pixel identifie les visiteurs

Les cookies c'est des petits fichiers texte déposés dans le navigateur. C'est invisible. Le pop-up de consentement demande la permission de déposer ces cookies — c'est deux choses différentes.

CookieRôleCréé quandDurée
_fbpIdentifie le navigateur (comme un numéro de série)Première visite sur le site90 jours
_fbcRelie le clic pub à la visite site (contient le fbclid)Clic sur une pub Meta uniquement90 jours
Comment _fbc crée l'attribution Marie clique sur ta pub → Meta ajoute ?fbclid=abc123 à l'URL → Le pixel lit le fbclid et crée le cookie _fbc 3 jours plus tard Marie revient directement → Le pixel lit _fbc → "la personne de la pub abc123" → Marie remplit le formulaire → Lead attribué correctement ✅ ⚠ Si la redirection perd le fbclid dans l'URL → _fbc jamais créé → attribution cassée

Où déclencher l'event Lead

❌ Mauvais déclenchement
  • Au chargement de /merci → faux positifs (URL directe)
  • Au clic sur "Envoyer" → se déclenche même si erreur validation
  • Via Event Setup Tool → fragile, casse si le bouton change
✓ Bon déclenchement
  • Sur le callback de succès du formulaire
  • Quand la soumission est CONFIRMÉE côté code
  • C'est ce que ton webhook N8N fait déjà

Vérifier que le pixel fonctionne

1
Meta Pixel Helper (extension Chrome)
Visite le site → icône verte si pixel fire. Tu vois PageView et les paramètres.
2
Test Events (Events Manager)
Events Manager → pixel → Test Events → soumets formulaire test → "Lead" doit apparaître en temps réel.
3
Vérification d'attribution
Ouvre une pub en preview → clique → remplis formulaire → vérifie que le Lead est attribué à ta pub.
Section 02

Les Events en profondeur

Standard vs custom, hiérarchie de valeur, et priorité iOS 14+.
Règle absolue
Utilise TOUJOURS un event standard quand il existe. L'event standard "Lead" puise dans une base de données de 3 milliards de profils. Un event custom "formulaire_estimation" part de zéro.

Les events qui te concernent

EventQuandCe que Meta apprendPriorité
PageViewChaque page (automatique)Qui visite, quelles pagesBase
ViewContentPage estimation/biens vendusS'intéresse activementOptionnel
LeadFormulaire soumisCE profil convertitPrincipal
ContactClic appeler/WhatsAppVeut un contact directSecondaire
SchedulePrise de RDVTrès qualifiéFutur

La hiérarchie de valeur

Plus l'event est profond, plus le profil est qualifié FAIBLE ───────────────────────────── HAUTE VALEUR PageView → ViewContent → Lead → Contact → Schedule │ │ │ │ │ └ "J'existe" └ "Je └ "Je └ "Je veux └ "Je veux regarde" donne parler" un RDV" mes infos"

La priorité des events (iOS 14+)

Apple limite à un seul event par visite pour les utilisateurs qui refusent le tracking. Le facteur ne peut livrer qu'une lettre — tu veux que ce soit la plus importante.

L'analogie du facteur Marie (iPhone, tracking refusé) visite et remplit le formulaire. 3 events se déclenchent : PageView, ViewContent, Lead. Le facteur ne livre qu'UN SEUL. BIEN CONFIGURÉ : Priorité 1 : Lead ← le facteur livre ça Priorité 2 : Contact Priorité 3 : ViewContent Priorité 4 : PageView → Meta reçoit Lead ✅ MAL CONFIGURÉ : Priorité 1 : PageView ← le facteur livre ça → Meta reçoit PageView, le Lead est PERDU ❌

Configurer la priorité

1
Events Manager → ton pixel → Aggregated Event Measurement
Sélectionne thomas-astie-immo.fr → "Manage Events" → 8 slots empilés.
2
Slot 1 : Lead | Slot 2 : Contact | Slot 3 : Schedule | Slot 4 : ViewContent | Slot 5 : PageView
Réglage fait UNE FOIS par domaine. Lead en priorité max = même sur iOS refusé, la conversion remonte.

Les 3 méthodes de déclenchement

MéthodeAvantagesInconvénientsQuand
Code en durContrôle total, pas de dépendanceFaut toucher au codeSites que tu construis
Google Tag ManagerCentralisé, pas besoin de toucher au codeCouche technique en plusSites existants, 5+ clients
Event Setup ToolZéro codeFragile, casse si le site changeDernier recours
Section 03

Conversions API (CAPI)

Le deuxième canal côté serveur. Optimisation mois 2-3, pas prérequis au lancement.

Tout ce qui bloque le pixel navigateur

1. iOS 14+ → l'utilisateur refuse le tracking 2. Adblockers → le pixel fire PAS DU TOUT 3. Navigateurs anti-tracking → Brave, Firefox strict 4. Consent banner → l'utilisateur refuse les cookies 5. Connexion instable → la requête timeout 6. Erreur JavaScript → un autre script bloque le pixel Résultat : sur 100 conversions, le pixel en capte 60-70.

La solution : un deuxième canal

SANS CAPI : Marie remplit formulaire → navigateur envoie "Lead" → ❌ Bloqué → Meta reçoit rien AVEC CAPI : Marie remplit formulaire → Navigateur envoie "Lead" ❌ Bloqué → Ton serveur envoie "Lead" ✅ Passe toujours → Meta reçoit le Lead

Intégration avec N8N

Tu ajoutes UN nœud à ton workflow existant ACTUEL : [Webhook] → [Airtable] → [WhatsApp notif] AVEC CAPI : [Webhook] ├→ [Airtable: créer lead] ├→ [WhatsApp: notifier Thomas] └→ [HTTP Request: Meta CAPI] ← 1 nœud en plus

Le matching — données envoyées

Données envoyéesEvent Match QualityMatching
Juste l'eventScore 1-3Meta sait pas qui a converti
Email OU téléphoneScore 4-5Partiel
Email ET téléphoneScore 6-7Fiable
Email + tel + prénom + villeScore 7-8Très fiable

Toutes les données sont envoyées en hash SHA-256 (irréversible). Meta matche avec ses propres hashs. Pas de données personnelles identifiables transmises → RGPD OK.

La déduplication

Pixel + CAPI envoient tous les deux → risque de doublon AVEC event_id (obligatoire) : Pixel → Lead, event_id = "lead_thomas_abc123" CAPI → Lead, event_id = "lead_thomas_abc123" Meta → même ID → compte 1 seul ✅ SANS event_id : Pixel → Lead CAPI → Lead Meta → peut pas savoir → compte 2 ❌
⚠️ À retenir
CAPI c'est une optimisation mois 2-3. Le pixel seul suffit pour lancer. 90% des annonceurs n'ont que le pixel. Tu mets CAPI quand N8N est stable et que tu veux maximiser la data.
Section 05

UTM Parameters

Identifier la source exacte de chaque lead. Prouver ton impact au client.
Pourquoi c'est critique pour ton business
Sans UTMs, tu sais pas quels leads viennent de TES pubs. Tu peux pas calculer le vrai CPL, justifier tes fees, et Thomas peut dire "j'avais déjà ces leads". Tu peux pas prouver le contraire.

Les 5 paramètres

ParamètreRôleExemples
utm_sourceD'OÙmeta, google, panneau
utm_mediumQUEL CANALpaid, organic, offline
utm_campaignQUELLE CAMPAGNEestimation_saumur
utm_contentQUELLE CRÉAcrea_chateau_v2
utm_termMOT-CLÉ (Google Ads)agent immobilier saumur

Configuration Ads Manager

Paramètres dynamiques (se remplissent automatiquement) URL Parameters (au niveau de l'ad) : utm_source=meta &utm_medium=paid &utm_campaign={{campaign.name}} &utm_content={{ad.name}} &utm_placement={{placement}} → Configure une fois, marche pour toutes les ads

Convention de nommage

Si tes pubs sont nommées "Campaign 1" les UTMs servent à rien Campagne : [OBJECTIF]_[ZONE]_[AUDIENCE]_[BUDGET]_[DATE] → EST_Saumur_Broad_CBO_Fev2026 Ad Set : [AUDIENCE]_[CIBLAGE] → Broad_25-55_25km Ad : [ANGLE]_[FORMAT]_[HOOK]_[VERSION] → Chateau_FaceCam_Hook1_v2

Résultat dans Airtable

Chaque lead a sa source Lead 1 : Marie | Source: meta | Créa: chateau_v2 Lead 2 : Jean | Source: (vide) | → pas tes pubs Lead 3 : Sophie| Source: meta | Créa: traction_v1 Reporting : "15 leads. 9 de mes pubs (UTMs), 3 Google, 3 bouche-à-oreille. CPL Meta : 22€. 4 qualifiés. 2 mandats = 18 000€." → Irréfutable. C'est dans Airtable.

UTMs vs Attribution Meta

UTMs = vérité CLIENT
  • Leads arrivés DIRECTEMENT de tes pubs
  • Conservateur : sous-estime ton impact
  • Utilise pour reporting et facturation
Attribution Meta = vérité OPTIMISATION
  • Gens qui ont vu/cliqué tes pubs avant de convertir
  • Vision plus large (impact indirect)
  • Utilise pour optimiser tes campagnes
Mieux vaut sous-estimer
"9 leads confirmés de mes pubs. Probablement plus parce que certains voient la pub et te trouvent sur Google après. Mais je compte que les confirmés." → Thomas te fait confiance.
Section 06

Diagnostiquer les problèmes

Le framework en 5 étapes quand les chiffres correspondent pas à la réalité.

Framework de diagnostic

1
Vérifier la réalité
Thomas reçoit des leads mais Ads Manager non → tracking cassé. Personne reçoit rien → performance (créas/audiences). Écart <30% = normal. >50% = cassé.
2
Le pixel fire-t-il ?
Pixel Helper → icône verte + PageView ? Si non : code absent, consent buggé, adblocker, erreur JS.
3
L'event Lead se déclenche-t-il ?
Soumets formulaire → "Lead" apparaît ? Si non : code absent, mauvais moment, formulaire changé, callback cassé.
4
L'attribution fonctionne-t-elle ?
Domaine vérifié ? Priorité events OK ? fbclid conservé ? Fenêtre 7-day click, 1-day view ?
5
CAPI fonctionne ? (si configurée)
N8N actif ? Token valide (60 jours) ? Match Quality >6 ? Déduplication event_id OK ?

Diagnostic rapide

SymptômeDiagnosticSolution
Ads Manager = 0, Thomas a des leadsPixel absent ou casséRéinstaller + vérifier event
Clics OK mais 0 leadsEvent Lead se déclenche pasVérifier code formulaire
Ads Manager = moitié d'AirtableNormal (iOS + cookies)Mettre CAPI
Ads Manager PLUS qu'AirtableDéduplication casséeVérifier event_id
Leads sans sourceAttribution casséeDomaine + fbclid

Routine de vérification

Hebdo (2 min/client)
  • Airtable → compter les leads
  • Ads Manager → comparer
  • Écart <30% → OK
  • Écart >30% → diagnostic
Mensuelle (10 min/client)
  • Pixel Helper sur toutes les pages
  • Formulaire test → Lead OK ?
  • CAPI : exécutions N8N du mois
  • Aggregated Events → Lead en #1
⚠️ Après toute modification du site
Pixel Helper immédiatement + formulaire test + vérifier fbclid. JAMAIS mettre un site en ligne sans vérifier le tracking.
Section 07

Ordre d'implémentation

Le tracking se construit par couches. Pas tout d'un coup.
Principe
Le pixel seul suffit pour lancer. Le reste ce sont des optimisations. Attendre d'avoir tout en place = ne jamais lancer.
1
Semaine 1 — Le minimum vital
✅ Pixel base sur toutes les pages ✅ Event Lead sur le formulaire ✅ Priorité events (Lead #1) ✅ Domaine vérifié ✅ Pixel Helper + Test Events ✅ Bandeau optimisé ✅ Pubs lancées. Thomas rappelle manuellement. Coût : 0€.
2
Semaine 3-4 — Automatisation
✅ N8N : webhook → Airtable → WhatsApp ✅ UTMs dans Ads Manager ✅ Capture UTMs sur le site ✅ Champs UTM dans Airtable. Leads arrivent avec source identifiée. Coût : 0-20€/mois.
3
Mois 2-3 — CAPI
✅ Nœud HTTP Request Meta CAPI ✅ Hashage SHA-256 ✅ Déduplication event_id ✅ Match Quality >6. Meta récupère ~30% de conversions en plus. Coût : 0€.
4
Mois 3+ — Raffinement
✅ Events secondaires (Contact, ViewContent) ✅ UTMs multi-sources (QR, cartes) ✅ GTM si 5+ clients ✅ Routine vérification hebdo/mensuelle.
Le système complet COUCHE 1 : BANDEAU → 85% d'acceptation (vs 55%) COUCHE 2 : PIXEL → PageView + Lead sur les 85% COUCHE 3 : PRIORITÉ → Lead récupéré même sur iOS COUCHE 4 : CAPI → Conversions récupérées serveur COUCHE 5 : UTMs → Source exacte de chaque lead = ~95% des leads captés + source identifiée Sans optimisation : 40% captés, source inconnue
Checklist

Tracking & Mesure

Pixel
  • Deux couches : code base (PageView, toutes pages) + events (Lead, formulaire)
  • _fbp identifie le navigateur, _fbc relie clic pub → visite
  • Event Lead sur callback de succès, jamais au chargement de page
  • Pixel Helper + Test Events avant chaque lancement
Events
  • Toujours event standard quand il existe (Lead, Contact, Schedule)
  • Hiérarchie : PageView → ViewContent → Lead → Contact → Schedule
  • Priorité iOS : Lead en slot 1 (Aggregated Event Measurement)
  • Paramètres optionnels au lancement
CAPI
  • Optimisation mois 2-3, pas prérequis
  • 1 nœud N8N : HTTP Request vers API Meta
  • Email + tel + prénom hashés SHA-256 (Match Quality >6)
  • Déduplication event_id pixel ↔ CAPI obligatoire
Consentement
  • "Continuer" au lieu de "Accepter", pas de jargon juridique
  • Bandeau discret en bas, apparaît après 1-2 sec
  • Pixel ne charge PAS avant le consentement
  • Choix stocké 6 mois
UTMs
  • utm_source=meta + utm_medium=paid + {{campaign.name}} + {{ad.name}}
  • Convention de nommage claire = UTMs exploitables
  • Capturer côté site, injecter dans webhook
  • Lead avec UTM = toi. Sans UTM = pas toi.
Diagnostic
  • 5 étapes : réalité → pixel ? → event ? → attribution ? → CAPI ?
  • Écart <30% Airtable/Ads Manager = normal
  • Vérif hebdo (2 min) + mensuelle (10 min) + après chaque modif
  • Airtable = vérité client, Ads Manager = vérité optimisation
📡 Bloc 5 — Tracking & Mesure

Le tracking transforme des intuitions en données. Sans tracking, tu pilotes dans le noir. Avec un tracking propre, tu prouves ta valeur, tu optimises avec la data, et tu deviens irremplaçable. Le pixel seul suffit pour démarrer. Le reste s'ajoute couche par couche.

📋 Résumé intelligent

Résumé — Bloc 5 : Tracking & Mesure

Pixel
2 couches indépendantes : code base (PageView, toutes pages) + Events (Lead, sur formulaire). _fbp identifie le navigateur, _fbc relie clic pub → visite.
Events
Toujours standard (Lead, Contact, Schedule). Priorité iOS 14+ : Lead en slot #1 (Aggregated Event Measurement). 1 seul event par visite si tracking refusé.
CAPI
Optimisation mois 2-3, pas prérequis. 1 nœud N8N. Email + tel hashés SHA-256. Match Quality > 6. Déduplication event_id obligatoire.
Consentement
"Continuer" au lieu de "Accepter". Bandeau discret bas de page, après 1-2s. Pixel ne charge PAS avant consentement. Taux d'acceptation : 80-90%.
UTMs
utm_source=meta + utm_medium=paid + {{campaign.name}} + {{ad.name}}. Lead avec UTM = toi. Sans UTM = pas toi. Mieux vaut sous-estimer.
Système complet
Bandeau (85%) → Pixel (PageView + Lead) → Priorité iOS → CAPI (serveur) → UTMs (source) = ~95% des leads captés avec source identifiée.
← Retour au Hub