Post opisuje wykorzystanie biblioteki googleAnalyticsR do interakcji z Google Data API przygotowanym z myślą o najnowszej wersji Google Analytics 4. Kolejno pokazujemy jak połączyć się z API oraz jak pobrać podstawowe dane z przykładowej witryny i następnie wyświetlić wynik w konsoli. Ponieważ biblioteka jest przeznaczona dla języka R, dlatego też skrypt załączony do postu jest w języku R.
W niniejszym artykule wykorzystamy połączenie:
- Google Data API dla Google Analytics 4 => https://developers.google.com/analytics/devguides/reporting/data/v1
- Bibliotekę googleAnalyticsR napisaną przez Mark Edmondson => https://code.markedmondson.me/googleAnalyticsR/articles/reporting-ga4.html
- Język R
Artykuł jest
oparty
o najnowszym API - Data API. W serwisie jest jednak dostępny również
inny
artykuł pokazujący wykorzystanie omawianego API:
Instalacja niezbędnych bibliotek
Aby rozpocząć pracę, rozpoczynamy od instalacji pakietu googleAnalyticsR:
Install.packages("googleAnalyticsR")
Przygotowanie do wykonania zapytania
W kolejnym kroku przechodzimy do załadowania biblioteki, tak aby jej funkcje były dostępne w naszej przestrzeni:
library(googleAnalyticsR)
Podajemy email (login), który jest powiązany z kontem Google Analytics, z którego chcemy pobrać dane. Istotne jest to, aby na podanym koncie były instancje oparte o wersję Google Analytics 4.
ga_auth(email="[email protected]")
Następnie definiujemy parametry dla planowanego zapytania, pobierającego dane z Google Analytics 4:
Definiujemy property_id, z którego dane będą pobierane:
property_id
<-
325313565
Definiujemy zakres czasowy, dla którego chcemy pobrać dane:
start_date
<-
"2022-10-01"
end_date
<-
"2022-10-31"
W sytuacji, gdy nie mamy pewności, które konta Google Analytics są oparte o GA4 a które wykorzystują Universal Analytics, to możemy wykorzystać poniższą funkcję, podaną w linii komend:
ga_account_list("ga4")
Jako rezultat otrzymamy listę kont z instancją Google Analytics 4:
Zapytanie do API i pobranie danych
Budujemy pierwsze zapytanie:
Pobiera liczbę aktywnych użytkowników (activeUsers) we wskazanym okresie czasu.
query1
<-
ga_data(
property_id,
metrics =
c("activeUsers","sessions"),
date_range = c(start_date, end_date)
)
Wynik zapytania jest widoczny poniżej:
Budujemy drugie zapytanie, w którym podajemy dodatkowe "dimensions":
query2 <- ga_data(
property_id,
metrics =
c("activeUsers","sessions"),
dimensions = c("date", "city"),
date_range = c(start_date,
end_date)
)
Argument dimensions ma postać c("dim1", "dim2", "dim3", …)
Wynik zapytania jest widoczny poniżej:
Budujemy trzecie zapytanie:
Podajemy w nim:
- landingPage
- fullPageUrl
query3
<-
ga_data(
property_id,
metrics = c("sessions"),
dimensions = c("date",
"landingPage", "fullPageUrl"),
date_range = c(start_date, end_date)
)
Wynik zapytania jest widoczny poniżej:
Budujemy czwarte zapytanie, które pokaże nam wszystkie eventy dostępne w Google Analytics (i wywołane przez użytkownika w zadanym okresie czasu)
Jako metrics przekazujemy NULL.
query4
<-
ga_data(
property_id,
metrics = NULL,
dimensions = "eventName",
date_range = c(start_date, end_date)
)
Wynik zapytania jest pokazany poniżej:
Budujemy zapytanie, w którym wykorzystamy opcję filtrowania oraz sortowania danych
W zapytaniu wykorzystujemy:
- dim_filters => pozwala filtrować dane np. pobrać tylko dane dla wybranego miasta lub adresu url
- orderBys => pozwala sortować dane. Podanie "-" oznacza porządek rosnący (desc)
- Limit => pozwala ustawić limit pobrania danych
query5
<-
ga_data(
property_id,
metrics = c("activeUsers"),
dimensions =
c("date","city", "landingPage",
"fullPageUrl"),
date_range = c(start_date, end_date),
dim_filters =
ga_data_filter(city=="Wroclaw"),
orderBys = ga_data_order(-activeUsers -date),
limit = 100
)
Wynik zapytania jest pokazany poniżej:
Budujemy zapytanie o dane aktualne tzn. odwołujemy się do widoku czasu rzeczywistego
Poniższe zapytanie pokazuje nam ilość użytkowników w przeciągu ostatnich 30 minut. Obok liczby użytkowników pojawia się nazwa strony / ekranu, na którym jest aktualnie użytkownik.
realtime
<-
ga_data(
property_id,
metrics = "activeUsers",
dimensions = "unifiedScreenName",
limit = 100,
realtime = TRUE)
Wynik zapytania jest pokazany poniżej:
Kod skryptu z R Notebooks:
Zapraszam do lektury pozostałych artykułów.