Tealium Collect tag: cómo enviar datos a eventstream desde gtm

Qué enrevesado todo, ¿verdad? El título que he elegido, aunque pareciera un capítulo de un libro de Wilkie Collins, tiene su explicación: este es un caso que me he encontrado ya en varias ocasiones y creo que vale la pena explicarlo en su plenitud.

Por entendernos muy rápidamente, la situación es la siguiente: tu cliente tiene toda su implementación de eventos en el dataLayer común de Google, pero quiere configurar su servicio de Server-Side tracking a través del módulo EventStream de Tealium. ¿Tenemos que cambiar toda esa implementación en la web? ¿Tenemos que utilizar algún tipo de magia negra para que esto no nos lleve días y días de trabajo?

Pues un poco de lo segundo, en realidad. En este artículo vamos a ver cómo configurar una fuente de datos en Tealium que sea capaz de recoger los eventos que se están lanzando en el dataLayer y traducirlos al idioma del té.

Data Sources en tealium

Lo primero que tenemos que entender es cómo funcionan las ingestas de datos en la parte de Servidor de Tealium. En realidad, esto es bastante sencillo, tenemos una interfaz como esta, donde vemos los diferentes tipos de entrada que podemos seleccionar:

No existen sólo las que se ven en la imagen, tenemos también fuentes de aplicaciones móviles, apis o carga de ficheros. En cualquier caso, para nuestro artículo de hoy la que nos interesa es la que véis en el medio: Google Tag Manager.

Sé que puede parecer extraño seleccionar como fuente un TMS (al final esto no es un almacén de datos de ningún tipo, sino un transmisor), pero confiad en mí, esto va a funcionar. Una vez abrimos esta opción, nos aparecerá una pantalla como esta:

Los event specs son una parte muy importante del modelado de datos, pero no es algo que nos interese realizar ahora (podéis ver más info sobre esto en esta otra entrada). Por tanto, clicamos en Skip y continuamos a la siguiente pantalla:

Lo más importante de esta pantalla (aparte de unas instrucciones fantásticas) es el Data Source Key. Esto es lo que va a identificar nuestra fuente de datos para que todo lo que lancemos caiga en el mismo pozo. Copiamos este código y nos movemos al siguiente paso de nuestra guía: Google Tag Manager.

Dentro de GTM

Sé que muchos de vosotros tenéis miedo ahora mismo: ¿qué nos vamos a encontrar en GTM? ¿Qué tendremos que hacer? Fuera temores, el maravilloso equipo de Tealium ya ha hecho los deberes y solamente tenemos que seguir sus pasos.

El primero de ellos va a ser generar una nueva Tag en GTM y, dentro de ella, vamos a buscar en la Galería de la Comunidad y elegiremos la Tealium Collect Tag:

La Tealium Collect Tag

Vamos a analizar cada uno de los puntos que aparece en la collect tag, porque merece la pena tenerlos todos claros:

1. Cuenta y perfil de Tealium: deberemos copiar el nombre de nuestra cuenta. La encontramos aquí:

2. Data Source Key: el código que habíais copiado antes. Esto identifica nuestro punto de recogida de datos.

3. Endpoint Alternativo: colocar aquí la URL de tu endpoint si has utilizado alguna diferente de la que proporciona Tealium por defecto. Normalmente irá en blanco.

4. Atributos Custom: esto es una funcionalidad maravillosa, que nos permite añadir parámetros a los eventos que vayamos a enviar, aunque no existan en nuestro dataLayer.

5. Custom Data Object: aquí pondríamos el nombre del objeto JavaScript si fuera diferente de dataLayer.

6. Merge Data from previous events: esto nos sirve para juntar en una llamada todos los eventos que hayan sucedido previamente a la carga de esta etiqueta. Una copia de seguridad.

Si dejamos la etiqueta tal y como os la he mostrado en la imagen de antes y le decimos que se lance en todos los eventos (va imagen de cómo hacer este trigger), lo que obtenemos es nuestra etiqueta lista para empezar a lanzar todos los eventos que se estén generando en el dataLayer al endpoint de EventStream de Tealium.

Vamos a ver qué significa todo esto.

Envío y recogida de datos

Para ser lo más didáctico posible, he generado un evento test que nos va a ser de paradigma en todo lo que vamos a hacer a continuación. El evento se llama eventstream_event (no tiene pérdida) y es importante que nos quedemos con el proceso que vamos a ver:

Ok, en la web se lanza este evento en el momento que sea (cuando llega el usuario, hace click en algo, compra algo), pero sigue la estructura de dataLayer.push, y no la que Tealium puede entender. Aquí entra nuestra Collect Tag en juego para poder transmitir esta información al endpoint de EventStream. ¿Cómo? Just look:

¿Qué estáis viendo aquí? Pues lo primero que vemos es el preview de GTM, donde vemos que efectivamente la etiqueta de Collect salta cuando el evento de eventstream_event aparece en el dataLayer. En las dos siguientes vemos el envío que está haciendo esta etiqueta a través del network y cómo lo traduce a un idioma que Tealium pueda entender. En la última ya podemos observar que estamos recogiendo los datos en Tealium (en el módulo Live Events), por lo que nuestra orfebrería parece que está funcionando. Eso sí, hay algo que no cuadra del todo aquí ya que, como véis, este evento se encuentra en la sección de NO SPEC y no en VALID. ¿Por qué?

Modelado de datos

Porque tenemos que darle un esquema de datos sobre el que asentarse. Ahora mismo este evento está en un limbo, lo estamos recogiendo, pero no lo estamos diciendo dónde tiene que meterse. Es como si entrara en nuestra casa, pero lo dejáramos en la terraza sin posibilidad de entrar. Vamos a ver cómo podemos abrir la puerta para que se siente a nuestro lado.

Tendremos que entrar en Tealium, ir al apartado de Event Specs dentro de EventStream y generar un nuevo Event Specs, algo como esto:

¿Qué es lo que hace esto de aquí? Que ahora nuestro evento tenga un sitio al que ir. Es importante tener claro que los atributos que marquemos aquí serán los que vayan asociados a este Spec en concreto, y que podemos decir que son requeridos o no. Si los marcamos como requeridos y luego este atributo no aparece en el envío del evento, lo que obtendremos es un evento no válido. Vamos a ver qué es lo que hemos hecho en más detalle.

Si volvemos a hacer el proceso que hemos realizado anteriormente, lo que obtendremos ahora será algo como esto:

Es decir, tenemos ya el evento que estábamos lanzando desde el dataLayer correctamente recogido y mapeado en Tealium. Esto nos permitirá utilizar este evento para envíos desde el servidor a otras tecnologías o plataformas.

Conclusiones

Y con esto lo tendríamos: una solución para cargar todos los eventos de dataLayer en nuestro servidor de Tealium, de forma rápida y eficiente. Desde aquí se pueden hacer muchas cosas (filtrar para tener sólo algunos de los eventos, transformarlos antes de que lleguen, etc.), pero lo importante es conocer este método.

Por supuesto, no os lo toméis como el santo grial: lo fundamental siempre es que ese dataLayer, ya sea de Google, de Tealium o lo que sea, contenga la información verdaderamente relevante que queremos transportar. Si tenemos eso, lo demás es sólo encontrar el camino adecuado.

Deja un comentario