Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
¿Administrador de etiquetas de Google retrasa la carga de la ventana?

Tengo una página que dispara una llamada ajax al cargar

 $(window).load(function() { updateDeliverySlots(); });

También tengo javascript de Google Tag Manager en la parte superior de mi cuerpo (sé que la sugerencia actual es colocar esto en la sección principal , pero aún no hemos actualizado el código y no creo que esa sea la fuente del problema) ).

 <body> <!-- Google Tag Manager --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=XXXX" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src='//www.googletagmanager.com/gtm.jsid='+i+dl;f.parentNode.insertBefore(j,f); }) (window,document,'script','dataLayer','XXXX'); </script> <!-- End Google Tag Manager --> .... </body>

Tengo un problema con una de las llamadas que hace un script incluido en una etiqueta GTM. Este script envía una solicitud a un tercero. Si la solicitud no se puede conectar por cualquier motivo (p. ej., el servidor está inactivo), mi función updateDeliverySlots() (y la llamada ajax en ella) no se activa hasta que se agota el tiempo de espera de la solicitud (60 segundos). También encuentro que la página todavía está 'cargando' (según los íconos del navegador).

¿Hay algo en mi implementación de GTM que estoy haciendo mal? Entendí que todo lo que se dispara en la parte posterior de las etiquetas de Google debería ser asíncrono y no tendría relación con la "preparación" de la página.

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los scripts sincrónicos deben recuperarse y ejecutarse cuando el procesamiento los alcance, los scripts asíncronos pueden ejecutarse en cualquier momento después de que el procesamiento los alcance.

Dependiendo del tiempo que esté fuera del control del servidor/páginas, un script asíncrono puede, por lo tanto:

  • agregue un recurso síncrono antes de que termine el documento, con un tiempo que retrase el evento de carga
  • agregue un recurso síncrono después de que se procese la página y no afecte el evento de carga.
  • agregue un recurso asíncrono que no debería afectar significativamente la página (a menos que a su vez agregue un recurso síncrono a la página)

Puede elegir una de varias opciones para resolver esto en GTM:

  1. arreglar los scripts personalizados para usar recursos asíncronos
  2. cambie el gatillo de disparo a page view -> window loaded
  3. reemplace los scripts con las etiquetas proporcionadas por Google (si están disponibles), ya que deben construirse para usar solo recursos asíncronos
  4. Bloquear scripts personalizados en GTM (lo que también evitará el seguimiento relacionado)

  5. Cambie async para diferir en su fragmento de GTM.

Es decir:

 <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXXX');</script> <!-- End Google Tag Manager -->

Dado que esto mueve todo el proceso GTM después de que la página se analiza por completo, romperá las etiquetas "Google Optimizer" y el seguimiento de la página inicial.

about 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema y GTM realmente estaba retrasando la ejecución de otros scripts. Un pequeño cambio para cargarlo con jquery $(window).load resolvió el problema:

 <script>function loadgtm(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); };$(window).load(function(){loadgtm(window,document,'script','dataLayer','GTMID');});</script>
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda