Accueil
Expertises Toutes les expertises Server-side GTM & dataLayer Analytics Conversion API Data Warehouse
Cas clients Tous les cas clients E-commerce SaaS Apps mobiles Lead generation
Ressources Toutes les ressources Google Tag Manager Mobile App Tracking RGPD & Consent Mode Google Analytics (GA4) Server-side tracking
Outils gratuits Tous les outils Diagnostic server-side
À propos Prendre RDV
GOOGLE TAG MANAGER

Comment tracker un formulaire Brevo avec Google Tag Manager

Tracker un formulaire Brevo avec GTM : script MutationObserver sur #success-message, dataLayer generate_lead, Element Visibility et pièges iframe.

· 9 min de lecture
Dans ce guide
  1. 1. Quel type de formulaire Brevo avez-vous ?
  2. 2. Le script qui déclenche la conversion (embed HTML)
  3. 3. Brancher GTM
  4. 4. Alternative sans script : Element Visibility
  5. 5. Iframe, DOI, webhooks
  6. 6. Recette

Brevo (ex-Sendinblue) est partout sur les sites FR — et rarement tracké proprement. Le point critique : Brevo ne pousse pas d’event natif type wpcf7mailsent ou hs-form-event. Sur un embed HTML (#sib-form), la soumission est en AJAX via sibforms.com, puis le panneau #success-message s’affiche. C’est ce moment qu’il faut transformer en dataLayer.push.

Méthode générale : tracker un formulaire avec GTM.

1. Quel type de formulaire Brevo avez-vous ?

  • Embed HTML (recommandé pour le tracking) : formulaire id="sib-form" + script main.js — vous contrôlez la page.

  • Iframe : GTM parent ne voit pas le submit (same-origin). Préférez l’embed HTML, une thank-you sur votre domaine, ou un webhook.

  • Landing Brevo hébergée : redirect thank-you ou webhook.

2. Le script qui déclenche la conversion (embed HTML)

Placez ce script après le HTML du formulaire Brevo (ou en Custom HTML GTM sur les pages qui portent le form), une seule fois :

code
<script>
(function () {
  var success = document.getElementById('success-message');
  var form = document.getElementById('sib-form');
  if (!success) return;

  var fired = false;

  function pushLead() {
    if (fired) return;
    // Le panneau succès Brevo reçoit la classe --active après un envoi OK
    var active = success.classList.contains('sib-form-message-panel--active');
    var visible = success.offsetParent !== null || success.getClientRects().length > 0;
    if (!active && !visible) return;

    fired = true;
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'generate_lead',
      form_name: 'brevo',
      form_id: (form && (form.getAttribute('data-form-id') || form.id)) || 'sib-form',
      lead_type: 'newsletter',
      form_tool: 'brevo'
    });
  }

  // 1) MutationObserver : réagit dès que Brevo active #success-message
  var obs = new MutationObserver(pushLead);
  obs.observe(success, { attributes: true, attributeFilter: ['class', 'style'] });

  // 2) Filet de sécurité si la classe est déjà présente (retour arrière, cache)
  pushLead();
})();
</script>

Pourquoi ce script et pas le trigger Form Submission GTM ? Parce que Brevo fait preventDefault + AJAX : le submit natif ne remonte souvent pas jusqu’à GTM comme une vraie navigation.

3. Brancher GTM

  1. Trigger Custom Event : nom d’event generate_lead (filtre optionnel form_tool equals brevo).

  2. Tag GA4 Event generate_lead (+ params form_name, form_id).

  3. Tag Google Ads Conversion lead / Meta Pixel Lead, sous Consent Mode.

4. Alternative sans script : Element Visibility

Si vous ne pouvez pas poser de JS custom, créez un trigger GTM Element Visibility :

  • Méthode : CSS Selector

  • Selector : #success-message.sib-form-message-panel--active (ou .sib-form-message-panel--active)

  • Once per page

  • Minimum percent visible : 1–50 %

Puis un tag qui pousse le même event, ou directement vos tags GA4/Ads. Moins propre que le script (pas de form_id structuré), mais ça marche sur l’embed HTML.

5. Iframe, DOI, webhooks

  • Iframe : pas d’accès au DOM — passez en embed HTML, thank-you URL sur votre domaine, ou webhook Brevo → Measurement Protocol / CAPI.

  • Double opt-in : décidez si la conversion media part à l’inscription ou à la confirmation email ; ne mélangez pas les deux.

  • Webhook : pour du tracking serveur anti-adblock une fois le client créé dans Brevo.

6. Recette

  1. Inscription test sur l’embed HTML.

  2. En GTM Preview : 1 seul generate_lead au moment où le message de succès apparaît.

  3. Pas de rejeu au refresh.

  4. Refus CMP pubs : tags Ads/Meta ne partent pas.

  5. Contact bien créé dans Brevo.

Besoin d’un plan de taggage Brevo + Ads/Meta ?

Une implémentation plus complexe à discuter ?

Discuter de votre tracking
Christophe Dubois
Christophe Dubois

Consultant tracking & data, freelance senior depuis 2012. Architecture de mesure, server-side, attribution.

Remonter en haut

Un projet similaire à cadrer ? Parlons-en.

Consultant web tracking
POUR ALLER PLUS LOIN

Articles liés

RGPD - Consent Mode

Consent Mode v2 sur WooCommerce : CMP, GTM et conversions

Consent Mode v2 sur WooCommerce : CMP, GTM Consent Initialization, tags GA4/Ads, et comment éviter de tuer vos conversions.

16 Sep. 2026 ·9 min
Audit Tracking

Auditer le tracking PrestaShop : conversions, funnels et ROAS faussés

Audit tracking PrestaShop : plugins vs GTM, écarts commandes/GA4/Ads, Consent Mode, funnels et plan de correction ROAS.

16 Sep. 2026 ·10 min
Audit Tracking

Auditer le tracking Shopify : pourquoi vos achats remontent mal

Audit tracking Shopify : écarts achats vs GA4/Ads/Meta, pixels doublons, checkout, Consent Mode et plan de correction actionnable.

16 Sep. 2026 ·10 min
Paid Acquisition

TikTok Pixel & Events API : implémentation avec GTM (web + server-side)

Installer TikTok Pixel et Events API via GTM : events ecom/lead, event_id pour dédup, server-side et checklist de debug TikTok.

16 Sep. 2026 ·11 min
Google Tag Manager

Installer Google Tag Manager sur WooCommerce (guide complet)

Installer GTM sur WooCommerce : dataLayer e-commerce, events GA4, Consent Mode, pièges plugins et checklist pour des achats fiables.

16 Sep. 2026 ·12 min
Google Tag Manager

Comment tracker un formulaire avec GTM (méthode universelle)

Méthode universelle pour tracker un formulaire avec GTM : dataLayer, submit vs thank-you, GA4, Ads, Meta, déduplication et checklist de recette.

16 Sep. 2026 ·11 min
Audit Tracking

Audit des conversions dupliquées Google Ads × Meta : comment les détecter et les corriger

Vos conversions Google Ads et Meta sont-elles comptées deux fois ? Méthode d’audit : pixel + CAPI, Conversion Linker, GTM, et corrections concrètes.

16 Sep. 2026 ·9 min
Google Tag Manager

Comment tracker un formulaire Pardot ?

Apprenez à tracker un formulaire Pardot avec Google Tag Manager et GA4. Méthode fiable pour formulaires iframe et Form Handlers Salesforce Account Engagement.

25 Mar. 2026 ·12 min
Google Tag Manager

Architecture complète tracking SaaS (web + mobile + offline) : le tutoriel ultime (2025)

Le but de ce guide est de te donner l’architecture complète , utilisée par les meilleurs SaaS (Notion, Stripe, Figma, Monday, HubSpot)

12 Nov. 2025 ·21 min
Google Tag Manager

Glossaire Server-Side GTM 2025

Le Server-Side Tagging (SST) avec Google Tag Manager est devenu un pilier du tracking moderne : réduction des pertes de données, meilleures performances

21 Nov. 2025 ·12 min
Google Tag Manager

Comment détecter les faux positifs dans Google Tag Manager (GTM)

Les faux positifs sont l’une des causes les plus fréquentes de données erronées dans Google Tag Manager.

11 Nov. 2025 ·20 min
Google Tag Manager

Comment tracker un funnel via ClickFunnel ?

Améliorez le suivi des conversions dans votre funnel ClickFunnels en utilisant Google Tag Manager (GTM) et des scripts personnalisés pour capturer des…

20 Jan. 2025 ·3 min
SERVICES ASSOCIÉS

Pour aller plus loin sur votre projet

EXPERTISE ASSOCIÉE

Conversion API

Conversion API

Restaurez la qualité de vos conversions Meta et Google malgré le blocage navigateur et la perte de signal iOS / consentement.

Voir l'expertise
FAQ

Questions fréquemment posées

Où placer le script Brevo → dataLayer ?

Juste après le HTML du formulaire embed (#sib-form), ou en balise Custom HTML GTM déclenchée sur les pages qui portent le formulaire. Une seule instance pour éviter les doubles hits.

Pourquoi ne pas utiliser le trigger Form Submission GTM ?

Parce que l’embed Brevo soumet en AJAX (preventDefault + appel sibforms.com). Le submit navigateur classique n’arrive souvent jamais jusqu’au trigger natif GTM. Il faut observer #success-message ou utiliser Element Visibility.

Quel sélecteur pour Element Visibility ?

#success-message.sib-form-message-panel--active ou .sib-form-message-panel--active, once per page. C’est le panneau de succès que Brevo active après un envoi OK.

Ça marche en iframe ?

Non côté parent (same-origin). Passez en embed HTML, configurez une thank-you sur votre domaine, ou utilisez un webhook Brevo côté serveur.

Comment éviter le double comptage ?

Le flag fired dans le script empêche un second push. Ne cumulez pas script + Element Visibility + thank-you sur le même parcours sans filtre.

Prendre rendez-vous