debugging - manager - google analytics debugger
Error de "código inaccesible después de la declaración de devolución" en el código JS de Google Analytics en Firefox. ¿Es culpa mía? (3)
Estoy usando el código de seguimiento actual de Google Analytics, y en Firefox 59 recibo este error en la consola:
Código inalcanzable después de la declaración de retorno
En este javascript: https://www.googletagmanager.com/gtag/js?id=UA-my-tracking-code:formatted
Dado que este problema no parece ser fácil de detectar, por lo que parece que otros no tienen este problema, supongo que soy yo quien hace algo mal. Pero, ¿qué podría ser esto?
Estoy poniendo el fragmento en <head>
, como dicen los documentos:
<!DOCTYPE html>
<html>
<head>
<title>some title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-my-tracking-code"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(''js'', new Date());
gtag(''config'', ''UA-my-tracking-code'');
</script>
</head>
<body>
blah blah
</body>
</html>
El problema no ocurre con todas las versiones del código de seguimiento.
gtag
Este fragmento de código, usando gtag
, causa el unreachable code after return statement
advertencias de la unreachable code after return statement
(en Firefox):
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-YY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(''js'', new Date());
gtag(''config'', ''UA-XXXXXX-YY'');
</script>
Fuente: la sección Admin en Google Analytics: Admin › Tracking Info › Tracking Code
, última actualización que Dios sabe cuándo.
analíticas.js
Este fragmento de código, que utiliza analytics.js
, no activa el error:
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga(''create'', ''UA-XXXXXX-YY'', ''auto'');
ga(''send'', ''pageview'');
</script>
<script async src=''https://www.google-analytics.com/analytics.js''></script>
Tomado de la documentación oficial: Agregar analytics.js a su sitio (segundo ejemplo de código), "Última actualización 30 de julio de 2018."
Recuerde actualizar XXXXXX-YY
con su propia identificación de propiedad.
¿Cuáles son las diferencias?
Desde la sección Admin:
La etiqueta de sitio global (gtag.js) y el Administrador de etiquetas de Google son los métodos de seguimiento recomendados para las nuevas implementaciones. También hay opciones de implementación adicionales disponibles, que incluyen analytics.js y el Protocolo de medición. Obtenga más información sobre métodos de seguimiento adicionales.
Utilice analytics.js
La biblioteca gtag.js es el código de seguimiento recomendado para nuevas implementaciones. Sin embargo, puede haber casos en los que prefiera usar analytics.js (por ejemplo, su sitio ya utiliza analytics.js). Consulte la documentación del desarrollador para obtener más información.
Mi TOC no dejará que esto sea. Las advertencias son tan malas como los errores en mi cerebro ... jajaja
La respuesta provista por @Me me llevó a realizar lo siguiente:
- Vaya a la url en la etiqueta
<script async src="https://www.googletagmanager.com/gtag/js?id={Google Analytics Id here}"></script>
y obtenga una copia del JavaScript. - Colóquelo en un archivo en mi solución y reemplace el control remoto js src con esta nueva copia local.
- Vuelva a formatear el archivo (prettify).
- Comente la línea ofensiva (si no se puede alcanzar como está, no espero que se produzca un daño terrible simplemente quitándola).
La advertencia ya no existe, y hasta ahora todo parece estar funcionando, no hay errores / advertencias adicionales o nuevos en la consola y parece que aún no se están recibiendo datos de Analytics / Tracking.
Claramente, esta no es una solución ideal. Tendré que continuar monitoreando esto hasta que: a) Google arregle su código (que, por cierto, omite los puntos y comas por todas partes - dudo que se acerque a pasar un Linter) o b ) Google realiza otros cambios en el código, lo que provoca que la mía se rompa o que My Analytics deje de informar.
No es tu culpa. Si prefieres el código con Firefox, puedes encontrarlo aquí:
Gc = function (a, b, c) {
var d = a.split(''.'');
var e = function (a, b) {
for (var c = 0; void 0 !== a && c < d.length; c++) {
if (null === a) return !1;
a = a[d[c]]
}
return void 0 !== a || 1 < c ? a : b.length ? e(Hc(b.pop()), b) : Ic(d)
};
return e(Cc.eventModel, [ // <= True return value
b,
c
]);
return Ic(d) // <= This can never be reached!
},
Para prettificar el código:
- Haga clic en el enlace azul de la advertencia. Verás el código confuso.
- Haga clic en el icono con la
{}
en la parte inferior izquierda de ese panel para pretenderlo. Sin embargo, la referencia se perderá. - Vuelva al panel "Consola" y haga clic nuevamente en el enlace azul de la misma advertencia. Ahora verás la referencia original en la línea correcta.
Firefox está apuntando correctamente al error, nunca se alcanzará la función Ic(d)
ya que la función regresa antes. Parece un error del Administrador de etiquetas de Google, sin embargo, sin inspeccionar el código original, no podemos determinar la gravedad.