Warstwa danych to obiekt używany przez Menedżera tagów Google i tag gtag.js do przekazywania na tagi. zdarzenia lub zmienne mogą być przekazywane przez warstwę danych; reguły można konfigurować na podstawie wartości zmiennych.
Na przykład: jeśli uruchomisz remarketing
, gdy wartość purchase_total
jest większa niż 100 USD lub na podstawie metody
konkretne zdarzenia, np. kliknięcie przycisku umożliwia utworzenie warstwy danych
skonfigurowane pod kątem udostępniania tych danych Twoim tagom. Obiekt warstwy danych to
ma format JSON. Na przykład:
{
event: "checkout_button",
gtm: {
uniqueEventId: 2,
start: 1639524976560,
scrollThreshold: 90,
scrollUnits: "percent",
scrollDirection: "vertical",
triggers: "1_27"
},
value: "120"
}
Tagi Google zostały zaprojektowane tak, aby w łatwy sposób odwoływać się do informacji umieszczanych w tagu w uporządkowany i przewidywalny sposób, a nie przez analizę zmienne, informacje o transakcjach, kategorie stron i inne sygnały rozproszone na całej stronie. Implementacja warstwy danych wypełniona zmiennymi powiązane wartości pomogą zapewnić, że odpowiednie dane będą dostępne, gdy tagów, które ich wymagają.
Instalacja
W przypadku instalacji na stronach internetowych Menedżera tagów musisz utworzyć warstwę danych. zaznaczony poniżej kod wskazuje, gdzie ustanowiono warstwę danych – przed tagiem; Menedżer został wczytany.
<script>
window.dataLayer = window.dataLayer || [];
</script>
<!-- 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.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
W standardowych implementacjach tagu gtag.js, z których tag został skopiowany i dodany do strony internetowej, kod tworzący warstwę danych to podany. W niestandardowych implementacjach tagu Google dodaj kod warstwy danych na początku skryptu, tak jak w tym przykładzie:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
Sposób przetwarzania informacji z warstwy danych
Po wczytaniu kontenera Menedżer tagów zacznie przetwarzać wszystkie dane znajdujące się w kolejce. i wysyłanie wiadomości push. Menedżer tagów przetwarza komunikaty przesyłane w pierwszej kolejności. podstaw: każda wiadomość jest przetwarzana pojedynczo, w kolejności ich odebrania. Jeśli wiadomość to zdarzenie, wszystkie tagi z warunkami reguły, które zostały spełnione zostanie uruchomiony, zanim Menedżer tagów przejdzie do następnej wiadomości.
Jeśli wywołanie gtag()
lub dataLayer.push()
jest wykonywane za pomocą kodu na stronie, w sekcji niestandardowej
W szablonie lub niestandardowym tagu HTML powiązana wiadomość jest umieszczona w kolejce i
przetworzone po sprawdzeniu wszystkich pozostałych oczekujących wiadomości. Oznacza to, że każdy
nie ma gwarancji, że zaktualizowane wartości warstwy danych będą dostępne dla następnego zdarzenia.
Aby to zrobić, dodaj do wiadomości nazwę zdarzenia.
zostały przekazane do warstwy danych, a następnie nasłuchuj nazwy zdarzenia za pomocą funkcji Custom
Aktywator zdarzeń.
Używanie warstwy danych z modułami obsługi zdarzeń
Obiekt dataLayer
używa polecenia event
do inicjowania wysyłania zdarzeń.
Tag Google i Menedżer tagów używają specjalnej zmiennej warstwy danych o nazwie
event
, który jest używany przez detektory zdarzeń JavaScript do uruchamiania tagów, gdy użytkownik
wchodzić w interakcje z elementami witryny. Na przykład chcesz uruchomić konwersję
śledzenia, gdy użytkownik kliknie przycisk potwierdzenia zakupu. Zdarzenia mogą być
gdy użytkownik wchodzi w interakcję z elementami witryny, takimi jak linki, przyciski
przewijanie treści itd.
Jest to możliwe przez wywołanie metody dataLayer.push()
w przypadku zdarzenia
ma miejsce. Składnia używana do wysyłania zdarzeń za pomocą funkcji dataLayer.push()
:
dataLayer.push({'event': 'event_name'});
Gdzie event_name
jest ciągiem opisującym zdarzenie, np. 'login'
,
purchase
lub search
.
Używaj usługi dataLayer.push()
, aby wysyłać dane zdarzenia, gdy chcesz wykonać działanie
do pomiaru. Aby na przykład wysłać zdarzenie, gdy użytkownik kliknie przycisk, zmodyfikuj
moduł obsługi onclick
przycisku wywołujący dataLayer.push()
:
<button onclick="dataLayer.push({'event': 'login'});">Button 1</button>
Można dynamicznie przekazywać zmienne warstwy danych do warstwy danych, aby rejestrować takie jak wartości wpisane lub wybrane w formularzu, metadane powiązane wyświetlając film odtwarzany przez użytkownika, kolor produktu (np.samochodu). dostosowane przez użytkownika, docelowe adresy URL klikniętych linków itp.
Podobnie jak w przypadku zdarzeń tę funkcję uzyskuje się przez wywołanie interfejsu API push()
.
aby dodać lub zastąpić zmienne warstwy danych w warstwie danych. Podstawowa składnia funkcji
ustawienie zmiennych dynamicznej warstwy danych jest następujące:
dataLayer.push({'variable_name': 'variable_value'});
Gdzie 'variable_name'
jest ciągiem znaków wskazującym nazwę warstwy danych
zmiennej do ustawienia, a 'variable_value'
to ciąg znaków wskazujący wartość
zmienną warstwy danych, która ma zostać ustawiona lub zastąpiona.
Przykład: aby ustawić zmienną warstwy danych z preferowanymi kolorami, gdy użytkownik wejdzie w interakcję z narzędziem do dostosowywania produktu, możesz umieścić zmiennej warstwy danych:
dataLayer.push({'color': 'red'});
1 komunikat push, wiele zmiennych
Możesz przekazać wiele zmiennych i zdarzeń jednocześnie:
dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customize'
});
Utrwalaj zmienne warstwy danych
Aby zachować zmienne warstwy danych między stronami internetowymi, wywołaj funkcję dataLayer.push()
po
przy każdym wczytaniu strony powstaje warstwa danych i przekazuje zmienne
do warstwy danych. Jeśli chcesz, by te zmienne warstwy danych były dostępne dla tagów
Menedżer po wczytaniu kontenera dodaj wywołanie dataLayer.push()
nad tagiem
Kod kontenera Menedżera tagów, jak pokazano poniżej.
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'Pageview',
'pagePath': 'https://www.googleanalytics.dev/pancakes',
'pageTitle': 'Pancake Event Signup',
'visitorType': 'customer'
});
</script>
<!-- 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.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Każda zmienna zadeklarowana w obiekcie warstwy danych będzie widoczna tak długo,
użytkownik pozostaje na bieżącej stronie. Odpowiednie zmienne warstwy danych
na wszystkich stronach (np. visitorType
) muszą być zadeklarowane w warstwie danych przy każdej
stronę w witrynie. Nie trzeba wprawdzie umieszczać tego samego zestawu zmiennych
w warstwie danych na każdej stronie, należy stosować spójną konwencję nazewnictwa. W
Innymi słowy: jeśli na stronie rejestracji ustawisz kategorię strony za pomocą zmiennej
pageCategory
, na stronach produktów i zakupów powinien być używany atrybut
pageCategory
.
Rozwiązywanie problemów
Oto kilka wskazówek dotyczących rozwiązywania problemów z warstwą danych:
Nie zastępuj zmiennej window.dataLayer
: jeśli używasz danych
bezpośrednio (np. dataLayer = [{'item': 'value'}])
spowoduje zastąpienie wszystkich
istniejące wartości w dataLayer
. Instalacje Menedżera tagów powinny zostać utworzone
warstwa danych jak najwyżej w kodzie źródłowym, nad kontenerem,
fragment kodu za pomocą funkcji window.dataLayer =
window.dataLayer || [];
. Po zadeklarowaniu wartości dataLayer
użyj
dataLayer.push({'item': 'value'})
, aby dodać do niej dodatkowe wartości, a jeśli te
wartości muszą być dostępne dla Menedżera tagów po załadowaniu strony,
Wywołanie dataLayer.push()
musi być nad kodem kontenera Menedżera tagów jako
cóż.
W nazwie obiektu dataLayer
rozróżniana jest wielkość liter: jeśli próbujesz przekazać zmienną
lub w przypadku wystąpienia zdarzenia bez odpowiedniej wielkości liter, wypychanie jej nie zadziała.
datalayer.push({'pageTitle': 'Home'}); // Bad (datalayer in lowercase)
dataLayer.push({'pageTitle': 'Home'}); // Good (dataLayer in camel case)
Funkcja dataLayer.push
musi być wywoływana za pomocą prawidłowych obiektów JavaScript. Cała warstwa danych
zmienne powinny być ujęte w cudzysłów.
dataLayer.push({new-variable: 'value'}); // Bad - no quote marks
dataLayer.push({'new-variable': 'value'}); // Good - proper quote marks
Zadbaj o spójność nazw zmiennych na różnych stronach: jeśli używasz różnych zmiennych, jednakowej koncepcji na różnych stronach, tagi nie będą w stanie regularnie uruchamiał się we wszystkich żądanych lokalizacjach.
Złe:
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitor_type': 'high-value'});
Dobra:
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitorType': 'high-value'});
Zmiana nazwy warstwy danych
domyślna nazwa obiektu warstwy danych zainicjowana przez tag Google lub
Menedżer tagów jest dataLayer
. Jeśli wolisz użyć innej nazwy dla swojego
warstwy danych, edytując wartość parametru warstwy danych w sekcji
tag Google lub fragment kodu kontenera Menedżera tagów z wybraną przez siebie nazwą.
gtag.js
dodaj do adresu URL parametr zapytania o nazwie „l”, aby ustawić nową nazwę warstwy danych;
np. l=myNewName
Zaktualizuj wszystkie wystąpienia parametru dataLayer
w tagu Google
z nową nazwą.
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID&l=myNewName"></script>
<script>
window.myNewName = window.myNewName || [];
function gtag(){myNewName.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
Menedżer tagów
Zastąp w kontenerze wartość parametru warstwy danych (wyróżnioną poniżej) z wybraną przez siebie nazwą.
<!-- 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.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','myNewName','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Po zmianie nazwy wszystkie odwołania do warstwy danych (tzn. podczas deklarowania danych)
warstwy nad fragmentem kodu lub przy wypychaniu zdarzeń bądź zmiennych dynamicznej warstwy danych
do warstwy danych za pomocą polecenia .push()
) musi zostać dostosowany tak, aby
nazwa niestandardowej warstwy danych:
<script>
myNewName = window.dataLayer || [];
myNewName.push({'variable_name': 'variable_value'});
</script>
Niestandardowe metody warstwy danych
Jeśli wypchniesz funkcję do warstwy danych, zostanie ona wywołana z ustawieniem abstrakcyjny model danych. Ten abstrakcyjny model danych może pobierać i ustawiać wartości klucza do magazynu wartości, a także umożliwia zresetowanie warstwy danych.
zestaw
Funkcja set
w abstrakcyjnym modelu danych umożliwia ustawienie wartości do pobierania
przez „get”.
window.dataLayer.push(function() {
this.set('time', new Date());
});
get
Funkcja get
w abstrakcyjnym modelu danych umożliwia pobieranie wartości, które
zostały ustawione.
window.dataLayer.push(function() {
const existingTime = this.get('time');
if (existingTime !== null) {
// Change behavior based on whether or not this value exists...
} else {
// ...
}
})
zresetuj
Funkcja reset
w abstrakcyjnym modelu danych pozwala zresetować dane w
warstwy danych. Jest to najbardziej przydatne, gdy strona pozostanie otwarta, a dane będą
rozmiar warstwy wciąż rośnie. Aby zresetować warstwę danych, użyj funkcji
ten kod:
window.dataLayer.push(function() {
this.reset();
})