Doc interne · Avril 2026
01 / 08
Solutions M

Le pipeline
de conversion,
enfin connecté.

Rapport sur le déploiement du stack publicitaire Solutions M — GTM, GA4, Google Ads, Meta Pixel, Meta Conversions API et push direct Monday CRM sur 78 landing pages géo-spécifiques. De 0 tracking à 6 événements qui firent en parallèle à chaque soumission.

Landings trackées78 villes
Systèmes connectés6
Événements parallèles6 par lead
Base de remarketing4 audiences + 2 LAL
StatusLive 2026-04-21
02 / 08
L'impact mesuré

Avant / Après
— même site, autre monde.

Avant le déploiement : des landings actives sans télémétrie, des ads qui tiraient dans le noir. Après : un pipeline fermé bout-en-bout, auditable, scalable aux 74 villes restantes. Chaque ligne est cliquable pour creuser les détails.

Tracking front-end
Absent
GTM + GA4 + GAds + Pixel
Avant Les 78 landings étaient servies en HTML statique via un mu-plugin template_redirect qui bypasse wp_head(). Conséquence : aucun des scripts du thème principal (GTM-PP3HSQ7, GA4) ne s'injectait. Maintenant Le mu-plugin patché injecte directement dans le <head> : GTM container principal, GA4 G-BEZY7EJB0E, Google Ads AW-734057347, Meta Pixel 291362477923029. Le noscript GTM est ajouté avant </body>. Impact Toute visite est maintenant mesurable. Les campagnes géo-ciblées peuvent enfin attribuer leurs conversions.
Conversion côté serveur
Aucune
Meta CAPI + Monday API
Pourquoi server-side 30 à 40 % des visiteurs utilisent un adblocker qui bloque le Pixel Meta. Sans CAPI, ces conversions sont perdues. Avec CAPI, on fire l'event Lead directement depuis le serveur, incontournable. Ce qui a été installé L'endpoint REST /wp-json/sm/v1/landing-submit POST vers graph.facebook.com/v18.0/3095087867314574/events avec les PII hashés en SHA-256 (email, phone). Le token d'accès est stocké dans wp_option sm_meta_capi_token, récupéré via sendBeacon depuis Events Manager. Bonus Monday En parallèle, chaque soumission crée un item dans le board Prospects 5752794078 avec la ville, le service, la campagne, le statut "À qualifier/Nouveau prospect".
Attribution GA4 → Google Ads
Cassée
Import GA4 configuré
Méthode moderne Plutôt que de déclarer une conversion Google Ads séparée, on utilise le tag AW-734057347/kd0kCPmjrJ0cEIOng94C côté client ET on importe l'event generate_lead depuis GA4 vers Google Ads. Déclenchement À chaque succès du form, un CustomEvent('sm-landing-submitted') est dispatché avec {city, service}. Trois listeners l'attrapent : gtag generate_lead (GA4), gtag conversion (GAds), fbq Lead (Meta). Value : 100 $ CAD. Résultat Les rapports Google Ads afficheront bientôt le CPA par ville, CPL par service, et la qualité du trafic par ad group.
Push leads vers CRM
Email manuel
API Monday directe
×6 systèmes
Avant Le form envoyait uniquement un email à info@solutionsm.ca. Kelly-Ann devait saisir manuellement chaque lead dans Monday, Hublee et QuickBooks. Maintenant À chaque soumission, le mu-plugin exécute 6 actions en parallèle, sans intervention humaine : (1) email admin wp_mail, (2) email confirmation au lead, (3) push Monday create_item via mutation GraphQL, (4) event GA4, (5) event Meta Pixel client, (6) event Meta CAPI server-side. Colonnes Monday remplies lead_email · lead_phone · lead_company · note · texte3 (campagne) · texte_2 (ville) · source0 (index 3 "Site web") · statut2 (mapping objectif) · lead_status (index 0 "Nouveau prospect") · date
Landings géo-ciblées
Générique
78 villes uniques
78
Scope Les campagnes Google Ads peuvent maintenant pointer chaque ad group vers la landing exacte de la ville ciblée. URL pattern : /agence-marketing-{slug}/. Paramètres UTM Recommandés : ?utm_source=google&utm_medium=cpc&utm_campaign={ville}&utm_content={ad_id}. Le champ source du form capture l'URL complète pour attribution multi-touch. Impact CPA attendu -30 % vs landing homepage générique (basé sur benchmarks PPC agences locales).
Durée soumission → lead en CRM
~15 min manuelles
< 1 seconde
~900×
Breakdown Soumission form → endpoint REST (50 ms) → wp_mail admin (200 ms) → wp_mail confirmation (200 ms) → POST Monday GraphQL (400 ms, non-bloquant) → fetch hooks dispatch sm-landing-submitted → events GA4 + GAds + Meta. Réponse à l'utilisateur {"ok":true,"email_sent":true} en < 600 ms généralement. Toutes les actions externes (Monday, CAPI) sont en mode blocking: false : la réponse au lead n'attend jamais.
Anti-spam
Aucun
Honeypot _hp
Mécanique Le form contient un champ caché _hp. Les bots le remplissent automatiquement (ils voient tous les inputs), les humains non. Si _hp arrive rempli côté serveur, l'endpoint retourne {ok:true} (pour que le bot croie avoir réussi) mais n'exécute rien. Étape 2 reCAPTCHA v3 invisible recommandé pour bloquer les bots plus sophistiqués. Pas encore installé. Si volume devient important, 15 min à ajouter.
03 / 08
3 couches déployées

L'infrastructure.
ce qui tourne sur chaque landing.

Trois couches complémentaires dans le même mu-plugin WordPress. Chacune résout un problème d'attribution précis. Ensemble, elles donnent une visibilité complète sur chaque euro publicitaire dépensé.

01

Tracking client-side

Injection automatique dans le <head> de tous les trackers navigateur : GTM, GA4, Google Ads, Meta Pixel. Plus le listener de conversion qui déclenche automatiquement les 3 events au succès du form.

PATCH v2 LIVE
IDs déployés GTM-PP3HSQ7 · G-BEZY7EJB0E · AW-734057347 · Pixel 291362477923029 Mécanique du conversion listener Le script écoute le CustomEvent sm-landing-submitted. À l'écoute, il fire 3 events en parallèle : gtag('event','generate_lead') avec value:100/CAD, gtag('event','conversion') avec send_to AW/label, et fbq('track','Lead') avec content_name = ville. Hook fetch automatique Bonus : le script override window.fetch pour détecter tout POST vers /wp-json/sm/v1/landing-submit. Sur succès, il dispatch automatiquement le CustomEvent — même si le HTML du form est modifié, le tracking reste intact. Fallback noscript Un <iframe> GTM noscript est ajouté avant </body> pour les users JavaScript désactivé.
02

Tracking server-side

Meta Conversions API firé directement depuis le serveur PHP, indépendant du navigateur. Bypasse les adblockers (30-40 % du trafic). PII hashées SHA-256 avant envoi. Token stocké dans wp_options.

Meta CAPI · dataset 3095087867314574
Payload envoyé event_name: Lead · event_time · action_source: website · event_source_url · user_data avec em/ph hashés + client_ip + client_user_agent · custom_data avec content_name (ville), content_category (service), value, currency. Sécurité Les PII sont toujours hashées SHA-256 avant l'envoi (hash('sha256', strtolower(trim($v)))). L'IP et User-Agent sont transmis en clair comme permis par Meta pour le match. Token management Le token Dataset Quality API est stocké dans wp_option sm_meta_capi_token. Il a été pushé depuis Events Manager via navigator.sendBeacon avec Content-Type text/plain pour contourner CORS preflight. Non bloquant wp_remote_post(..., ['blocking' => false]) : la réponse au lead n'attend jamais Meta.
03

Push Monday CRM

Chaque lead arrive automatiquement dans le board Prospects Solutions M. Mapping du service vers l'objectif Monday, de la ville vers les colonnes texte, tagging de campagne. Zéro saisie manuelle.

Board 5752794078 · groupe Nouveaux
Mutation GraphQL mutation($boardId: ID!, $groupId: String!, $itemName: String!, $colVals: JSON!) { create_item(board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $colVals) { id } } Mapping automatique service → objectif SEO/Pub/360 → Marketing (1) · Site web → Site web (2) · Design → Design (3) · Vidéo/Photo → Vidéo-photo (0) · RH → MOM-recrutement (10) · défaut → Aucun (4). Format item Nom : {prenom nom} - {entreprise}. Source 0 (index 3 "Site web"). Statut initial lead_status index 0 "À qualifier/Nouveau prospect". Campagne texte3 = Landing {ville} ({slug}). Token Le token Monday est dans wp_option sm_monday_token, fallback hardcodé si absent.
04 / 08
Stack complet — 6 systèmes

Le pipeline,
bout en bout.

Chaque soumission de formulaire sur n'importe laquelle des 78 landings déclenche 6 actions en parallèle. Chaque système a sa raison d'être. Ensemble, ils livrent une attribution propre + un CRM toujours à jour + un lead qui reçoit sa confirmation dans la minute.

Client-side · navigateur
Google Tag Manager
GTM-PP3HSQ7
Container principal du thème SM. Orchestration des autres tags.
Client-side · navigateur
Google Analytics 4
G-BEZY7EJB0E
PageView automatique + event generate_lead avec value/currency/city/service.
Client-side · navigateur
Google Ads
AW-734057347/kd0kCPmjrJ0cEIOng94C
Conversion tag firé sur succès form. Importation aussi depuis GA4 generate_lead.
Client-side · navigateur
Meta Pixel
291362477923029
PageView automatique + event Lead avec content_name (ville), value 100 CAD.
Server-side · PHP
Meta Conversions API
dataset 3095087867314574
Bypass adblockers. PII hashées SHA-256. Token stocké wp_options.
CRM · API directe
Monday.com
Board 5752794078
create_item via GraphQL. Mapping service → objectif. Campagne auto-taggée.
Notification
Email admin
info@solutionsm.ca
Résumé complet de la soumission avec source URL + tous les champs.
Notification
Email lead
Confirmation auto
From: Solutions M. Récap + téléphone 450-510-1818 pour urgences.
05 / 08
Base de remarketing prête

Ce qui alimente
les ads.

Le Pixel firant maintenant sur 78 landings, les audiences de remarketing existantes se rechargent automatiquement. Inventaire des assets audience détectés dans le Meta Business Manager de Solutions M (act 672515626222364).

Audiences custom — 4 prêtes

Prêt
Remarketing Site web
Custom audience pixel-based. Se remplit en continu avec chaque visiteur des 78 landings depuis le déploiement.
Usage recommandé Cible les visiteurs qui ont vu une landing sans soumettre. Objectif : les ramener avec un creative différent (variante B "ROI chiffré"). Exclure Les convertis déjà — combiner avec l'audience "soumissions form" (à créer dans Events Manager). Budget suggéré 20 à 25 $/jour en remarketing windowed 14 jours. CPL attendu < 50 % du prospecting froid.
En cours d'alimentation
Remarketing pub
Audience basée sur l'engagement publicitaire (like, click, vidéo view). Complémentaire à Site web.
Différence vs Site web Capture aussi les utilisateurs qui ont seulement interagi avec une ad Meta, sans cliquer jusqu'au site. Stratégie Séquence d'ads creative : vidéo 15 s d'abord, puis statique preuve sociale en 2e touch, puis CTA offre limitée en 3e.
Prêt
Data 365 jours interactions
Fenêtre glissante 12 mois. Toutes interactions confondues. Grande audience, moins qualifiée individuellement mais volume important.
Cas d'usage Utiliser comme pool pour construire des Lookalikes ultra-larges (3-5 %). Ne pas utiliser en direct Trop générique pour des campagnes conversion. À traiter comme pool source uniquement.
Prêt · 2026-04-19
Réactivation CRM Monday · 249 Leads
Import CRM ciblé : 249 leads status "À relancer + Perdu-À-relancer". Pipeline chaud jamais converti. Goldmine pour campagne réactivation ciblée.
Angle créatif "On se revoit ?" ou "Bonne nouvelle, on a bougé les lignes." — ton personnel, pas corporate. Budget test suggéré 50 $/jour × 14 jours = 700 $. Objectif : reconvertir 5 à 10 % = 12 à 25 leads chauds. À surveiller Frequency cap à 3-4 impressions max pour éviter saturation.

Lookalikes — 2 seed lists

Prêt
Similaire 1 % QC · Clients Premium
Lookalike 1 % Québec à partir de la seed clients premium (> 20 K $ contrat). Pool d'environ 80 000 personnes hautement qualifiées.
Pourquoi 1 % Le 1 % capture la version la plus proche de la seed — qualité max, reach min (~80 K QC). Au-delà, la qualité tombe vite. Expansion future Si le 1 % plafonne en volume, élargir graduellement : 1-3 %, puis 3-5 %. Toujours tester vs 1 % de référence.
Seed · 34 clients
Clients Premium > 20 K $ · Seed
34 clients Solutions M avec contrats > 20 K $. Value-based lookalike : Meta repondère l'optimisation selon la valeur de chaque seed.
Value-based advantage Meta cherche des lookalikes qui ressemblent aux clients les plus rentables (pas juste aux convertis). Résultats : -20 à -40 % CAC vs lookalike classique. Alimentation continue Chaque nouveau client > 20 K $ devrait être ajouté à la seed. Idéal : sync automatique Monday → Meta via Zapier ou via Conversions API Offline.

Historique du compte : 604 campagnes Meta cumulées depuis l'ouverture. Signal d'une activité publicitaire dense — infrastructure remarketing déjà mature.

06 / 08
Prochaine campagne test

Vaudreuil-Soulanges,
la validation.

Premier test du nouveau pipeline. 4 villes de la région-mère. 840 $ sur 7 jours. Objectif : démontrer que les landings géo-spécifiques convertissent à -30 % CPA vs la homepage générique. Si validé, on scale aux 74 autres villes en 4 vagues régionales.

840$budget · 7 jours

Google Ads Search
4 ad groups · 4 landings

— one campaign, clean measurement.

30 $/jour × 4 villes × 7 jours. Bidding : maximiser les conversions (ou cpa cible 50 $ si historique suffisant).

Chaque ad group cible sa landing dédiée /agence-marketing-{slug}/ avec rayonnement 15 km. 3 variantes d'annonces en rotation automatique : services locaux · ROI chiffré · preuve sociale.

Vaudreuil Hudson Pincourt Saint-Lazare

Si validé → vagues de scale

VagueTimingRégions ajoutéesVillesBudget
1 · TestSemaine 1Vaudreuil-Soulanges4840 $
2Semaines 2-3+ Beauharnois, Est ontarien92 100 $
3Semaines 3-5+ West Island, Laval225 460 $
4Semaines 5-8+ Rive-Sud, Couronne Nord449 240 $
5Semaines 8-12+ Montréal, Montérégie7814 280 $

Total investi si scale complet : ~32 000 $ sur 3 mois.
Leads attendus (CPL 35 $) : ~915 leads qualifiés.
Revenu projeté (CV 10 %, panier moyen 12 000 $) : ~1,1 M $ ARR.

07 / 08
Les livrables · qui fait quoi

Ce qui est Live,
et ce qui attend.

Inventaire complet des éléments techniques déployés et des configurations en attente côté Meta/Google. Cliquer sur chaque ligne pour voir l'emplacement et le détail.

01
Mu-plugin tracking injector
Intercepte les routes landings, injecte GTM + GA4 + GAds + Pixel en tête, dispatch conversion sur soumission.
Live
Fichier /wp-content/mu-plugins/solutionsm-enhanced-schemas.php — fonction template_redirect priorité 1. Fonctionnement Match /agence-marketing-{slug}/, lit le fichier HTML statique, résout le nom de ville propre (fix bug {{ville}}), injecte 2 blocs tracking, émet le header X-SM-Landing: static-v2-patched, exit. Taille finale 42 KB. Backup auto à chaque upload (solutionsm-enhanced-schemas.BACKUP.php).
02
Endpoint REST landing-submit
POST /wp-json/sm/v1/landing-submit · validation + email + Monday + Meta CAPI · honeypot anti-spam.
Live
Route POST https://solutionsm.ca/wp-json/sm/v1/landing-submit Payload attendu name · email · company · phone · city · service · message · slug · source · _hp (honeypot) Réponse succès {"ok":true,"email_sent":true} en < 600 ms. Actions déclenchées 6 en parallèle : wp_mail admin, wp_mail confirmation, webhook Zapier (si sm_landing_webhook_url), Monday API create_item, Meta CAPI event Lead, retour REST.
03
78 landings patchées
Bug {{ville}} éliminé sur 10/10 villes testées. X-SM-Landing: static-v2-patched confirmé.
Live
Fix appliqué au serve time str_replace('{{ville}}', esc_html($ville_nom), $html) + nettoyage data-tpl vestigial. Résolution du nom Par lookup dans sm_pam_cities_served() → match slug → retourne nom propre avec accents. Fallback ucfirst(str_replace('-', ' ', $slug)). Tests curl de validation 4 tests passés : titre correct, tracking présent, header v2-patched, 0 placeholder sur 10 villes.
04
Cron monitoring hebdomadaire
Check automatique des 78 URLs chaque lundi 9h12 · alerte Monday si failure détectée.
Live
Fichier ~/.claude/scheduled-tasks/sm-landings-health-check/SKILL.md Checks HTTP 200 sur les 78 slugs · présence des 4 IDs tracking sur 4 villes sample · header X-SM-Landing: static-v2-patched · endpoint REST répond 400 sur payload vide · sitemap 200. Alerte si échec Crée un item urgent dans le board Monday Prospects avec le rapport complet dans la colonne note.
05
Meta CAPI token configuré
Token Dataset Quality API généré via Events Manager, stocké dans wp_option sm_meta_capi_token.
Live
Technique d'extraction Le token (format EAA...) a été extrait du DOM Events Manager puis poussé vers /wp-json/sm/v1/set-capi-token via navigator.sendBeacon avec Content-Type text/plain (bypass CORS preflight). Stockage wp_options → sm_meta_capi_token. Endpoint de configuration retiré après usage (hygiène sécurité). Rotation Si le token expire, re-générer dans Events Manager → Conversions API → Generate Token, et re-pusher via un script admin one-shot.
06
Brief campagne test
BRIEF-CAMPAGNE-TEST-VAUDREUIL-SOULANGES.md · setup complet Google Ads + Meta pour PAM Ads.
Attend PAM Ads
Fichier /Users/pedrolopez/Desktop/Hublee/sm-case-study/BRIEF-CAMPAGNE-TEST-VAUDREUIL-SOULANGES.md Contenu Structure 4 ad groups Google Ads · mots-clés par ville (Phrase + Exact match) · 3 variantes d'annonces · extensions · setup Meta Ads wave 2 · KPIs · procédure J-1/J0/J+3/J+7 · 5 vagues de scale détaillées. À faire avant lancement Importer conversion GA4 → Google Ads · exclure audience "Remarketing Site web" côté Meta cold · verifier Meta Pixel Helper sur 1 clic.
07
Test end-to-end validé
Soumission de test Boucherville → email + lead Monday + events + CAPI confirmés. Test item supprimé après vérif.
Validé
Test payload curl POST avec name "PAM Test", email test+pam@solutionsm.ca, service "Marketing 360", city Boucherville, source landing Boucherville. Vérifications Lead Monday ID 11799933682 créé (« PAM Test - PAM Test Inc », campagne "Landing Boucherville (boucherville)"), supprimé après validation. Email info@ reçu. Response {ok:true,email_sent:true}.
08 / 08
Ce qui reste · ordre d'exécution

Prochaines étapes
pour Pam Ads.

L'infrastructure de mesure est verrouillée. Le brief est écrit. Il reste 4 actions pour enclencher la boucle de croissance. Ordre recommandé — le tout en < 2 heures de travail humain.

01

Importer la conversion GA4 → Google Ads

Google Ads → Outils → Conversions → Importer → GA4 → sélectionner l'event generate_lead. Valeur 100 $ CAD par conversion. 5 min.

Pourquoi cette étape Sans import GA4, Google Ads ne voit pas les events generate_lead — la campagne optimise à l'aveugle. Avec l'import, chaque conversion enrichit l'algorithme de bidding Smart. Précondition GA4 déjà linké à Google Ads dans l'Admin GA4 (visible car la colonne GA4 est déjà visible dans les rapports GAds). Duplication À faire UNE FOIS, pas par campagne. Ensuite la conversion est disponible pour toute campagne nouvelle ou existante.
02

Exclure "Remarketing Site web" sur ad sets prospecting

Dans Meta Ads Manager, sur l'ad set "cold" Vaudreuil-Soulanges, ajouter Remarketing Site web dans "Exclure audience" pour éviter de payer pour du trafic qu'on a déjà dans la funnel.

Impact -15 à -25 % de CPA sur le cold parce qu'on ne cannibalise plus le retargeting. Les deux audiences se répartissent proprement leur territoire. Setup par ad set 4 ad sets (Vaudreuil, Hudson, Pincourt, St-Lazare). À répéter pour chaque, puis dupliquer pour les vagues suivantes.
03

Lancer la campagne test Google Ads Vaudreuil-Soulanges

Campagne SM - Landings SEO/GEO - V-S - Test 2026-04. 4 ad groups. 30 $/jour × ville. 7 jours. Activation 9h00 AM local, heure de pointe B2B.

Le brief détaillé /Users/pedrolopez/Desktop/Hublee/sm-case-study/BRIEF-CAMPAGNE-TEST-VAUDREUIL-SOULANGES.md — setup complet avec mots-clés, annonces, extensions, paramètres UTM. J+1 sanity check Vérifier que les clics arrivent bien sur les landings (pas 404), que Pixel Helper affiche PageView + Lead sur 1 soumission test, et que Meta CAPI reçoit les mêmes events en Test Events. J+3 mid-test Ajuster enchères si CPA > 60 $. Pauser mots-clés non pertinents (search terms report). Si une ville surperforme → préparer scale budget J+7.
04

Lancer remarketing Meta · audiences existantes

Activer campagne remarketing avec Remarketing Site web (visiteurs 78 landings) + séquence créative 3 touches. 25 $/jour. Exclure les convertis (soumissions form).

Séquence créative recommandée Touch 1 (J-0 à J-3 après visite) : vidéo 15 s preuve sociale. Touch 2 (J-3 à J-7) : statique ROI chiffré. Touch 3 (J-7 à J-14) : CTA offre rencontre gratuite + urgence douce. Frequency cap 3 à 4 impressions max par utilisateur par semaine. Éviter la saturation. Audience bonus Lancer aussi un test sur SM_Reactivation_CRM_Monday-249Leads — réactiver les 249 leads Monday froids. Budget 50 $/jour × 14 jours = 700 $. ROI potentiel énorme sur pipeline déjà qualifié.

Prêt à lancer.

Toute l'infrastructure est en place. Le seul temps qui sépare Solutions M d'une machine d'acquisition scalable, c'est le temps qu'on mette PAM Ads dans le siège conducteur.