(function() { // --- Notificar a gtag y a Tally cuando cambien los valores --- function updateUserProperties() { const jid = localStorage.getItem("jid") || ""; const gruponemo = localStorage.getItem("gruponemo") || ""; const nombre = localStorage.getItem("nombre") || ""; if (typeof gtag === "function") { gtag('set', 'user_properties', { jid, gruponemo, nombre }); gtag('event', 'user_update', { jid, gruponemo, nombre }); } // NUEVO: Si acabamos de enviar un formulario, no tocamos los iframes para no recargarlos if (window.tallyFormEnviado) return; if (typeof Tally !== "undefined" && typeof Tally.loadEmbeds === "function") { document.querySelectorAll("iframe[data-tally-src]").forEach(e => { if (!e.dataset.tallyBase) e.dataset.tallyBase = e.dataset.tallySrc; const u = new URL(e.dataset.tallyBase); if (jid) u.searchParams.set("jid", jid); if (gruponemo) u.searchParams.set("gruponemo", gruponemo); if (nombre) u.searchParams.set("nombre", nombre); // Extraemos UTM de la URL actual si existe, para Tally genéricos const urlParams = new URLSearchParams(window.location.search); const utm_campaign = urlParams.get("utm_campaign"); if (utm_campaign) u.searchParams.set("utm_campaign", utm_campaign); const newSrc = u.toString(); if (e.src !== newSrc) e.src = newSrc; }); } } const originalSetItem = localStorage.setItem; localStorage.setItem = function(key, value) { originalSetItem.apply(this, arguments); if (["jid", "gruponemo", "nombre"].includes(key)) updateUserProperties(); }; window.addEventListener("storage", e => { if (["jid", "gruponemo", "nombre"].includes(e.key)) updateUserProperties(); }); updateUserProperties(); })();