- Formulaires ciblés : #wpforms-form-23 et #wpforms-form-4777 - Boutons de soumission : #wpforms-submit-23 et #wpforms-submit-4777 Notes : - Ce script n’effectue PAS le hashage SHA-256. Si votre conteneur GTM n’a pas de hachage auto côté balise, hashez côté site avant push (RGPD). - L’anti-doublon se réinitialise après 2 secondes pour permettre une seconde soumission légitime (nouvelle page, nouvel essai, etc.). ======================================================================= */ // Assure l’existence du dataLayer AVANT tout push window.dataLayer = window.dataLayer || []; // Déclare gtag s’il n’est pas déjà défini ailleurs // (si déjà présent, cette définition sera ignorée au profit de l’existante) window.gtag = window.gtag || function(){ dataLayer.push(arguments); }; // Initialisation de la propriété Google Ads // - 'js' : horodatage d’initialisation // - 'config' : active les fonctionnalités de base de la propriété gtag('js', new Date()); gtag('config', 'AW-844414202'); document.addEventListener('DOMContentLoaded', function () { // Liste explicite des formulaires suivis pour contrôler le périmètre const IDS = [23, 4777]; // Registre anti-doublon par formulaire // - Objectif : ne pousser qu’UN seul event "formEmailCaptured" par soumission // - Problème courant : certains thèmes déclenchent click + submit const pushed = {}; // ex. { '23': true, '4777': false } // Helper : retourne l’input email trouvé dans le formulaire // - Priorité : input[type="email"] // - Fallback : input dont le name contient "email" (insensible à la casse) function getEmail(form){ const field = form.querySelector('input[type="email"], input[name*="email" i]'); if(!field) return null; const value = field.value.trim().toLowerCase(); // Filtrage minimal : présence de '@' // (éviter validations complexes côté client, laisser GTM/serveur gérer le reste) return value.includes('@') ? value : null; } // Helper : pousse l’email dans dataLayer et user_data pour Enhanced Conversions function pushEmail(formId, email){ // Stop si pas d’email ou déjà poussé récemment pour ce formId if(!email || pushed[formId]) return; // Marque le formId comme "déjà poussé" pour couper le doublon click+submit pushed[formId] = true; // 1) Event custom pour debug/analytics (visible dans GTM Preview) window.dataLayer.push({ event: 'formEmailCaptured', // Nom d’event lisible dans GTM capturedFormId: String(formId), // "23" ou "4777" (string pour normaliser) emailViaDataLayer: email // Email brut (hash si fait côté site) }); // 2) Données utilisateur pour Enhanced Conversions (lu par GTM côté balise) // - Si vous hashez côté site : remplacez { email } par { email_hash: ... } window.dataLayer.user_data = { email: email }; // Réinitialisation anti-doublon après un délai court // - Permet une seconde soumission légitime sans recharger toute la page setTimeout(function(){ pushed[formId] = false; }, 2000); } // Attache les écouteurs sur les formulaires ciblés IDS.forEach(function(formNumericId){ const formId = String(formNumericId); // normalise en string const form = document.getElementById('wpforms-form-' + formId); if(!form) return; // Form non présent sur la page → on ignore // Écoute "submit" au niveau du formulaire // - Capture true : intercepte tôt le cycle d’événements // - Couvre aussi la touche "Enter" form.addEventListener('submit', function(){ const email = getEmail(form); pushEmail(formId, email); }, { capture: true }); // Écoute "click" sur le bouton si présent // - Certains thèmes empêchent "submit" ou le déclenchent tardivement // - Ce fallback couvre les interactions directes sur le bouton const btn = document.getElementById('wpforms-submit-' + formId); if(btn){ btn.addEventListener('click', function(){ const email = getEmail(form); pushEmail(formId, email); }); } }); });
Skip to contentEtes-vous en train de planifier la construction de nouveaux bâtiments, immeubles ou locaux ? Ou désirez-vous un aménagement qui réponde plus aux normes actuelles ? Etes-vous à la recherche d’un architecte Chelles professionnel ? Vous avez frappé à la bonne porte. Megastructures propose des solutions clé en main, et vous accompagne dans la réalisation de vos…
Lire la suite
Forte de plus de 10 ans d’expérience, Megastructures est une entreprise dont l’activité repose sur les grands projets de maîtrise d’œuvre. Elle vous accompagne, à cœur joie, dans les projets d’architectures. Elle intervient dans plus de 80 villes de France, y compris dans le secteur de Marne-la-Vallée, dans la région de l’Ile-de-France. En ce sens,…
Lire la suite
Si vous êtes à la recherche d’un architecte Meaux pour concrétiser un projet de construction ou d’extension, découvrez tout ce que vous avez besoin de savoir à ce sujet ici. Conseils pour bien choisir son architecte à Meaux ! Il est souvent nécessaire de s’adonner à certains travaux d’envergure. Que ce soit pour le design d’intérieur…
Lire la suite