Z tego przewodnika dowiesz się, jak przekonwertować istniejący niestandardowy tag HTML na używaj JavaScriptu w trybie piaskownicy.
W tym samouczku będzie używany interfejs API injectScript
. injectScript
to typowa odmiana
Interfejs API używany do konwersji istniejącego tagu, który korzysta ze skryptów firm zewnętrznych. Te
tagi często konfiguruje podstawowe funkcje podczas wczytywania skryptu, a następnie rozszerzają je o
dodatkowe funkcje po wczytaniu skryptu.
Pierwotny tag
<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->
Konwertowanie kodu
Weź pod uwagę fragment kodu JavaScript w tagu powyżej:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
Aby utworzyć niezbędny JavaScript w trybie piaskownicy, sprawdź, jaki natywny kod JavaScript interfejsów API, z których korzysta ten skrypt, i przekonwertuj swój kod na odpowiedniki w trybie piaskownicy API JavaScript.
Na przykład w tagu analytics.js
używane są te natywne interfejsy API JavaScript:
Natywny kod JavaScript | JavaScript w trybie piaskownicy |
---|---|
window.ga |
setInWindow |
arguments |
createArgumentsQueue |
+ new Date |
getTimestamp |
Aby używać w skrypcie interfejsów API JavaScript w trybie piaskownicy, musisz je wykonać w skrypcie require
.
Aby na przykład korzystać z interfejsu API setInWindow()
, dodaj go na początku skryptu:
const setInWindow = require('setInWindow');
Następnie przelicz window.ga
:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)}
// becomes
const createArgumentsQueue = require('createArgumentsQueue');
const ga = createArgumentsQueue('ga', 'ga.q');
Następnie przekonwertuj projekt ga.l
:
ga.l=+new Date;
// becomes
const getTimestamp = require('getTimestamp');
setInWindow('ga.l', getTimestamp(), true);
Na koniec przekonwertuj oba wywołania na ga()
:
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
// becomes
const trackingId = data.trackingId;
ga('create', trackingId, 'auto');
ga('send', 'pageview');
Aby użyć szablonu data.trackingId
, dodaj pole do szablonu:
Otwórz kartę
Fields
i kliknijAdd Field
.Wybierz typ pola
Text input
.Zmień identyfikator z
text1
natrackingId
.
Na tym etapie masz już przekonwertowany pierwszy tag <script/>
, ale potrzebujesz też
by wczytać skrypt pomocniczy.
Aby to zrobić:
<script async src='https://www.google-analytics.com/analytics.js'></script>
// becomes
const injectScript = require('injectScript');
const url = 'https://www.google-analytics.com/analytics.js';
injectScript(url, data.gtmOnSuccess, data.gtmOnFailure, url);
Przekazywanie cacheToken
do injectScript()
umożliwia optymalizację. W przypadku atrybutu
w tych scenariuszach skrypt analytics.js
zostanie wczytany tylko raz:
- Tag uruchamiany wiele razy
- Więcej niż 1 tag z tego szablonu niestandardowego w tym samym kontenerze.
- Inne szablony niestandardowe, które korzystają z szablonu
injectScript()
z tym samym identyfikatoremcacheToken
Uprawnienia
Jeśli próbujesz uruchomić ten kod wcześniej, możesz zauważyć, w konsoli.
Te błędy pojawiają się, ponieważ JavaScript w trybie piaskownicy wymaga zadeklarowania
używane wartości i adresy URL. W tym przykładzie potrzebujesz dostępu do: ga.q
,
ga.l
i ga
zmiennych globalnych, a chcesz dodać skrypt, który jest hostowany
o https://www.google-analytics.com/analytics.js
.
Aby skonfigurować uprawnienia funkcji Global Variables
:
Przejdź na kartę
Permissions
, RozwińAccesses Global Variables
i i kliknijAdd Key
.Użyj klucza
ga
i zaznacz pola wyboruRead
,Write
iExecute
Powtórz ten proces dla elementów
ga.q
iga.l
. Pamiętaj, że te pola nie wymagają uprawnieniaExecute
.
Jeśli ponownie klikniesz Uruchom kod, w konsoli pojawi się nowy błąd.
Tym razem błąd dotyczy: Inject Scripts
.
Aby skonfigurować uprawnienie Inject Scripts
:
Dodaj
https://www.google-analytics.com/analytics.js
doAllowed URL Match Patterns
.
Teraz gdy klikniesz Uruchom kod, konsola nie powinna już zawierać błędów. Masz
Tag został przekonwertowany na szablon niestandardowy. Kliknij Save
.
i używać go tak samo jak dowolnego innego tagu w Menedżerze tagów Google.
Tag w pełni skonwertowany
Końcowy wynik JavaScriptu w trybie piaskownicy powinien wyglądać tak:
const setInWindow = require('setInWindow');
const copyFromWindow = require('copyFromWindow');
const createArgumentsQueue = require('createArgumentsQueue');
const getTimestamp = require('getTimestamp');
const injectScript = require('injectScript');
const trackingId = data.trackingId;
const ga = createArgumentsQueue('ga', 'ga.q');
setInWindow('ga.l', getTimestamp(), false);
ga('create', trackingId, 'auto');
ga('send', 'pageview');
const url = 'https://www.google-analytics.com/analytics.js';
injectScript(url, data.gtmOnSuccess, data.gtmOnFailure, url);