Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

246
Views
¿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.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

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.

over 4 years ago · Santiago Trujillo Report

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>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!