Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwa wykonania skryptów dla jednego skryptu
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Blasius
Ponieważ kompletnie nie znam Javascriptu to proszę o banalną pomoc.
Ze strony:
https://www.dareboost.com/en/report/
na której sprawdzałem moją stronę dostałem informację, że:
"Poniższy skrypt jest analizowany i wykonywany wielokrotnie na Twojej stronie:
https://www.google-analytics.com/analytics.js (przetwarzane i wykonywane 2 razy)"
Większość nowoczesnych przeglądarek internetowych pobiera tylko raz skrypt dołączony 2 razy. Utrzymuje się wyjątek: Firefox, który ładuje zasób tyle razy, ile wspomniano, jeśli nie skonfigurowano skutecznej polityki buforowania.
Istnieje rozwiązanie polegające na wielokrotnym użyciu skryptu bez parsowania i wielokrotnego wykonywania. Musisz napisać kod JavaScript, który sprawdzi, czy skrypt jest obecny. Jeśli skrypt jest już dołączony, po prostu go używa, w przeciwnym razie wstrzymuje go i używa.
Pogrubiona linia sprawdza obecność skryptu w dokumencie. Skrypt jest więc dołączany, analizowany i wykonywany tylko podczas pierwszego wywołania na stronie. Inne wywołania będą wypadać w przypadku pogrubionej linii, a zatem po prostu użyją skryptu, który jest już dołączony i wykonany.

I podany został z widżetem Facebooka:
  1. (function(d, s, id){
  2. var js, fjs = d.getElementsByTagName(s)[0];
  3. if (d.getElementById(id)) {return;}
  4. js = d.createElement(s); js.id = id;
  5. js.src = "//connect.facebook.net/en_US/sdk.js";
  6. fjs.parentNode.insertBefore(js, fjs);
  7. }(document, 'script', 'facebook-jssdk'));

Podany został link do artykułu o tym problemie:
https://calendar.perfplanet.com/2014/the-pain-of-duplicate-scripts/, ale moja żadna znajomość JS nie pozwoliła mi na na jakiekolwiek kombinacje.
Czy mogę wobec tego prosić o przerobienie powyższego skryptu na taki dotyczący https://www.google-analytics.com/analytics.js?
Chyba, że istnieje jakiś prostszy sposób?
com
Pokaz jak ładujesz swój kod GA bo powinien wyglądać tak:

[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  3. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  4. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  5. })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  6.  
  7. ga('create', 'UA-XXXXX-Y', 'auto');
  8. ga('send', 'pageview');
  9. </script>
[JAVASCRIPT] pobierz, plaintext


Blasius
Poniżej są moje wszystkie skrypty Googletagmanager:

[JAVASCRIPT] pobierz, plaintext
  1. <!-- Global site tag (gtag.js) - Google Analytics -->
  2. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X"></script>
  3. <script>
  4. window.dataLayer = window.dataLayer || [];
  5. function gtag(){dataLayer.push(arguments);}
  6. gtag('js', new Date());
  7.  
  8. gtag('config', 'UA-XXXXXXXXX-X');
  9. gtag('set', {'user_id': 'UA-XXXXXXXXX-X'});
  10. </script>
  11. <!-- Google Tag Manager -->
  12. <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  13. new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  14. j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  15. 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  16. })(window,document,'script','dataLayer','GTM-YYYYYYY');</script>
  17. <!-- End Google Tag Manager -->
  18. <!-- Google Tag Manager (noscript) -->
  19. <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-YYYYYYY"
  20. height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  21. <!-- End Google Tag Manager (noscript) -->
[JAVASCRIPT] pobierz, plaintext

I do tego 2 linki:
<link rel="preconnect" href="https://www.googletagmanager.com" />
<link rel="preconnect" href="https://www.google-analytics.com" />

Tego podanego przez Ciebie nie mam.
Czy jego brak coś zmienia?
trueblue
Z tego co widzę, to używasz tagu gtag.js oraz GTM. Musisz zdecydować się na jeden z nich.
com
tak jak @trueblue napisał musisz uzywac jednego to po pierwsze, po drugie dziś Google już zmieniło ładowanie GA na ten kod co pokazałem, tak jak Ty masz robiło się to kiedyś dawno wink.gif ale skoro masz gtm to nim ląduj ga najlepiej smile.gif
Blasius
Dzięki za odpowiedzi!
Jak rozumiem powinienem zostawić tylko
[JAVASCRIPT] pobierz, plaintext
  1. <!-- Google Tag Manager -->
  2. <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  3. new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  4. j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  5. 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  6. })(window,document,'script','dataLayer','GTM-YYYYYYY');</script>
  7. <!-- End Google Tag Manager -->
  8. <!-- Google Tag Manager (noscript) -->
  9. <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-YYYYYYY"
  10. height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  11. <!-- End Google Tag Manager (noscript) -->
[JAVASCRIPT] pobierz, plaintext

Pozostanie tylko ten drugi id=GTM-YYYYYYY.
To w takim razie co z moim id=UA-XXXXXXXXX-X?
Ten id GTM wystarczy?

Hop, hop...
Czy mogę uzyskać odpowiedź na moje pytania?
Gdzieś przeczytałem, że:
Google Analitics to przecież narzędzie analityczne, a Menedżer Tagów przypisuje reguły do tagu i nie śledzi ani nie zbiera danych, dopóki nie doda się identyfikatora Google Analytics w jego konfiguracji.

Jak mam zatem ładować GA za pomocą GTM?
Chyba nie można nic dodawać do ich skryptu?

[JAVASCRIPT] pobierz, plaintext
  1. <!-- Google Tag Manager -->
  2. <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  3. new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  4. j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  5. 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  6. })(window,document,'script','dataLayer','GTM-YYYYYYY');</script>
  7. <!-- End Google Tag Manager -->
  8. <!-- Google Tag Manager (noscript) -->
  9. <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-YYYYYYY"
  10. height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  11. <!-- End Google Tag Manager (noscript) -->
[JAVASCRIPT] pobierz, plaintext


Można prosić o podpowiedź?
trueblue
Hop, hop, a masz Google? Skoro znalazłeś "gdzieś" powyższą informację, to może znalazłeś też: https://www.grupa-tense.pl/blog/google-tag-...yczny-poradnik/
Blasius
Dzięki!
Akurat tej strony nie znalazłem.
Świetny poradnik. Sorry za gapiostwo... facepalmxd.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2021 Invision Power Services, Inc.