Aby usługa Google Analytics mogła ustalić, że 2 różne działania należą do tego samego użytkownika, z każdym działaniem musi być powiązany z nim unikalny identyfikator.
Biblioteka analytics.js umożliwia to za pomocą pola Client ID (Identyfikator klienta), czyli niepowtarzalnego, generowanego losowo ciągu znaków, który jest zapisywany w plikach cookie przeglądarki. Dzięki temu kolejne wizyty w tej samej witrynie mogą być powiązane z tym samym użytkownikiem.
Domyślnie analytics.js do przechowywania identyfikatora klienta używa 1 własnego pliku cookie o nazwie _ga
, ale nazwę, domenę i czas ważności pliku cookie można dostosować. Inne pliki cookie utworzone przez analytics.js
to _gid
, AMP_TOKEN
i
_gac_<property-id>
. Zawierają one inne losowo wygenerowane identyfikatory i informacje o kampaniach użytkownika.
Używanie plików cookie umożliwia tagowi analytics.js identyfikowanie unikalnych użytkowników podczas sesji przeglądania, ale nie identyfikowanie unikalnych użytkowników korzystających z różnych przeglądarek lub urządzeń. Jeśli Twoja witryna ma własny system uwierzytelniania, możesz (oprócz identyfikatora klienta) używać funkcji User-ID, aby jeszcze dokładniej identyfikować użytkownika na wszystkich urządzeniach, za których pomocą wchodzi do Twojej witryny.
Z tego przewodnika dowiesz się, jak dostosować ustawienia plików cookie i jak skonfigurować pole identyfikatora użytkownika, aby dokładniej mierzyć aktywność użytkownika w różnych sesjach.
Konfigurowanie ustawień pól plików cookie
W tabeli poniżej znajdziesz domyślne wartości pól plików cookie używane przez tag analytics.js:
Nazwa pola | Typ wartości | Wartość domyślna |
---|---|---|
cookieName |
plik tekstowy, | _ga |
cookieDomain |
plik tekstowy, |
Wynik wyrażenia JavaScript:document.location.hostname
|
cookieExpires |
Liczba całkowita | 63072000 (dwa lata w sekundach) |
cookieUpdate |
boolean |
true
|
cookieFlags |
plik tekstowy, |
|
Aby zmodyfikować dowolną z tych wartości, możesz podać ją w fieldObject
przekazywanym w poleceniu create
. Przykład:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
Najczęściej ustawiane pole pliku cookie to cookieDomain
, dlatego dla wygody polecenie create
akceptuje pole cookieDomain
jako opcjonalny trzeci parametr:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Automatyczna konfiguracja domeny pliku cookie
Zalecany tag Google Analytics ustawia ciąg 'auto'
w polu cookieDomain
:
ga('create', 'UA-XXXXX-Y', 'auto');
Określenie 'auto'
jako cookieDomain
umożliwia automatyczną konfigurację domeny plików cookie, co sprawia, że kod analytics.js ma automatycznie określać najlepszą domenę plików cookie do użycia.
Automatyczna konfiguracja domeny pliku cookie ustawia plik cookie _ga
na domenie najwyższego możliwego poziomu. Jeśli np. adres witryny to blog.example.co.uk
, analytics.js ustawi domenę pliku cookie na .example.co.uk
. Poza tym, jeśli analytics.js wykryje, że serwer działa lokalnie (np. localhost
), automatycznie ustawi cookieDomain
na 'none'
.
Ważność pliku cookie
Za każdym razem, gdy do Google Analytics wysyłane jest działanie, okres ważności pliku cookie jest aktualizowany do aktualnej godziny powiększonej o wartość z pola cookieExpires
. Oznacza to, że jeśli użyjesz domyślnego ustawienia cookieExpires
, wynoszącego 2 lata, a użytkownik odwiedza Twoją witrynę co miesiąc, jego plik cookie nigdy nie wygaśnie.
Jeśli ustawisz czas cookieExpires
na 0
(zero) s, plik cookie zmieni się w plik cookie na podstawie sesji i straci ważność po zakończeniu bieżącej sesji przeglądarki:
Aktualizacja ustawień dotyczących plików cookie
Jeśli cookieUpdate
ma wartość domyślną true
, analytics.js będzie aktualizować pliki cookie przy każdym wczytaniu strony. Powoduje to ustawianie okresu ważności plików cookie względem najnowszej wizyty w witrynie. Jeśli np. okres ważności pliku cookie jest ustawiony na tydzień, a użytkownik odwiedza witrynę w tej samej przeglądarce co 5 dni, plik cookie będzie aktualizowany po każdej wizycie i w konsekwencji nigdy nie wygaśnie.
Jeśli zasada ma wartość false
, pliki cookie nie są aktualizowane po każdym wczytaniu strony. Okres ważności pliku cookie będzie więc zależał od terminu pierwszej wizyty użytkownika w witrynie.
Flagi plików cookie
Dzięki zdefiniowaniu tego parametru możesz dołączać do pliku cookie dodatkowe flagi. Flagi muszą być rozdzielone średnikami.
Uzyskiwanie identyfikatora klienta z pliku cookie
Nie należy uzyskiwać bezpośredniego dostępu do zestawów plików analytics.js, ponieważ ich format może się w przyszłości zmienić. Zamiast tego deweloperzy powinni używać readyCallback
i czekać na wczytanie kodu analytics.js, a potem pobierać wartość clientId
zapisaną w module.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Wyłączanie plików cookie
W niektórych przypadkach możesz chcieć użyć własnego mechanizmu przechowywania danych (np. localStorage
lub skryptu service worker), aby zachować identyfikator klienta w wielu sesjach bez używania plików cookie. Aby wyłączyć zapisywanie plików cookie za pomocą tagu analytics.js, w polu storage
ustaw wartość 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Jeśli przechowujesz pole clientId
samodzielnie, musisz ustawić pole cliendId
podczas tworzenia tagu śledzenia.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Aby wyłączyć pliki cookie _gac_<property-id>
, ustaw pole storeGac
na false
w poleceniu create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Zapisywanie identyfikatora klienta za pomocą lokalnej pamięci masowej
Ten przykładowy kod pokazuje, jak można zmodyfikować tag JavaScript, by przechowywać identyfikator klienta localStorage
, a nie pliki cookie:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
Identyfikator użytkownika
Funkcja User-ID umożliwia analizę grup sesji na różnych urządzeniach z wykorzystaniem niepowtarzalnego, trwałego i nieumożliwiającego poznania tożsamości osób identyfikatora, składającego się z ciągu znaków, który reprezentuje użytkownika. Aby dowiedzieć się, dlaczego warto zaimplementować funkcję User ID, przeczytaj artykuł Zalety korzystania z tej funkcji.
Aby zaimplementować funkcję User ID za pomocą tagu analytics.js:
- Podaj własny, unikalny, trwały i nieumożliwiający identyfikacji osoby identyfikator ciągu, który będzie reprezentował każdego zalogowanego użytkownika. Jest on najczęściej udostępniany przez system uwierzytelniania.
- Ustaw User ID na trackerze:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Obsługa uwierzytelniania po wczytaniu strony
Gdy tworzysz aplikacje jednostronicowe lub inne dynamiczne witryny, które obsługują logowanie użytkownika po wstępnym wczytaniu strony, proces ustawiania wartości identyfikatora User-ID w tagu śledzenia nie może nastąpić w momencie tworzenia.
W takich przypadkach możesz użyć polecenia set
, aby ustawić wartość w module śledzącym, gdy tylko będzie znana.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
Przy tej metodzie działania wysłane przed ustawieniem pola userId
nie będą zawierać wartości identyfikatora użytkownika. Jednak dzięki procesowi zwanemu ujednoliceniem sesji Google Analytics może w czasie przetwarzania powiązać te działania z właściwym użytkownikiem.