De utag_data a utag.data: cómo se procesa el data layer ‘Universal Data Object’ (UDO) de Tealium iQ

Tealium iQ trabaja con un data layer conocido como el ‘Universal Data Object’ (UDO), un objeto javascript sencillo que se declara por delante de la librería utag.js. Esta capa de datos pasa por varios estados. Se inicializa como un objeto llamado utag_data y se procesa y amplía con más información para pasar a denominarse utag.data. Es en este momento cuando su información puede usarse en la configuración de este gestor de etiquetas (tags, extensiones, ‘load rules’, variables…)

Entender este proceso bien y saber qué información expone a Tealium IQ su data layer en cada momento es importante. Así las cosas, en este post te voy a explicar cómo se procesa el objeto utag_data hasta convertirse en el objeto utag.data. Ojalá te sirva y ayude en tus implementaciones

El objeto utag_data, a.k.a Universal Data Object (UDO)

Como te decía al comienzo de este post, el data layer de Tealium iQ se conoce como ‘Universal Data Object’ (UDO) y se inicializa con el nombre utag_data, por delante de la librería utag.js. De esta forma, Tealium puede procesar los valores de esta capa de datos cuando se carga.

Para ilustrar este post voy a usar la ‘home’ del ‘ecommerce’ de prueba que Tealium pone a tu disposición. Si inspeccionas el código fuente de la página puedes ver el objeto utag_data, fíjate:

El objeto utag_data, declarado por delante de la librería utag.js. Así, cuando Tealium iQ empiece a ejecutarse tendrá los valores de esta capa de datos disponibles.
Este es el ‘Universal Data Object’ (UDO) de Tealium iQ, el data layer que implementará tu equipo de desarrollo en cada página de tu ‘site’ conforme a tu definición. utag_data es una variable global del objeto window. Así las cosas, puedes la inspeccionar en la consola de tu navegador escribiendo window.utag_data o utag_data sin más. Fíjate:
El objeto utag_data en la consola de depuración de tu navegador. ¿Puedes ver las diferencias con respecto al data layer que declara en el código fuente de la página?
¿Notas algo? ¿Ves algo raro? En efecto, el objeto utag_data que imprime tu consola de depuración tiene más propiedades que el objeto declarado antes de la librería utag.js. ¿Por qué es esto? Porque el objeto utag.data ya se ha procesado y está disponible: se ha creado como una referencia al objeto utag_data. En javascript, cuando dos objetos están referenciados los cambios que se hacen en uno afectan al otro, y viceversa, En otras palabras: estás viendo en el objeto utag_data los cambios que se han procesado en el objeto utag.data. Pero me estoy adelantando. De momento basta con ver que el Universal Data Object (UDO) ha cambiado de estado: utag_data es ahora utag.data.

El objeto utag.data: el data layer de Tealium iQ se enriquece con más datos

Llegados a este punto toca hablar del ‘Tealium iQ order of operations’ (‘orden de operaciones’ en castellano). Tealium sigue un orden determinado en la ejecución de sus procesos, y esto influye sobre la lógica que puedas haber configurado en este tag manager: extensiones, tags, ‘load rules’… y el data layer. No voy a entrar a describir en detalle este ‘order of operations, pero si lo voy a enumerar para que veas en qué momento se procesa el objeto utag_data:

  • utag Sync. (este es el primer paso del orden de ejecución de Tealium iQ, pero sólo si se ha implementado la librería utag.sync.js)
  • Pre loader. En este momento Tealium iQ procesa el Universal Data Object (UDO), es decir, el objeto utag_data, que pasa a ser el objeto utag.data
  • Before load rules
  • After load rules
  • Prioritized tags
  • DOM Ready
  • After tags

Como ves, es en el segundo paso de su orden de operaciones cuando Tealium procesa el objeto utag_data y lo referencia en el objeto utag.data. En este instante, el Universal Data Object (UDO) se enriquece y amplía con más datos que pueden estar presentes en tu página web: componentes de la url (host, pathname, query strings..), variables javascript, etiquetas meta, configuraciones hechas con extensiones… Cada una de estas ‘fuentes de datos’ (por así decirlo) se identifica con un prefijo determinado en el objeto data layer (justo debajo incluyo unas capturas de pantalla a modo de ejemplo).

Es esta versión final de la capa de datos de Tealium iQ la que puedes explotar y aprovechar en tu configuración en este tag manager.

Las propiedades del objeto utag.data (y por lo tanto también las del objeto utag_data) que exponen información relativa a cookies vienen precedidas por el literal 'cp.'
Las variables que hace referencia a propiedades del DOM se referencian con el pregijo 'dom.'
Tal cual lo acabas de pensar: las propiedades del data layer de Tealium iQ que hacen referencia a las meta etiquetas que puedas tener en tu 'site' se referencian con el prefijo 'meta.'

El objeto utag.data es dinámico. Se procesa conforme a la información disponible en todas estas ‘fuentes de datos’. Te pongo un ejemplo: si el objeto document.location (la url de la página) incluye unos query stings, éstos se capturan en el data layer. Si estos parámetros de consulta no están disponibles en la url, no se exponen en la capa de datos.

El objeto utag.data recoge y expone el query string de prueba 'testQueryParam'.

El objeto data layer b: una copia local del data layer de Tealium iQ

Este post no estaría completo sin hablar del objeto data layer b: una copia local de la última versión del data layer (es decir, del objeto utag.data) que puede usarse en los tag templates y extensiones de Tealium iQ. Tiene dos ventajas con respecto a referenciar directamente al objeto utag.data:

  1. Al ser un nombre más corto (‘b’) es más eficiente desde el punto de vista del tiempo de carga de una librería javascript en un ‘site’.
  2. Al ser una copia local, el objeto data layer b de Tealium iQ se puede modificar sin temor a romper o modificar el objeto global del que se nutre el resto de tu configuración.

También puedes usar el objeto data layer b en tus tracking calls utag.view() y utag.link(), pero en este caso el objeto b es una copia del objeto que has pasado a cada uno de estos tracking calls, y no del objeto utag.data procesado en la carga del DOM.

Reflexiones finales

Tealium iQ ofrece un soporte online de primera categoría. Yo siempre he estado más involucrado en implementaciones y desarrollos de analítica vía Google Tag Manager (GTM). Cuando he tenido ponerme manos a la obra con Tealium, su documentación ​ y comunidad ‘online’ me han servido de mucha ayuda.

Cuando empecé a investigar sobre el tema desarrollado en este post, en seguida encontré una entrada en la comunidad de Tealium que hacía referencia justo a la diferencia entre los objetos utag_data y utag.data. No lo dudes, trabaja con la documentación de Tealium iQ a mano. Es un recurso de mucho valor.

pornance.net
www.fuck-videos.net
zettaporn.com