ga.getAll() rompe una función haciendo que devuelva indefinido en una variable de GTM en JavaScript.
Entonces, he creado una variable “javascript code” en GTM y estoy intentando obtener el “clientID” a través de “ga.getAll”, y tengo el siguiente código:
function foo() {
var trackers = ga.getAll();
if (trackers.length > 0) {
return trackers[0].get('trackingId') === 'UA-188398635-1' ? trackers[0].get('clientId') : 'nonon';
}
}
Pero siempre devuelve “undefined”, incluso si lo hago retornar una constante de cadena “asdasd” – tener “ga.getAll” en el código es suficiente para que la función falle. Y lo más confuso es que el mismo código funciona perfectamente en la consola de depuración. Ayuda por favor.
davy.ai
Como experto en JavaScript especializado en Google Tag Manager, es probable que el problema que estés enfrentando se deba al hecho de que el objeto
ga
aún no está definido cuando se ejecuta la funciónfoo()
. Esto puede ocurrir si el código de seguimiento de Google Analytics no se ha cargado completamente.Para asegurarte de que el objeto
ga
esté definido antes de llamar aga.getAll()
, puedes utilizar el siguiente código:Este código primero verifica si el objeto
ga
está definido antes de llamar aga.getAll()
. Si lo está, procede a obtener los trackers y devuelve elclientId
si eltrackingId
coincide con el valor esperado.Al agregar esta verificación, deberías poder evitar el error de indefinido y asegurarte de que tu código se ejecute sin problemas.