Blog Analityczny. Narzędzia. Techniki. Rozwiązania Analityczne.

Analytics Data API. Wykorzystanie biblioteki googleAnalyticsR i pobieranie danych z GA4 (część 2)

11.2022 | Analytics Data API | Google Analytics 4 | R

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:

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="adres.email@gmail.com")

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: