Blog
SignalHost para WordPress: Google Tag Manager del lado del servidor y eventos de WooCommerce con un solo plugin
Publicado · 8 min de lectura
El plugin de SignalHost pone Google Tag Manager del lado del servidor en un sitio WordPress sin pegar código. Añade el seguimiento a cada página, envía los eventos de WooCommerce, de formularios y de registro con la forma que espera tu contenedor, cambia por sí solo a tu propio dominio de seguimiento cuando este se activa y te avisa de todo lo que se contaría dos veces. Esta guía sigue el orden en que te lo encuentras: instalar, conectar, comprobar y arreglar lo que no funciona.
Antes de empezar
- WordPress 6.6 o posterior con PHP 7.4 o posterior, y una cuenta de administrador.
- Una dirección del sitio que empiece por https://, necesaria para conectar. Los demás sitios pueden usar el plugin igualmente con un fragmento pegado, como se describe más abajo.
- Una cuenta de SignalHost. El plan gratuito basta para probarlo: 10.000 solicitudes al mes y un contenedor. Puedes crear la cuenta durante la conexión.
- WooCommerce, si quieres eventos de tienda. Los eventos de formularios y de registro funcionan sin él.
1. Instala el plugin
En WordPress, ve a Plugins → Add New, busca SignalHost e instala y activa SignalHost – Server-Side Tag Hosting for Google Tag Manager. Añade una entrada SignalHost al menú de administración y no contacta con ningún servicio externo hasta que conectes el sitio.
2. Conecta el sitio a un contenedor
Abre SignalHost en el menú y pulsa «Connect with SignalHost», o «Create a free account» si eres nuevo. Tu navegador va a signalhost.io y vuelve cuando terminas.
Allí, «Conectar un sitio web» enumera lo que el plugin podrá hacer —añadir tu código de seguimiento a cada página, mantenerlo al día y leer el estado del contenedor— y lo que no puede hacer: usar tu cuenta de Google, los tokens de tus plataformas publicitarias ni tu facturación. Después te pregunta qué contenedor debe usar el sitio. Un contenedor es tu propio servidor de etiquetado: un contenedor web y un contenedor de servidor de Tag Manager, construidos en tu propia cuenta de Google, así que siguen siendo tuyos.
Elige uno y pulsa «Conectar», o elige «Nuevo contenedor para tu sitio» y pulsa «Crear contenedor» para abrir el breve asistente, que te ofrece conectar el sitio antes de que termine la construcción; el plugin añade el código en cuanto el contenedor está listo. De vuelta en WordPress, un aviso indica que el sitio está conectado.
3. Comprueba que funciona
La pestaña «Status» es una lista de comprobación que se pone en verde de arriba abajo: «Connected to SignalHost», «Tracking code on your site», «SignalHost served the code to a visitor» y «Data arriving». El segundo paso sale de que el plugin recupera tu página de inicio como lo haría un visitante sin sesión iniciada; «Check again» lo repite.
Abre tu sitio en un navegador, añade un producto al carrito, envía un formulario. El tercer paso se pone en verde menos de un minuto después de la primera visita, y «Data arriving» cuenta entonces las vistas de página de los últimos 7 días. «Log events in the browser console», en «Advanced», muestra cada evento en el momento en que sale de la página, y a partir del plan Growth la página del contenedor en signalhost.io los muestra en «Monitorización de eventos en directo».
Lo que el plugin añade a tu sitio
El cargador de Google Tag Manager, en el head de cada página, apuntando a tu propia dirección de etiquetado en lugar de a googletagmanager.com, colocado después de tu banner de cookies y excluido de las funciones de «retrasar JavaScript» de los plugins de rendimiento habituales. Además de las vistas de página que envía tu contenedor, el plugin envía estos eventos, cada uno con su propio event_id, para que Meta, TikTok y otras plataformas cuenten una sola vez un evento del píxel del navegador y su gemelo del servidor:
- WooCommerce: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info y purchase, tanto con el carrito y el checkout clásicos como con los basados en bloques. Cada pedido se envía una sola vez, con una marca en el propio pedido, por muchas veces que se abra la página de agradecimiento.
- Formularios: envíos correctos de Contact Form 7, WPForms, Gravity Forms, formularios de Elementor Pro y Fluent Forms, como lead (generate_lead), contacto (contact), reserva (schedule), solicitud (submit_application) o suscripción (subscribe), a elegir para cada formulario.
- Registros: sign_up cuando un visitante crea una cuenta, en la página de registro, en Mi cuenta o en el checkout.
Cada tipo es un interruptor en «What is tracked». Los eventos de carrito, checkout, formularios y registro salen de la propia sesión del visitante, nunca del HTML de la página, así que una caché de página no puede pasarle el evento de un visitante al siguiente.
«Send customer details for better ad matching» está desactivado hasta que lo activas. Entonces el correo electrónico, el teléfono y la dirección acompañan a las conversiones solo cuando el visitante ha permitido las cookies publicitarias, y se convierten en hash antes de llegar a las plataformas publicitarias. El consentimiento sigue a tu banner de cookies mediante Google Consent Mode; si tu banner no lo configura, elige «Set “denied until consent” here» en «Consent & privacy».
Si ya usas GTM4WP u otra etiqueta de Google
El plugin lee tu página de inicio, revisa tus otros plugins y muestra en «Double-counting check» todo lo que se contaría dos veces: un fragmento de SignalHost que pegaste antes, el propio fragmento de Tag Manager de Google o una etiqueta de Google para la misma propiedad, Site Kit, MonsterInsights, ExactMetrics o Google Analytics for WooCommerce.
Para GTM4WP hay arreglos de un clic. «Turn off GTM4WP’s container code» evita que cargue el mismo contenedor directamente desde Google, mientras su dataLayer sigue funcionando; «Turn off GTM4WP’s shop tracking» deja los eventos de tienda a SignalHost. «Undo» deshace cualquiera de los dos.
Tu propio dominio de seguimiento
Tu contenedor empieza en una dirección bajo signalhost.io. En un plan de pago, «Configura tu propio dominio», en la página del contenedor, te guía para usar un subdominio de tu propio sitio, como metrics.tusitio.com, con un solo registro DNS. Los navegadores lo tratan como de primera parte, así que sus cookies cuentan como tuyas y los clics en anuncios siguen atribuidos. Cuando se activa, el plugin cambia tu sitio a él en su próximo contacto, normalmente en menos de una hora, y vacía tus cachés de página. No hay nada que sustituir a mano.
Añadir SignalHost a mano
También puedes usar SignalHost en WordPress sin el plugin. En signalhost.io, abre tu contenedor, busca el fragmento en la tarjeta «Instalar en tu sitio» y pulsa «Copiar». Pégalo en el head de cada página, lo más arriba posible pero después del script de tu banner de cookies: sirve un plugin de cabecera como WPCode (su campo Header) o el header.php de tu tema. Si el sitio ya carga Google Tag Manager o una etiqueta de Google para la misma propiedad de Analytics, sustituye ese fragmento en lugar de añadir un segundo. Después pulsa «Ya lo he hecho».
Así tienes tu contenedor de Tag Manager en cada página, con las vistas de página y lo que tu sitio envíe por sí mismo al dataLayer. Pierdes todo lo que añade el plugin: los eventos de WooCommerce, de formularios y de registro, la compra enviada una sola vez por pedido y las dos comprobaciones. Cuando tu propio dominio se active, sustituyes tú el fragmento.
Para un sitio que no puede conectarse, como uno sin https://, hay un término medio: en el plugin, elige «I already have a snippet from SignalHost», pega el código y pulsa «Use this snippet». Los eventos siguen llegando, pero el plugin no puede cambiar a tu propio dominio ni mostrar si llegan datos.
Gestionar y desconectar
«Disconnect», en la pestaña «Status», pide confirmación una vez y luego quita el código de seguimiento de todas las páginas al momento. Tu contenedor y sus datos se quedan, y «Connect with SignalHost» vuelve a conectar el sitio cuando quieras. En signalhost.io, Ajustes › Sitios conectados también muestra el sitio; «Desconectar» allí quita el código en el próximo contacto del plugin, normalmente en menos de una hora.
Eliminar el plugin desconecta el sitio y borra todo lo que el plugin había guardado. En una copia de staging, el plugin detecta que la dirección ha cambiado y pausa el seguimiento, así que el tráfico de prueba no entra en tus datos reales.
Cuando algo no funciona
- No hay botón «Connect»: la dirección del sitio no empieza por https://. Usa «I already have a snippet from SignalHost» en su lugar.
- La conexión se detiene con un mensaje sobre un cortafuegos: un plugin de seguridad o el servidor bloquea las solicitudes a signalhost.io. Permítelas y vuelve a pulsar «Connect».
- No se encontró el código en tu página de inicio: un tema sin wp_head(), una caché de página o un plugin de optimización lo está eliminando. Pulsa «Clear page caches» en «Advanced» y luego «Check again».
- El código está dos veces en tu página de inicio, o hay una copia antigua: quita el fragmento que pegaste antes en tu tema o en un plugin de cabecera.
- No se pudo abrir la página de inicio desde este servidor: lo impide una protección con contraseña, el modo de mantenimiento o un cortafuegos. Abre el sitio en un navegador para comprobarlo allí.
- Faltan tus propias visitas: «Do not track administrators» está activado. Visita el sitio sin iniciar sesión.
- Cualquier otra cosa: escribe a hello@signalhost.io con la dirección de tu sitio.
Marcas comerciales
SignalHost es un producto independiente de Algorithmo GmbH y no está afiliado a la WordPress Foundation, WooCommerce, Google, Meta ni TikTok, ni cuenta con su respaldo. Google Analytics, Google Ads y Google Tag Manager son marcas comerciales de Google LLC; Meta es una marca comercial de Meta Platforms, Inc.; TikTok es una marca comercial de ByteDance Ltd.; WordPress es una marca comercial de la WordPress Foundation. WooCommerce y los demás nombres de plugins mencionados aquí son marcas comerciales de sus respectivos propietarios.

