Import z Google Analytics 4
Dwie drogi, by sprowadzić tu swoje liczby z GA4: sumy dzienne na pytanie, ile MousePlayer w ogóle widzi - oraz pojedyncze sesje GA4 z eksportu do BigQuery dla wizyt, których nie udało się nagrać.
1. Co wchodzi, a co nie
Obie drogi czytają z Twojego konta Google i włącza się je osobno. Odpowiadają na różne pytania i nie potrzebujesz obu.
| Droga | Co pobiera | Po co |
|---|---|---|
| Data API | Sumy dzienne: sesje, użytkownicy, odsłony, sesje angażujące | Pytanie o pokrycie. GA4 liczy 3000 sesji, MousePlayer nagrał 40 - bez wielkości odniesienia różnicy nie da się nawet zauważyć. |
| Import z BigQuery | Pojedyncze sesje GA4 wraz ze zdarzeniami | Co działo się podczas wizyty, której MousePlayer nie mógł nagrać. |
Zaimportowanej sesji nie da się odtworzyć. GA4 nie przechowuje zrzutu strony ani ruchów myszy, nie ma więc z czego zbudować odtworzenia. Dostajesz liczby i zdarzenia obok swoich nagrań - nic ponadto, i tak też to przedstawiamy.
Import leży we własnych tabelach i nigdy nie miesza się z Twoimi nagraniami. Inaczej po cichu zmieniłoby się znaczenie każdej liczby z nich wyprowadzonej - profili zachowań, wyceny odwiedzających, analizy frustracji - i nikt nie umiałby potem powiedzieć, który wiersz zmierzono, a który pobrano.
2. Droga 1: Data API
Potrzebujesz dwóch rzeczy: identyfikatora usługi i klucza konta usługi.
Identyfikator usługi to nie identyfikator pomiaru
To najczęstsza nieudana próba, a własny komunikat Google jej nie nazywa. Identyfikator pomiaru wygląda jak G-ABC123XYZ, stoi w kodzie śledzącym i jest wszędzie widoczny. Identyfikator usługi jest czysto liczbowy i widnieje tylko w administracji, w Ustawieniach usługi. Potrzebny jest ten drugi; pierwszy odrzucamy z komunikatem, zamiast pozwolić Ci wpaść w błąd 400.
Utworzenie i uprawnienie konta usługi
- W Google Cloud Console utwórz konto usługi i wygeneruj klucz JSON.
- W tym samym projekcie włącz Google Analytics Data API.
- W GA4 w Administracja, Zarządzanie dostępem do usługi dodaj adres e-mail konta usługi jako Czytelnika. Konto usługi jest osobnym użytkownikiem; bez tego kroku Google odpowiada 403, i to nie mówiąc dlaczego.
Zawartość pliku JSON wklejasz w pole. Jest zapisywana z szyfrowaniem i pokazywana potem już tylko w skróconej formie.
3. Droga 2: import z BigQuery
Ta droga czyta surowy eksport GA4. Musisz go raz skonfigurować w GA4: Administracja, Połączenia z BigQuery. Tabele pojawiają się dopiero od następnego dnia - wcześniej import niczego nie znajdzie, i nie jest to usterka.
Co wpisujesz
- Identyfikator projektu GCP, w którym leży eksport. Niekoniecznie ten sam projekt, do którego eksportujesz dane MousePlayera.
- Identyfikator zbioru danych. GA4 nazywa go
analytics_<propertyId>. - Klucz konta usługi z uprawnieniem BigQuery Data Viewer na zbiorze i BigQuery Job User w projekcie. Sam odczyt wystarczy; więcej prosimy nie nadawać.
Ile to kosztuje i kto płaci
BigQuery liczy według odczytanych bajtów, a rachunek jest Twój. Dlatego import czyta na przebieg tylko kilka dni i zawsze jedno jedyne zapytanie - drugie odczytałoby te same tabele po raz kolejny. Dodatkowo twardy limit przerywa zapytanie, zanim zrobi się drogie; gdy to nastąpi, komunikat w dzienniku dostarczeń mówi, że okno czasowe jest za duże.
Rytm
Domyślnie co sześć godzin, a każdy przebieg pobiera ponownie trzy ostatnie dni. To nie przypadek: GA4 uzupełnia dane nawet przez 48 godzin, a eksport dzienny pojawia się dopiero nazajutrz. Kto pyta częściej, nie dostaje świeższych liczb, tylko te same.
4. Klucz, który łączy obie strony
Jeśli dodatkowo ustawisz mostek analityczny na GA4, MousePlayer zapisuje przy każdej sesji client_id z ciasteczka _ga. Dokładnie tę wartość eksport BigQuery niesie jako user_pseudo_id.
Dzięki temu sesję GA4 da się dopasować do jednego z Twoich nagrań - i odwrotnie, przy nagraniu widzisz, co GA4 naliczyło podczas tej samej wizyty. Bez mostka obie strony stoją po prostu obok siebie, bez połączenia.
To samo pole niesie też Twój własny identyfikator klienta, jeśli używasz setUserId(). Obu naraz mieć się nie da: albo stoi tam client_id od Google, albo Twój własny numer.
5. Zgoda, przechowywanie, usuwanie
To, co wchodzi, miało ciasteczko
Importowane są wyłącznie wiersze z user_pseudo_id. Gdy odwiedzający odmawia, GA4 wysyła w trybie Consent Mode trafienia bez ciasteczek, a te go nie mają - odpadają więc bez niczyjego zapewnienia. Wiersze modelowane, czyli szacowane, zostają poza importem z tego samego powodu: zapisanie szacunku jako sesji oznaczałoby zapisywanie wizyt, których nie było.
Jak długo leży
Domyślnie 180 dni, liczone od dnia, który wiersz opisuje - a nie od momentu importu. Inaczej termin nigdy by nie upłynął, bo każdy przebieg pobiera te same dni ponownie.
Usuwanie
Gdy odwiedzający zażąda usunięcia swoich danych, jego zaimportowane sesje GA4 znikają razem z nimi - o ile da się je przypisać przez identyfikator opisany wyżej. Gdy usuniesz projekt, znikają w każdym razie, także wiersze, które nigdy nie należały do żadnego z Twoich nagrań. Dzienny przebieg terminowy zostawia je natomiast świadomie: dane GA4 mają własny zegar, a Twoje nagrania wygasają wcześniej.
6. Gdy nic nie przychodzi
Każdy przebieg zapisuje swój wynik w dzienniku dostarczeń na stronie integracji - także niepowodzenie, otwartym tekstem. Zwykle już tam stoi, czego brakuje.
| Komunikat | Co zrobić |
|---|---|
| Identyfikator usługi musi być czysto liczbowy | Wpisano identyfikator pomiaru. Właściwa liczba jest w GA4 w Ustawieniach usługi. |
| HTTP 403 z Data API | Konto usługi nie jest Czytelnikiem w usłudze GA4 albo Data API nie jest włączone w projekcie GCP. |
| Nie znaleziono zbioru lub tabel eksportu | Brakuje połączenia z BigQuery, zbiór nazywa się inaczej albo nie minął jeszcze dzień. |
| Odmowa dostępu (BigQuery) | Kontu usługi brakuje BigQuery Data Viewer na zbiorze albo BigQuery Job User w projekcie. |
| Zapytanie odczytałoby za dużo | Limit kosztów przerwał je, zanim cokolwiek naliczono. Wybierz mniejsze okno czasowe. |
| brak sesji w oknie | To nie usterka. W pobranych dniach nie było sesji ze zgodą. |