He implementado un sistema de análisis de seguimiento para Guest Gate v2.0 con soporte completo para GTM (Google Tag Manager) y registro flexible de eventos personalizados.
Configuración añadida
enable_analytics(desactivado por defecto): Activa o desactiva toda la funcionalidad de seguimiento, según se requiera.
analytics_debug_logging: Cuando está habilitado, registra todos los eventos seguidos directamente en la consola del navegador. Esto resulta especialmente útil durante la configuración al ajustar los disparadores de GTM.
Funcionalidad principal
Un módulo de ayuda dedicado (guest-gate-analytics.js) se encarga de la emisión de eventos. Cada evento seguido se envía simultáneamente a dos destinos:
window.dataLayer.push(...): Es capturado automáticamente por Google Tag Manager (GTM) y Google Analytics 4 (GA4) si están activos en el sitio.
discourse-guest-gate:analytics(Evento personalizado del navegador): Permite la integración con herramientas de terceros (por ejemplo, Matomo, Plausible o webhooks personalizados) sin necesidad de realizar más modificaciones en el código.
Eventos seguidos
guest_gate_shown(Se dispara cuando aparece el modal)
guest_gate_reason: El tipo de disparador (page_view, time, scroll o lightbox).
guest_gate_path: La ruta de la URL donde se mostró el modal.
guest_gate_click(Se dispara cuando el visitante interactúa con el modal)
guest_gate_click_action: La acción específica realizada (login, signup, sso_login, sso_signup, external_<provider> como el botón de inicio de sesión de Google, o dismiss si se cierra sin tomar ninguna acción).
Incluye los mismos metadatos de reason y path para correlacionar fácilmente las interacciones con los disparadores de visualización.
Privacidad y protección de datos
No se recopila ni transmite información personal identificable (PII), solo los metadatos operativos mínimos enumerados anteriormente.
Después de bastante trabajo, me complace lanzar Guest Gate v2.0.
Guest Gate comenzó como un componente de tema relativamente simple basado en el plugin original Guest Gate Sign Up Popup, que permitía animar o requerir a los visitantes anónimos a Registrarse o Iniciar Sesión después de ver un cierto número de temas.
Con el tiempo, el componente creció considerablemente y la implementación original se volvió cada vez más difícil de extender.
Por lo tanto, la v2.0 no es solo una refactorización o una actualización visual. Introduce un sistema de disparadores completamente nuevo, una mejor personalización, analíticas opcionales y una serie de mejoras internas.
¿Qué hay de nuevo en la v2.0?
Múltiples tipos de disparadores
Guest Gate ya no se limita a las visualizaciones de temas/páginas.
Ahora puedes activar la puerta basándote en:
Visualizaciones de página
Tiempo
Profundidad de desplazamiento (scroll)
Apertura de lightbox/imágenes
Cualquiera - activa la puerta cuando se cumpla la primera condición de disparador configurada
Cada disparador tiene su propio umbral configurable.
También puedes configurar un retraso entre el disparador y la aparición del modal.
Esto hace posible crear diferentes tipos de puertas, por ejemplo:
Mostrar la puerta después de 3 visualizaciones de página.
o:
Mostrar la puerta después de 60 segundos.
o:
Mostrar la puerta cuando el visitante haya desplazado el 70% de la página.
Comportamiento de repetición
El antiguo comportamiento aleatorio de visualizaciones de página se ha ampliado a un sistema de repetición adecuado.
Puedes elegir entre:
Disparador de repetición: muestra la puerta cada vez que se activa el disparador configurado.
Visualizaciones de página aleatorias: muestra la puerta después de un número aleatorio de visualizaciones de página.
Una vez por sesión: muestra la puerta como máximo una vez durante la sesión del navegador.
El comportamiento existente de “mostrar solo una vez” también se ha conservado por compatibilidad hacia atrás.
Mejor personalización del modal
La v2.0 añade más control sobre el propio modal.
Ahora puedes configurar:
Tamaño del modal: compacto, estándar o ancho
Alineación del cuerpo
Alineación del pie de página
Visibilidad del título
Posicionamiento del título
Estilo e icono del botón de inicio de sesión
Estilo e icono del botón de registro
La puerta personalizada también se ha mejorado con un mejor control sobre:
Alineación de la imagen
Ancho de la imagen
Texto alternativo de la imagen
Alineación y color del encabezado
Alineación y color del texto
Color de fondo
Colores del pie de página y de los enlaces
La imagen personalizada ahora es opcional y también utiliza carga diferida (lazy loading) e indicaciones de decodificación.
Analíticas
Guest Gate v2.0 incluye analíticas opcionales conscientes de la privacidad.
Cuando está habilitado, Guest Gate rastrea:
Impresiones de la puerta
Motivo del disparador
Ruta de la página
Clics en iniciar sesión
Clics en registrarse
Acciones de SSO
Acciones de descartar
Los eventos se exponen a través de window.dataLayer y también se emiten como evento del navegador:
discourse-guest-gate:analytics
Esto permite integrar Guest Gate con plataformas de analíticas y gestión de etiquetas como Google Analytics, Google Tag Manager, Matomo, o implementaciones de analíticas personalizadas.
Guest Gate no recopila datos personales.
Las analíticas están deshabilitadas por defecto.
Instalaciones existentes
Una de las partes importantes de la v2.0 es que las configuraciones existentes no tienen que recrearse manualmente.
Se ha añadido una migración de ajustes para migrar los ajustes antiguos de Guest Gate a sus equivalentes en la v2.
Esto incluye ajustes como:
max_guest_topic_views
dismissable_false
gate_show_when_thumbnail_clicked
Por lo tanto, las configuraciones existentes deberían continuar funcionando después de la actualización.
El componente ahora requiere oficialmente Discourse 3.2.0 o superior.
¿Por qué la v2.0?
El Guest Gate original estaba diseñado principalmente para limitar la cantidad de temas que los visitantes anónimos podían ver.
El objetivo de la v2.0 es hacerlo mucho más flexible.
Guest Gate ahora se puede utilizar como una puerta general de conversión y participación de visitantes, al tiempo que sigue admitiendo el caso de uso original.
Por ejemplo, puedes usarlo para animar el registro después de que un visitante haya:
Leído varios temas
Pasado una cierta cantidad de tiempo en el sitio
Desplazado un artículo
Abierto una imagen
Alcanzado cualquier combinación de condiciones configuradas
Esta fue una reescritura bastante sustancial, así que estoy seguro de que aún puede haber cosas que se puedan mejorar.
Gracias a todos los que han usado, probado y han proporcionado retroalimentación sobre Guest Gate a lo largo de los años.