// — 1. Función para aplicar Hash SHA-256 (SOLO para email y otros datos limpios) — // NOTA: Esta función ya NO hace toLowerCase() para que podamos usarla en el teléfono. async function sha256(str) { if (!str) return null; // Normalización: SOLO limpieza de espacios (trim) const normalizedStr = str.trim(); // QUITAR .toLowerCase() para evitar problemas con phone/address// … (resto del código de hasheo) … const encoder = new TextEncoder(); const data = encoder.encode(normalizedStr); // … (resto del código de hasheo) … const hashBuffer = await crypto.subtle.digest(«SHA-256″, data); // … (resto del código de hasheo) … const hashArray = Array.from(new Uint8Array(hashBuffer)); return hashArray.map(b => b.toString(16).padStart(2, ‘0’)).join(»); }// — 2. Lógica Principal de Conversión (CORREGIDA) — (async () => { const urlParams = new URLSearchParams(window.location.search); const email = urlParams.get(«email»); const phone = urlParams.get(«phone»);// **NORMALIZACIÓN ESPECÍFICA PARA EMAIL:** minúsculas const normalizedEmail = email ? email.trim().toLowerCase() : null; // **NORMALIZACIÓN ESPECÍFICA PARA TELÉFONO:** solo dígitos, sin el «+» const normalizedPhone = phone ? phone.replace(/[^0-9]/g, ») : null; // Esto elimina todos los NO dígitos// Hashear los valores (si existen) const hashedEmail = normalizedEmail ? await sha256(normalizedEmail) : null; const hashedPhone = normalizedPhone ? await sha256(normalizedPhone) : null;// … (resto del código de gtag) … if (hashedEmail || hashedPhone) { gtag(‘event’, ‘conversion’, { ‘send_to’: ‘AW-833845743/kzFFCMzL6YkCEO_zzY0D’, ‘value’: 10.0, ‘currency’: ‘EUR’, ‘transaction_id’: »,‘user_data’: { ‘email’: hashedEmail, ‘phone_number’: hashedPhone } }); console.log(«Conversión mejorada enviada a Google Ads.»); } else { console.warn(«No se encontraron email ni teléfono en la URL para conversiones mejoradas.»); } })();

Muchas gracias

Hemos recibido su solicitud. Nos pondremos en contacto con usted en la mayor brevedad posible

Le deseamos lo mejor

Scroll al inicio