Continuando la discusión de Integración de Google Tag Manager con Google Analytics:
Envío de eventos personalizados a Google Tag Manager y Analytics
Esta guía explica cómo configurar su sitio de Discourse para enviar eventos personalizados a Google Tag Manager (GTM) y Google Analytics, lo que le permite rastrear interacciones específicas del usuario.
Nivel de usuario requerido: Administrador
Prerrequisitos
Antes de implementar eventos personalizados, asegúrese de tener:
- Configurado Google Tag Manager en su sitio de Discourse siguiendo la guía Configurar Google Tag Manager para Analytics
- Agregado su ID de contenedor GTM a la configuración
gtm container idde su sitio - Actualizado la configuración
content security policy script srcde su sitio para permitir los scripts de Google
Adición de eventos personalizados
Crear un componente de tema
- Navegue a Admin > Personalizar > Componentes
- Haga clic en “Nuevo” y seleccione “Crear nuevo componente”
- Asígnele un nombre a su componente
- Seleccione la pestaña JS y agregue su código. Por ejemplo, el código a continuación toma los activadores de appEvent y envía los siguientes eventos a
dataLayer:
post:likedpost:createdtopic:created
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
window.dataLayer = window.dataLayer || [];
// Rastrear "me gusta" en publicaciones
api.onAppEvent("page:like-toggled", (post, likeAction) => {
let topic = post.topic;
if (post && topic && likeAction && likeAction.acted) {
window.dataLayer.push({
'event': 'postLiked',
'postId': post.id
});
}
});
// Rastrear publicaciones nuevas
api.onAppEvent("post:created", post => {
if (post) {
window.dataLayer.push({
'event': 'postCreated',
'postId': post.id
});
}
});
// Rastrear temas nuevos
api.onAppEvent("topic:created", (post, composerModel) => {
if (post) {
window.dataLayer.push({
'event': 'topicCreated',
'topicCategory': composerModel.get("category.name"),
'topicId': post.topic_id
});
}
});
});
- Guarde el componente
- Agregue el componente a todos los temas activos en su sitio
Eventos disponibles
Todos los eventos de activación disponibles se enumeran aquí: Referencia de activadores de AppEvents
Configuración de GTM
Crear un activador
- Vaya a https://tagmanager.google.com/
- Seleccione “Activadores” en el menú lateral
- Haga clic en “Nuevo”
- Asigne un nombre a su activador
- Seleccione “Evento personalizado” como tipo de Activador
- Ingrese el nombre del evento (por ejemplo,
postCreated) - Configure el activador para que se dispare en “Todos los eventos personalizados”
Crear una variable de capa de datos
- Seleccione “Variables” en el menú lateral de GTM
- Haga clic en “Nuevo” en la sección Variables definidas por el usuario
- Asigne un nombre a su variable
- Seleccione “Variable de capa de datos” como Tipo de variable
- Ingrese el nombre de la variable de capa de datos (por ejemplo,
postCreated) - Establezca la Versión de la capa de datos en “Versión 2”
Crear una etiqueta de Google para el seguimiento de eventos
A partir de 2024, el enfoque recomendado es utilizar la nueva plantilla “Etiqueta de Google” en lugar del tipo de etiqueta anterior “Google Analytics: Etiqueta de evento GA4”. La Etiqueta de Google proporciona una mejor integración con GA4 e incluye soporte incorporado para el Modo de consentimiento v2.
- Seleccione “Etiquetas” en el menú lateral de GTM
- Haga clic en “Nueva”
- Asigne un nombre a su etiqueta (por ejemplo, “GT - Post Creado”)
- En Configuración de la etiqueta:
- Seleccione “Etiqueta de Google”
- Seleccione su Configuración de GA4 (o cree una nueva si esta es su primera etiqueta)
- Para “Nombre del evento”, ingrese un nombre descriptivo siguiendo las convenciones de nomenclatura de GA4 (por ejemplo,
post_created) - En “Configuración de configuración”, haga clic en “Agregar fila” para incluir sus variables de capa de datos:
- Parámetro de configuración: (por ejemplo,
postId) - Valor: Su variable de capa de datos (por ejemplo,
{{postCreated}})
- Parámetro de configuración: (por ejemplo,
- En “Activación”:
- Seleccione el activador de evento personalizado creado anteriormente
Si actualmente está utilizando etiquetas de “Google Analytics: Evento GA4”, seguirán funcionando, pero las nuevas implementaciones deben usar la plantilla “Etiqueta de Google” para una mejor compatibilidad futura y características.
Requisitos de nomenclatura de eventos
GA tiene requisitos específicos para los nombres de eventos:
- Usar snake_case (letras minúsculas con guiones bajos)
- Longitud máxima de 40 caracteres
- Solo puede contener caracteres alfanuméricos y guiones bajos
Probar su etiqueta de Google
- Haga clic en el botón “Vista previa” en GTM
- Navegue a su sitio de Discourse
- Realice la acción que desea rastrear (por ejemplo, crear una publicación)
- En el modo de vista previa de GTM:
- Verifique que su evento personalizado aparezca en el panel izquierdo
- Compruebe que su etiqueta de Google se haya activado correctamente
- Confirme que todos los parámetros se estén pasando como se espera
- En Google Analytics:
- Navegue a Configurar > Eventos
- Su evento personalizado debería aparecer en la lista después de haber sido activado
- Nota: pueden pasar hasta 24 horas para que los nuevos eventos aparezcan en los informes de GA4
Puede utilizar Vista de depuración de GA4 para ver datos de eventos en tiempo real durante las pruebas.
Solución de problemas
Si no ve eventos en GTM:
- Verifique que su ID de contenedor GTM esté configurado correctamente en Discourse
- Asegúrese de que su componente de tema esté agregado a todos los temas activos
- Agregue sentencias
console.logpara verificar que los eventos se están activando:
api.onAppEvent("post:created", post => {
console.log("post:created event triggered");
if (post) {
window.dataLayer.push({
'event': 'postCreated',
'postId': post.id
});
}
});
- Utilice la extensión de Chrome Simple Data Layer Viewer para monitorear la capa de datos
- Si ve errores de Política de Seguridad de Contenido (CSP), consulte los prerrequisitos referenciados anteriormente y revise Mitigate XSS Attacks with Content Security Policy para obtener pasos adicionales.
Si tiene configurada la configuración del sitio
ga universal tracking code, vacíela ya que GTM se encargará del script de seguimiento.