En mi sitio, tengo un objeto de página que contiene varios bits de información sobre la página que se está viendo actualmente y que quiero enviar a la capa de datos. (Título, descripción, tipo de página, etc).
La mayor parte de esta información está disponible en la carga de la página, sin embargo, hay una información que solo está disponible después de una solicitud ajax. ¿Es posible enviar este objeto a la capa de datos como un objeto incompleto cuando está disponible en la página varias veces y hacer que GTM reconozca que es el mismo objeto y lo combine internamente?
Quiero hacer algo como esto:
<!-- within <head> (available on page load)--> dataLayer.push({ "page":{ "title": "my_page_title", "description": "my_page_description" }); (Page completes rendering) <!-- part of AJAX success response --> dataLayer.push({ "page":{ "purchasable": true });y que GTM lo interprete igual que si fuera a hacer:
dataLayer.push({ "page":{ "title": "my_page_title", "description": "my_page_description", "purchasable": true });Actualmente, estoy enviando el objeto de la página completa a la capa de datos después de la respuesta de ajax, pero me solicitan que intente mover todo a la carga de la página. Pasar a la carga de la página es más complicado, por lo que estoy tratando de ver si esto sería posible como una solución alternativa.
Dentro de GTM, tenemos etiquetas para asignar este objeto de página a una dimensión personalizada. Sin embargo, no formo parte del equipo que realiza esta configuración, por lo que no tengo mucha información sobre esa parte.
El GTM fusiona objetos automáticamente en su modelo de datos interno, cuando crea una variable DataLayer "Versión 2".
Por lo tanto, podría crear una variable DataLayer que acceda a la page de claves. En su código puede emitir un evento personalizado cuando todos los datos de la página estén disponibles:
// Page Load dataLayer.push({ page: { title: "my_page_title", }, }); dataLayer.push({ event: "page_info", page: { purchasable: true, }, }); Cuando activa una etiqueta en su evento personalizado page_info que hace referencia a la variable dataLayer DLV - page , tendrá acceso al objeto combinado.
{ title: "my_page_title", purchasable: true }Puede usar el modo de depuración GTM para probar esto.