Ir al contenido

Seguridad & Hashing SHA-256

SignalRelay nunca envía a una plataforma publicitaria el correo, el teléfono ni el nombre de un cliente en texto plano: cada valor se normaliza y se convierte en un hash SHA-256 en tu servidor antes del envío. Dos datos salen tal cual, por diseño: la dirección IP del visitante y el user agent de su navegador, que las plataformas usan para el matching.

Los datos del cliente solo existen si los mapeás: una fila Match en el Event Builder, o el matching automático de campos de la integración con Elementor Forms (ambos Pro). Google Analytics 4 nunca recibe datos del cliente.


Antes de construir el payload server-to-server:

  1. Email: Se eliminan espacios en blanco al inicio y final, se convierte a minúsculas y se genera el hash hash('sha256', strtolower(trim($email))).
  2. Teléfono: Se elimina todo carácter que no sea un dígito, se descartan los ceros iniciales y se aplica SHA-256. Meta recibe el hash de los dígitos solos; TikTok recibe el hash de los mismos dígitos con un + adelante. Nada valida el código de país ni lo agrega, así que el número tiene que incluir el suyo para que coincida.
  3. Nombres y apellidos: Solo se convierten a minúsculas, después de recortar los extremos. La puntuación y los espacios internos se conservan.
  4. Ciudad, estado, código postal y país: Ciudad y estado se pasan a minúsculas y se elimina todo lo que no sea una letra o un dígito. Un ZIP+4 de EE. UU. se corta a sus primeros cinco dígitos, y cualquier otro código postal se pasa a minúsculas sin espacios ni guiones. El país se pasa a minúsculas.

Un valor que ya parece un hash SHA-256 (64 caracteres hexadecimales) se deja pasar sin cambios.

Texto plano: " Juan.Perez@Gmail.COM "
Normalizado: "juan.perez@gmail.com"
Hash SHA-256: "860a4d8a4b9063e26760549ffae4dcf6c6065ea7729eda034e8312d0f6ff1263"
Teléfono ingresado: "+54 9 11 2233-4455"
Meta: sha256("5491122334455") = "c05486dc9903443d7733d5d5ea65735ea490867aea51d2922322135047f1f419"
TikTok: sha256("+5491122334455") = "81f0e3a8c199c04cdcf9753b542f83d4455880a1b34e658814e971c705be04a1"

Las plataformas usan algunos identificadores tal como están, así que SignalRelay no les aplica hash: la dirección IP y el user agent del navegador del visitante, el ID anónimo first-party del visitante, los IDs de clic y de navegador de las propias plataformas (_fbp, fbclid, ttclid) y el ID de login de Facebook si mapeás uno.

Los valores de matching que recolectás en el navegador, como el campo de email de un formulario, viajan una sola vez, en texto plano, al endpoint de tracking de tu propio sitio y ahí se les aplica el hash. Ningún email, teléfono ni nombre llega en texto plano a una plataforma publicitaria.


SignalRelay nunca guarda un correo ni un teléfono en texto plano en tu base de datos de WordPress. Esto es lo que sí conserva:

  • La cola de entrega. Las conversiones no se envían mientras el visitante espera: cada una se encola como una acción de Action Scheduler, y esa acción contiene el evento completo. Es decir, el nombre y el ID del evento, la URL completa de la página (con su query string y fragmento, si los hay), los identificadores hasheados, la IP y el user agent del visitante, el ID anónimo del visitante y todos los valores de custom data. SignalRelay no depura estas filas por su cuenta; lo hace Action Scheduler, por defecto 31 días después de una acción completada y unos tres meses (93 días) después de una fallida. Podés cambiarlo, en segundos, con los filtros action_scheduler_retention_period y action_scheduler_retention_period_for_failed.
  • El registro de actividad. No guarda valores de matching: solo el nombre del evento, el resultado, la URL de la página sin query string ni fragmento, la marca de tiempo, qué parámetros de matching estaban presentes (nunca sus valores) y hasta 12 campos de custom data que envían tus reglas. Nunca mapees datos personales como custom data.
  • Cookies. First-party y mínimas: un ID anónimo de visitante (365 días) y la atribución de campaña, es decir UTMs y IDs de clic (30 días).

Desinstalación. Al eliminar el plugin se conserva tu configuración por defecto. Si antes activás Delete data on uninstall (Ajustes → SignalRelay → Settings → Advanced), al eliminar el plugin también se borran todas las acciones de entrega de SignalRelay, en cola, completadas y fallidas, junto con sus opciones y tablas.