5

Na naszej stronie mamy tagi skryptów do usług stron trzecich, takich jak Lotame, Peer39 i Google Analytics, w stopce tuż przed zamykającym tagiem body, aby uniknąć blokowania renderowania strony. W miarę możliwości skracamy lub asynchronizujemy skrypty, ale niektóre z nich nie działają z ładowaniem asynchronicznym i muszą być pozostawione jako zwykłe tagi. Przesyłamy także naszą drugą usługę analityczną kilka danych o zawartości każdej strony, co oznacza, że ​​zdecydowaliśmy się uwzględnić to również w stopce.Menedżer tagów Google - a co ze skryptami w stopce?

Obecnie patrzymy na użycie Google Tag Manager, aby uwzględnić dla nas zewnętrzne skrypty. Aby zaimplementować GTM, Google zaleca umieszczenie ich blok kodu

<!-- Google Tag Manager --> 
<noscript> 
    <iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXX" 
      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.js?id=' + i + dl; 
     f.parentNode.insertBefore(j, f); 
    })(window, document, 'script', 'dataLayer', 'GTM-XXXXXX');</script> 
<!-- End Google Tag Manager --> 
zaraz po początkowym tagu. To będzie punkt, w którym GTM zacznie żądać tagów. Rozumiem, że ta pozycja jest zalecana, aby uniknąć problemów z IE6 i IE7.

GTM nie daje żadnego sposobu na określenie kolejności ładowania skryptów. Obawiam się, że jeśli postąpię zgodnie z tą radą, będę przenosił żądania do plików skryptów synchronicznych ze stopki, gdzie bezpiecznie odstąpią od głównej treści, do nagłówka.

Czy niepotrzebnie się niepokoję? Wydaje się zbyt skomplikowane, aby utworzyć drugie kontenery GTM do zarządzania skryptami stopek. Czy byłoby sens umieścić blok kodu GTM w stopce, jeśli nie obsługuję IE7, biorąc pod uwagę, że niektóre z moich skryptów znajdują się obecnie w nagłówku?

+0

Tylko komentowanie umieszczenia tylko GTM: jeśli umieścisz GTM w dalszej części strony, istnieje większe prawdopodobieństwo, że interakcje, które powinny być śledzone za pomocą GTM, mogą zostać pominięte, jeśli użytkownik uruchomi te interakcje przed GTM ma szansę załadować. Ponadto, jeśli użytkownik wejdzie na stronę, a następnie szybko przejdzie na inną stronę, ponownie przed załadowaniem Menedżera tagów Google, możesz w ogóle przegapić odsłony strony. – nyuen

+0

OK dzięki nyuen, to ma sens. –

Odpowiedz

4

Jeśli usługi innych firm muszą być synchroniczne, najlepiej pozostaw je poza Menedżerem tagów Google (źródło: Are there tags that Google Tag Manager does not support?); jest okej. Często ma to miejsce w przypadku narzędzi do testowania witryny, w których rzeczywiście trzeba wczytać zawartość przed renderowaniem strony. W przeciwnym razie pojawi się migotanie.

Ponadto GTM oferuje priorytetyzację, kiedy należy uruchamiać tagi - patrz: Can I prioritize how tags are fired.

TLDR; wyrzuć wszystkie swoje tagi asynchroniczne do GTM i pozostaw swoje tagi synchronizacji.

+0

Wielkie dzięki Blexy, że to odpowiada! –

2

Można także uruchamiać tagi GTM, gdy załadowany jest DOM lub gdy strona jest w pełni załadowana, warunek bardzo bliski umieszczenia znacznika przed znacznikiem </body>.

W pierwszym przypadku utwórz nowy wyzwalacz Page View > DOM Ready, w drugim utwórz Page View > Window Loaded.

+0

Ah dzięki Franceso, to bardzo przydatne wiedzieć! –

Powiązane problemy