Tengo un script dentro de una cuenta de administrador de etiquetas de Google para niños que se activa al enviar un formulario iframe que se genera a través de javascript, esto debe recogerse a través de la cuenta de administrador de etiquetas de Google principal a través de dataLayer. Estoy siguiendo este tutorial: https://measureschool.com/iframe-tracking/
Sin embargo, no va a ingresar a la capa de datos en el padre, por lo tanto, la etiqueta no se activa. ¿Alguien puede ayudar?
Para confirmar
La cuenta del administrador de etiquetas secundarias se activa en: https://new.bokuntest.com/ - la URL del formulario iframe
La cuenta del administrador de etiquetas principal se activa en: https://bokun.io/
URL de la página con formulario iframe incrustado: https://bokun.io/copy-of-free-trial
etiqueta postMessage disparando en niño:
<script> try { var postObject = JSON.stringify({ event: 'iframeFormSubmit', form: 'Registration' }); parent.postMessage(postObject, 'https://new.bokuntest.com'); } catch(e) { window.console && window.console.log(e); } </script>Etiqueta de oyente en el padre (disparador = disparar en todas las páginas):
<script type="text/javascript"> (function(window) { addEvent(window, 'message', function(message) { try{ var data = JSON.parse(message.data); var dataLayer = window.dataLayer || (window.dataLayer = []); if (data.event) { dataLayer.push({ 'event': data.event, 'postMessageData': data }); } }catch(e){} }); // Cross-browser event listener function addEvent(el, evt, fn) { if (el.addEventListener) { el.addEventListener(evt, fn); } else if (el.attachEvent) { el.attachEvent('on' + evt, function(evt) { fn.call(el, evt); }); } else if (typeof el['on' + evt] === 'undefined' || el['on' + evt] === null) { el['on' + evt] = function(evt) { fn.call(el, evt); }; } } })(window); </script>Activar en el padre (esto es lo que no parece estar sucediendo):
Etiqueta de envío de formulario en el padre:
¿Alguien puede averiguar lo que me he perdido?
window.parent.postMessage(postObject, 'https://new.bokuntest.com'); try { var postObject = JSON.stringify({ event: 'iframeFormSubmit', form: 'Registration' }); window.parent.postMessage(postObject, 'https://new.bokuntest.com'); } catch(e) { window.console && window.console.log(e); }