utag.view() y utag.link(): una guía para entender los ‘tracking calls’ de Tealium iQ

Un Tag Manager (TMS por sus siglas en inglés – Tag Management System) siempre da más rendimiento si se implementa junto a un data layer. Una capa de datos expone información sobre la página en la que está implementado y se puede actualizar con datos relativos a las interacciones de los usuarios en dicha página. El TMS puede entonces hacer uso de esta información y enviarla, por ejemplo, a una herramienta de terceros como Facebook.

Cada gestor de etiquetas se suele implementar junto a su propio tipo de data layer. Google Tag Manager (GTM), por ejemplo, se comunica con el llamado dataLayer. Tealium iQ, por su parte, trabaja con el Universal Data Object (UDO), también conocido como objeto utag_data. Ambos tipos de capas de datos sirven el mismo propósito, pero tienen sus estructuras y métodos particulares. Una parte muy importante de estos métodos son las funciones de ‘tracking’ (‘tracking calls’) que cada tag manager usa.

En este post voy a explicar las particularidades de las funciones de ‘tracking’ de Tealium iQ. Para ello me basaré en mi propia experiencia con este gestor de etiquetas y en la documentación e información que puedes encontrar en el ‘Tealium Learning Center’. Si no conoces este recurso, te animo a que lo consultes y uses. La información que puedes encontrar ahí no tiene precio, de verdad.

Siempre he estado muy involucrado en implementaciones y desarrollos a través de Google Tag Manager, por lo que empezaré con una breve descripción de cómo funciona el dataLayer de GTM. Creo que es muy útil de cara a entender cómo funciona el Universal Data Object (UDO) de Tealium iQ, o por lo menos a mi me ha ayudado mucho.

El dataLayer de Google Tag Manager (GTM) y el dataLayer.push()

El dataLayer de GTM es un array que contiene -en un primer momento- un único objeto. Se implementa en el código fuente de una página (en realidad hay otras muchas formas de hacerlo), por encima del ‘snippet’ de Google Tag Manager. De esta forma, cuando un navegador renderiza una página (el DOM se carga de arriba a abajo), GTM puede ‘leer’ los valores de esta capa de datos.
//dataLayer is declared and populated before the GTM snippet
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    'pageType': 'blog post',
    'pageCategory': 'tag managers',
    'pageTitle':'example title',
    'pageLanguage':'english'
  });
</script>

//Google Tag Manager snippet goes here
<!-- Google Tag Manager -->

<!-- End Google Tag Manager -->
Es posible añadir (empujar) nuevos valores al dataLayer de GTM una vez se ha cargado el DOM. Esto permite, entre otras cosas, poder trazar interacciones de usuarios en la propia página y se consigue a través de un método array: dataLayer.push(). El dataLayer de Google Tag Manager se aloja, al fin y al cabo, dentro de un array. Así las cosas, si quisieras trazar clics en un CTA determinado, podrías hacer uso del siguiente dataLayer.push():
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'eventCategory':'user interaction',
'eventAction':'cta click',
'eventLabel':undefined,
'event':'user interaction'
 });
</script>
Esta información llega al dataLayer, desde donde GTM puede ‘cogerla’ -junto con el resto de valores presentes en ese momento en el dataLayer- y enviarla a herramientas como Google Analytics o Google Ads.

El data layer de Tealium iQ: el Universal Data Object (UDO)

El Universal Data Object (UDO) de Tealium iQ no es un array que contenga un objeto, es de hecho un objeto javascript. Al igual que sucede con GTM, el objeto utag_data se debe implementar antes que el script que carga la librería asíncrona utag.js. Así, los parámetros de este objeto estarán disponibles para Tealium iQ.
<script>
  var utag_data={
    'pageType': 'blog post',
    'pageCategory': 'tag managers',
    'pageTitle':'example title',
    'pageLanguage':'english'};
</script>

<!--Script loading the utag.js file to be placed here-->

Los ‘tracking calls’ de Tealium iQ: utag.view() para trazar visualizaciones páginas

La llamada utag.view() se usa para trazar visualizaciones de páginas y se puede ejecutar de varias formas. De hecho, cuando un navegador carga el DOM se lanza de forma automática una llamada utag.view() al cargarse la librería utag.js. Este ‘tracking call’ enviará a Tealium iQ todo el objeto utag_data. De esta forma, los tags configurados para ejecutarse con esta llamada podrán hacer uso de esta información.

También puedes usar las llamadas utag.view() para trazar visitas a páginas virtuales. Un caso típico suelen ser los ‘sites’ desarrollados en Ajax. El usuario ‘visita’ varias páginas en su navegación por tu portal, pero la url no cambia. Así pues, una opción en este tipo de situaciones es pedir a tu equipo de Desarrollo que lance una llamada utag.view() para trazar la visualización de cada una de estas ‘virtual page views’.

En el contexto de una implementación de este tipo, estas llamadas no reprocesan el objeto utag_data que se cargó de forma inicial. Así pues, el objeto utag_data se debe volver a incluir en cada llamada utag.view() (actualizando los valores de forma consecuente – se pretende que cada página virtual sea, al fin y al cabo, una nueva página). La sintaxis de un ‘tracking call’ utag.view() es la siguiente:

//The utag.view() function takes three possible arguments: 
<script>
utag.view(data_object, callback, [uid_array]);
</script>
//Example of a utag.view() call including the data_object and the tag id's array
<script>
utag.view({
    'page_type': 'product category page',
    'page_category': 'books',
    'page_title':'our best selection of books',
    'page_language':'spanish',
    'tealium_event': 'page_view'
    },
    false,
    [23,76,3]
);
</script>

Como puedes ver, puedes incluir dos argumentos adicionales en este ‘tracking call’: una función ‘callback’ y un array. La función ‘callback’ es precisamente eso: una función a la que llamar cuando la llamada utag.view() se ejecuta. En código de ejemplo de arriba su valor se establece en null.

En cuanto al array, se usa para referenciar a tags en particular (en Tealium iQ cada etiqueta tiene un ID). Si se incluye este argumento, los load rules de estos tags se ignorarán y éstos se ejecutarán siempre que se lance esta llamada utag.view(). Así las cosas, el anterior código estaría ‘scoped’ a los tags de id 23, 76 y 3. Si no hubiese un array de id’s, la llamada estaría ‘scoped’ a todos los tags.

Los ‘tracking calls’ de Tealium iQ: utag.link() para trazar interacciones de usuarios

El ‘tracking call’ utag.link() se usa para trazar interacciones de usuarios en una página. Cuando un usuario realiza una acción que quieres trazar (enviar un formulario de contacto, por ejemplo), lanzar una llamada utag.link() hará que se ejecuten los tags y/o extensiones configurados en Tealium iQ para responder a esta interacción (es posible que debas configurar tus tags para responder a funciones utag.link() y/o utag.view())

En cuanto a la sintaxis de una llamada utag.link(), es la misma que en utag.view():

//The utag.link() function takes three possible arguments: 
<script>
utag.link(data_object, callback, [uid_array]);
</script>
//Example of a utag.link() including a data_object woth custom params for form tracking
<script>
utag.link({
    'form_type':'faq form',
    'form_category':'request info',
    'user_logged':'no',
    'tealium_event':'form successful submit'
})
</script>

Tal cual te he explicado antes, si incluyes un array de id’s de tags en esta llamada, sus ‘load rules’ se ignorarán y las etiquetas se ejecutarán.

Los parámetros incluidos en el objeto utag_data al cargarse la página no se pueden aprovechar en los ‘tracking calls’ utag.link(). Esto supone que si quieres usar uno de estos parámetros, debes volver a incluirlo dentro del objeto que contiene la llamada utag.link(). Esto es una diferencia sustancial con Google Tag Manager. Con GTM, si ejecutas un tag a través de un dataLayer.push(), puedes ‘pasar’ a la etiqueta los parámetros que incluyes en el propio .push(), pero también los que están presentes en este momento en el dataLayer.

De hecho, Tealium iQ te permite seleccionar qué variables del objeto utag_data quieres incluir de forma automática en cada función de ‘tracking’ (esto se configura en tus ‘Publish settings’). Aunque, todo sea dicho, he trabajado en proyectos en los que la recomendación ha sido la de incluir todo el objeto utag_data disponible en la carga de página inicial en cada llamada utag.link().

Entender esto ha sido un quebradero de cabeza para mí, no te lo negaré. Al fin y al cabo he trabajado en muchas más implementaciones y desarrollos de analítica vía GTM. Pero el caso es que cada gestor de etiquetas tiene sus particularidades.

El parámetro ‘tealium_event’

Fíjate de nuevo en los anteriores ejemplos de llamadas utag.view() y utag.link(). Verás que ambas incluyen un parámetro llamado ‘tealium_event’. Se trata de una variable reservada de Tealium iQ cuya finalidad es la de trazar determinados eventos predefinidos (páginas vistas, visitas a productos, búsquedas, etc.). No es obligatorio que la uses, pero si lo haces, Tealium sugiere que hagas uso de una lista de eventos predeterminada.

Usar la llamada utag.track() para trazar visitas a páginas e interacciones de usuarios

Hay una ‘tracking call’ adicional que se puedes usar en Tealium iQ: la función utag.track(). La puedes emplear tanto para trazar visitas a páginas como el ‘tracking’ de interacciones de usuarios. Su sintaxis es la misma que la de las llamadas utag.view() y utag.link(), con la única excepción que admite un argumento adicional: ‘view’ para trazar páginas vistas y ‘link’ para trazar interacciones de usuarios.

//The utag.track() function takes four possible arguments: 
<script>
utag.track(event_type, data_object, callback, [uid_array]);
</script>
//Updating the 'event_type' param to make a utag.view() call
<script>
utag.track('view', data_object, callback, [uid_array]);
</script>
//Updating the 'event_type' param to make a utag.link() call
<script>
utag.track('link', data_object, callback, [uid_array]);
</script>

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