Un sitio web almacena muchos parámetros en dataLayer Google Analytics y dentro de una de mis funciones de JavaScript, estoy pensando en usar uno de los parámetros y usé el código a continuación para iterar entre las propiedades.
var articleId=0; var brandId=-1; $.each( dataLayer, function( key, value ) { console.log( key + ": " + JSON.stringify(value) ); }); algunos de los valores de JSON.stringify(value) son como a continuación
{"BrandID":0} {"BrandName":" Group"} {"Title":" announces electric cranes"} {"PageType":"Article"} {"ArticleID":8009988} {"ArticleTitle":" announces electric cranes"} {"ArticleLayout":"Standard"} {"ArticleTypeID":"1"} {"ArticleTypeName":"Article"} .......................................y muchos más
¿Cómo puedo obtener BrandID y ArticleID de esto? ¿Hay alguna forma de hacer esto sin iterar a través de todos los elementos de dataLayer?
Hay un método incorporado en la API del administrador de etiquetas de Google para obtener valores:
google_tag_manager['<container-id>'].dataLayer.get('gtm.start'); El container-id es el de su contenedor GTM, algo así como GTM-XXXXXXX
Editar : para obtener valores de varios contenedores en una página, puede recorrer cada contenedor después de obtener sus ID:
Algo como:
const containerIds = Object.keys(google_tag_manager).filter(key => key.includes('GTM-')); const values = containerIds.map(id => google_tag_manager[id].dataLayer.get('gtm.start')); console.log(values); // [value1, value2, ...]