Fri. Jan 3rd, 2025

Seguimiento de iframe entre dominios en Google Tag Supervisor


¡NOTA! Esta solución se ha actualizado y se puede encontrar el nuevo enfoque. aquí.

Si no estás familiarizado con la jerga, seguimiento entre dominios es un truco utilizado por Google Analytics para eludir el navegador net política del mismo origen. Básicamente, la política dicta que las cookies del navegador solo se pueden compartir con un dominio principal y todos sus subdominios. En otras palabras, dominioA.com y dominioB.com no comparta cookies.

Dado que Google Analytics calcula las sesiones y los usuarios mediante el uso de una cookie, esto resulta problemático. Si el usuario navega desde dominioA.com a dominioB.com, de forma predeterminada, navegará por dominioB.com en una sesión diferente (a menudo también con un usuario diferente) a la de dominioA.com.

Existen algunas guías excelentes para implementar el seguimiento entre dominios y quiero resaltar las Generoso artículo así como el conocimiento tutorial. Ambos tienen una excelente cobertura de este difícil tema, y ​​Knewledge ha dedicado muchas palabras a marco flotante seguimiento también.

En este artículo, quiero repasar el seguimiento de iframe una vez más y actualizar el método a GTM V2. Usaremos el hitCallback Método para decorar el iframe correctamente con parámetros de seguimiento entre dominios, para garantizar que cualquier seguimiento que se realice dentro se atribuya a la sesión unique (y al usuario).


incógnita


El boletín a fuego lento

Suscríbete al Boletín a fuego lento para recibir las últimas noticias y contenido de Simo Ahava en su bandeja de entrada de correo electrónico.

Nota rápida sobre el seguimiento de SUBdominios

Recuerde, se aplica el seguimiento entre dominios sólo para separar dominios principales. Si desea realizar un seguimiento del tráfico entre subdominios, no necesita seguimiento entre dominios. En cambio, sólo necesitas el cookieDomain campo establecido en sus Etiquetas y listo. Por suerte algún visionario ya ha escrito un guía sencilla sobre esto.

Variable de JavaScript personalizada

Para que todo funcione, todo lo que necesitará es una variable JavaScript personalizada. Bueno, y un easy ajuste en tu etiqueta de vista de página. Y algunas pruebas. Y buena suerte. Pero de todos modos, la variable JavaScript personalizada es lo que une todo.

Usaremos la variable en el hitCallback campo de la primera etiqueta que se activa en su sitio (debe ser la etiqueta de vista de página). Esta función de devolución de llamada recargará cualquier iframe de su elección con parámetros del vinculador, lo que significa que las etiquetas en el iframe se ejecutarán correctamente como parte de la sesión en curso.

Parámetro del vinculador es básicamente el ID de cliente único de su navegador (con algunas otras cosas), adjunto como parámetro de consulta al iframe src valor. Luego, el rastreador lo recoge en el iframe y lo utiliza para recrear el _Georgia cookie en el iframe. ¡Así es como funciona el truco entre dominios de Google Analytics!

Entonces, para comenzar, cree una nueva variable JavaScript personalizada y asígnele un nombre inteligente. he usado {{JS – hitCallback para iframe X-Dom}}pero puedes usar algo menos poético si lo deseas. Así es como se ve:

perform() {
  return perform() {
    attempt { 
      var gobj = window(window.GoogleAnalyticsObject);
      var iframe = doc.querySelector('#myIframe');
      var tracker, linker;
      if (gobj) {
        tracker = gobj.getAll()(0);
        linker = new window.gaplugins.Linker(tracker);
        iframe.src = linker.enhance(iframe.src);
      }
    } catch(e) {}
  }
}

Entonces, es hora de un recorrido línea por línea.

En la primera línea, estás declarando una función básica de JavaScript de GTM, que debe ser una función anónima. Nada especial aquí, siguiendo adelante.

return perform() { ... }

A continuación, estás regresando otra función, como hitCallback requiere una función como parámetro para que funcione correctamente. Además, al devolver una función, evitamos efectos secundarios no solicitados que se producirían si simplemente ejecutara métodos DOM globales en la función externa. Dado que estamos operando en un cierre, estamos restringiendo la ejecución de esta función a solo una vez que se llama, que es cuando hitCallback se ejecuta al remaining del proceso de envío de carga útil de Google Analytics.

Estamos envolviendo el código con un attempt...catch porque eso es simplemente una buena práctica. Puede agregar algún código de depuración en el catch(e) {} bloquea si lo deseas, pero por lo basic lo dejo chisporrotear en silencio.

var gobj = window(window.GoogleAnalyticsObject);
var iframe = doc.querySelector('#myIframe');
var tracker, linker;

Las siguientes tres líneas configuran algunas variables. Primero, estamos configurando gobj al nombre de la función world de Google Analytics. Nuevamente, esto es solo una buena práctica, ya que hay casos en los que desea cambiar el nombre de la función. ga a otra cosa. Con esta frase, nos aseguramos de referirnos siempre al objeto correcto.

La siguiente línea es importante. Aquí es donde recuperar el elemento iframe que desea modificar. Estoy usando un selector CSS easy para encontrar mi iframe (un elemento con el ID myIframe), así que recuerda cambiarlo para reflejar lo que quieras apuntar. Puede ejecutar este código en varios iframes si lo desea. Sólo necesita recorrer cada iframe y ejecutar el linker.enhance() método en cada uno.

También estamos declarando tracker y linker como variables de utilidad, que usaremos en un momento.

if (gobj) {
  tracker = gobj.getAll()(0);
  linker = new window.gaplugins.Linker(tracker);
  iframe.src = linker.enhance(iframe.src);
}

La parte remaining del código es donde ocurre la magia. Verificar la existencia del objeto world de Google Analytics es solo otra buena práctica que quizás desee emplear.

A continuación, inicializamos tracker con el primer rastreador de Google Analytics creado en la página. Como mencioné antes, lo ideally suited sería que este fuera el rastreador creado por su etiqueta de vista de página. Usamos el getAll() llamada a la función para recuperar todos los rastreadores creados en la página y luego elegir el primero con (0).

En la siguiente línea utilizamos el Google Analytics Linker complemento, inicializándolo con el rastreador recuperado. Este complemento es lo que usaremos para decorar el iframe. src con los parámetros correctos entre dominios. El complemento tiene un método de utilidad. enhanceque toma una cadena de URL como parámetro.

En otras palabras, estás actualizando el iframe. src valor con un decorado URL, y esta decoración en realidad agrega los parámetros correctos entre dominios a la URL.

Una vez que hayas escrito todo este código, recuerda guardar la Variable.

Finalmente, debe agregar esta nueva variable al hitDevolución de llamada campo de su etiqueta de vista de página.

Entonces, abra la etiqueta, busque Más configuraciones -> Campos para configurary agregue un nuevo campo:

¡Ahí vamos! Ahora hemos preparado con éxito el escenario para uno de los eventos más espectaculares de la naturaleza… Lo siento, he estado observando demasiado el Planeta Tierra.

¿Qué pasará?

Este es el proceso de lo que sucede la próxima vez que navegue por el sitio:

  1. La etiqueta de vista de página se activa y, una vez completada, su hitDevolución de llamada el campo se ejecuta

  2. Dado que a este campo se le devolvió nuestra función personalizada, se ejecuta el código que contiene.

  3. Este código toma el rastreador que se acaba de crear y decora los iframe(s) de su elección con parámetros de seguimiento entre dominios.

  4. El iframe se recargará (porque su src valor cambiado) con los parámetros de seguimiento entre dominios

¿Qué más necesitarás?

Ahora, cualquier etiqueta que se lively en el iframe debe tener la permitirEnlazador: verdadero conjunto de campos. Puede encontrar instrucciones para esto en el guía generosaPor ejemplo. Este pequeño y sencillo campo garantizará que la biblioteca Common Analytics busque parámetros de seguimiento entre dominios en la URL y los utilice para configurar el rastreador en el iframe.

En otras palabras, hemos evitado el efecto paralizante de la política del mismo origen en el intercambio de cookies al compartir una cookie. valor como parámetro de URL. La maravillosamente robusta biblioteca Common Analytics se encarga del resto.

Además, querrás aplazar que la etiqueta de vista de página se lively en la página de destino del iframe. ¿Por qué? Porque si no lo hizo, el iframe podría enviar una vista de página cuando se cargue por primera vez, y luego nuevamente cuando el iframe se vuelva a cargar con el truco. Al evitar que el iframe se lively en cualquier página cuyo referente sea no la URL del marco flotante y cuando la página está en un iframeevitará que las visitas a su página se cuenten dos o tres veces en el iframe. Para visitas posteriores a la página, querrá activar la etiqueta, porque refleja el comportamiento de navegación actual.

Además, si nos fijamos en el conocimiento tutorial, tienen una buena solución para no cargar el iframe en primer lugar, y solo cargarlo cuando hitCallback se ejecuta (o si hay algún problema con la carga de JavaScript).

Todo depende de ti, por supuesto. El conteo doble o triple no siempre es un problema.

Si tiene una situación en la que el iframe no está en el DOM a tiempo, es posible que también necesite agregar un setTimeout en el hitCallback para dar tiempo a que se full el DOM. Sin embargo, esto es muy raro en mi experiencia.

De todos modos, trabajar con iframes es bastante difícil, como probablemente puedas adivinar. Muchas cosas a las que prestar atención.

Esa fue una transición perfecta al capítulo remaining y una perorata bien merecida.

Resumen

Esta fue una guía bastante easy para configurar el seguimiento de iframe con parámetros entre dominios. Permítanme ser claro y dejar constancia de algo:

¡Los IFRAMES apestan!

Son horribles seres subterráneos de horror, lovecraftianos, que se arrastran desde los abismos inferiores de la oscuridad después del tañido de la campana de medianoche. Son matones en el patio de recreo; pequeños mocosos titulados que causan estragos en el marcado inocente. Son artefactos de la pereza humana, verdaderos ejemplos de Ley de Conway en movimiento. Son, en esencia, pequeños monstruos de mierda imposibles de rastrear que existen en el vacío entre los sitios net, sin rendir cuentas a nadie y peligrosos para todos.

Personalmente puedo atribuir alrededor del 45% de mi pérdida de cabello al trabajo con iframes, y me han arruinado el día demasiadas veces como para llamarlo coincidencia.

Si se ve obligado a trabajar con iframes, el seguimiento entre dominios puede ser la menor de sus preocupaciones.

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *