Le tracking des soumissions de formulaires Pardot est souvent plus pénible qu’avec d’autres outils marketing. La raison est simple : dans beaucoup de cas, le formulaire Pardot est embarqué dans une iframe, donc Google Tag Manager ne “voit” pas directement la soumission depuis la page principale. Si vous voulez remonter vos conversions dans GA4, Google Ads, Meta Ads ou votre dataLayer, il faut utiliser la bonne méthode.
Comment tracker un formulaire Pardot ?
Pardot est l’ancien nom de Marketing Cloud Account Engagement chez Salesforce. Les deux termes désignent bien le même produit. Pour le SEO comme pour la compréhension utilisateur, il est donc utile de mentionner les deux dans l’article.
Dans ce guide, on va voir la méthode la plus fiable pour tracker un formulaire Pardot avec Google Tag Manager et GA4, exactement comme on le ferait pour un formulaire HubSpot, mais avec une nuance technique importante : la méthode dépend du type de formulaire que vous utilisez. Salesforce distingue en effet les forms hébergés dans Account Engagement et les Form Handlers, qui permettent de connecter un formulaire tiers ou custom à Account Engagement.
Le tracking des formulaires Pardot ne fonctionne pas comme un formulaire HTML classique
Quand un formulaire Pardot est intégré dans une page via une iframe, le formulaire n’existe pas réellement dans le code source de la page parente. Résultat : le déclencheur natif Form Submission de GTM ne suffit généralement pas. C’est la source du problème dans la majorité des setups Pardot.
La bonne logique consiste donc à faire communiquer l’iframe Pardot avec la page principale grâce à postMessage. En clair : le formulaire envoie un message au parent au moment du succès, puis GTM écoute ce message et pousse un événement dans le dataLayer. C’est la méthode la plus propre quand vous utilisez un formulaire Pardot embarqué.
Quelle méthode utiliser aujourd’hui ?
Il faut être direct :
Cas 1 — Vous utilisez un formulaire Pardot embarqué en iframe
Utilisez un postMessage envoyé depuis le template ou la page de remerciement du formulaire, puis un listener GTM côté site principal. C’est la méthode la plus fiable pour déclencher un événement GA4 ou Google Ads.
Cas 2 — Vous utilisez un Form Handler Pardot
Dans ce cas, le formulaire reste un formulaire natif de votre site ou de votre CMS. Le Form Handler sert à transmettre les données à Account Engagement, mais le formulaire, lui, reste dans votre DOM. Vous pouvez donc tracker la soumission via votre événement natif de succès, votre AJAX callback, ou votre propre dataLayer.push(). Salesforce présente justement les Form Handlers comme une manière d’intégrer des formulaires tiers ou custom à Account Engagement.
Méthode recommandée pour tracker un formulaire Pardot iframe
Si votre formulaire Pardot est affiché dans une iframe, voici la méthode que je recommande.
1) Modifier le template du formulaire Pardot
L’idée est d’envoyer un message à la fenêtre parente lorsque la soumission a réussi. Dans les ressources consultées, cette logique est généralement ajoutée dans la partie “thank you” du template ou de la confirmation du formulaire.
Voici un exemple propre à insérer dans la zone de confirmation du formulaire :
%%form-if-thank-you%%
<script>
window.parent.postMessage({
event: 'pardot_form_success',
formName: '%%name%%'
}, 'https://www.votresite.com');
</script>
%%form-javascript-focus%%
%%form-thank-you-content%%
%%form-thank-you-code%%
%%form-end-if-thank-you%%
Dans ce script, pardot_form_success est le nom de l’événement personnalisé qui sera récupéré ensuite dans GTM, et %%name%% permet de remonter le nom du formulaire. Le principe est le même que les implémentations postMessage utilisées pour remonter une soumission depuis l’iframe vers le site principal.
Point important : remplace https://www.votresite.com par ton vrai domaine. Beaucoup d’exemples sur le web utilisent *, mais en pratique il vaut mieux limiter l’origine autorisée.
2) Ajouter un listener dans Google Tag Manager
Ensuite, dans GTM, ajoute une balise HTML personnalisée déclenchée sur les pages où le formulaire peut apparaître :
<script>
(function() {
window.addEventListener('message', function(event) {
if (event.origin !== 'https://go.votredomaine.com') return;
if (!event.data || event.data.event !== 'pardot_form_success') return;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'pardot_form_success',
pardot_form_name: event.data.formName || undefined
});
});
})();
</script>
Cette logique écoute les messages entrants, vérifie qu’ils proviennent bien du domaine du formulaire Pardot, puis pousse un événement exploitable dans le dataLayer. Le principe du listener message côté GTM est celui utilisé dans les implémentations reconnues pour les formulaires Pardot en iframe.
3) Créer le déclencheur personnalisé dans GTM
Crée ensuite un déclencheur de type Custom Event avec :
Puis crée une variable de couche de données :
Cela te permettra de récupérer le nom du formulaire dans GTM et de l’envoyer à GA4 ou à d’autres plateformes. La logique de variable dédiée au nom du formulaire est cohérente avec les setups postMessage documentés pour Pardot.
4) Envoyer l’événement dans GA4
Crée une balise GA4 Event dans GTM avec par exemple :
Si ton objectif est purement business, je te conseille souvent d’utiliser un événement clair comme generate_lead, ou un événement custom normalisé dans ton plan de taggage. Ensuite, marque cet événement comme conversion dans GA4. Les ressources consultées rappellent d’ailleurs qu’une fois l’événement envoyé à GA4, tu peux le retrouver dans les événements puis le déclarer comme conversion.
5) Déclencher aussi Google Ads, Meta ou d’autres tags
À partir du moment où ton dataLayer.push() existe, tu peux déclencher :
une conversion Google Ads
un événement Meta Ads
un event LinkedIn Ads
un event server-side si tu utilises sGTM
un event dans Piwik PRO, Mixpanel ou autre
Le vrai sujet n’est donc pas Pardot lui-même. Le vrai sujet est de réussir à faire sortir proprement l’information de soumission depuis l’iframe vers ton environnement de tracking. Une fois ça fait, le reste devient standard.
Alternative simple : rediriger vers une page de remerciement
Si tu veux une mise en place plus simple et plus rapide, tu peux aussi configurer une redirection vers une thank-you page après la soumission du formulaire, puis tracker la page vue de cette page comme conversion. Cette approche est moins élégante qu’un vrai événement, mais elle est simple à déployer et fonctionne bien dans certains contextes.
En revanche, cette méthode a deux limites :
elle dépend d’une page de remerciement dédiée ;
elle peut générer des doublons ou de faux positifs si la page est accessible autrement.
Donc oui, ça marche. Mais quand c’est possible, je préfère un vrai event de succès.
Et si vous utilisez un Form Handler Pardot ?
Beaucoup d’équipes utilisent un Form Handler plutôt qu’un formulaire hébergé par Pardot. Salesforce le présente comme une alternative aux forms natifs Account Engagement, afin d’intégrer un formulaire tiers ou custom tout en envoyant les données dans Account Engagement.
Dans ce cas, vous n’avez généralement pas besoin de postMessage, car le formulaire est déjà sur votre site. Le tracking doit alors se faire sur l’événement de succès réel de votre formulaire :
Exemple générique :
<script>
document.addEventListener('form_submit_success', function(e) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'pardot_form_success',
pardot_form_name: e.detail?.formName || 'formulaire_pardot',
form_status: 'success'
});
});
</script>
L’avantage du Form Handler, c’est que tu gardes la main sur le front. Le formulaire reste piloté par ton site, et Pardot reçoit la donnée en arrière-plan. C’est souvent plus souple pour le tracking, le design, et parfois pour la gestion du consentement. Salesforce précise aussi des points d’attention spécifiques aux Form Handlers, notamment pour les envois server-side où il faut activer le Kiosk/Data Entry Mode afin d’éviter de tracker le serveur comme prospect.
Attention au consentement et au tracking Pardot
Si tu veux aller plus loin que le simple tracking de soumission, Salesforce met à disposition une Tracking & Consent API pour contrôler plus finement le tracking de page vue et la logique de consentement dans Account Engagement. Cette API concerne surtout le tracking de navigation et la gestion du consentement, pas le déclenchement d’un event de submit lui-même.
Autrement dit :
pour mesurer la soumission du formulaire, le sujet principal reste ton event GTM / dataLayer ;
pour piloter le tracking de navigation Pardot selon le consentement, regarde la Tracking & Consent API de Salesforce.
Pourquoi tracker un formulaire Pardot dans GA4 alors que Pardot a déjà ses propres rapports ?
Parce que Pardot et GA4 ne répondent pas à la même question.
Salesforce indique que les rapports forms / form handlers permettent déjà d’analyser des métriques comme les vues, soumissions et conversions. C’est utile, mais insuffisant pour piloter l’acquisition globale.
GA4, lui, permet de replacer la soumission dans un contexte plus large :
En clair : Pardot mesure bien la performance du formulaire dans son écosystème, mais GA4 t’aide à comprendre ce qui amène réellement les leads et ce qui transforme le mieux.
La meilleure approche en 2026
Si tu écris un nouvel article aujourd’hui, il faut être clair :
Formulaire Pardot iframe : utilise postMessage + GTM.
Form Handler Pardot : tracke l’événement de succès natif du formulaire.
Thank-you page : solution simple, mais moins robuste.
Consentement / page views Pardot : sujet séparé, via la Tracking & Consent API.
C’est ça la vraie réponse. Le reste, c’est du bruit.
Conclusion
Tracker un formulaire Pardot n’est pas compliqué, mais ce n’est pas plug-and-play non plus. Le point décisif est de comprendre si vous êtes sur un formulaire iframe hébergé par Pardot ou sur un Form Handler connecté à un formulaire tiers. Salesforce documente bien cette différence fonctionnelle, et c’est elle qui conditionne toute votre implémentation tracking.
Si le formulaire est dans une iframe, utilisez un postMessage pour remonter un événement au parent. Si vous êtes sur un Form Handler, récupérez directement l’événement de succès côté site. Ensuite, poussez un event propre dans le dataLayer, envoyez-le à GA4, puis déclenchez vos conversions Ads. C’est la méthode la plus propre, la plus robuste, et la plus exploitable pour piloter réellement vos leads.