Analiza konwersacyjna z danymi w BigQuery jest coraz prostsza i dostępna dla każdego. Jeśli przesyłasz dane z Google Analytics do BigQuery, to już masz taką możliwość. A jeśli jeszcze tego nie robisz, to warto przygotować to połączenie już teraz. Żeby ułatwić sobie analizę, wyciągamy istotną część danych do osobnej tabeli: same zakupy plus informacje o użytkownikach (user_id, id transakcji, kupione produkty, ich wartość, pierwsza wizyta na stronie i numer sesji, w której doszło do transakcji).
Dzięki temu oprócz zwykłych danych o sprzedaży zapytasz AI również o zachowanie zakupowe użytkowników, np. czy kupują w pierwszej sesji, czy jako powracający i w której sesji jej dokonali.
Podsumowanie audio NotebookLM: posłuchaj wygenerowany podcast.
Uwaga 🚨: Ten kod zadziała tylko, jeśli masz aktywne połączenie Google Analytics 4 z BigQuery i warto też mieć skonfigurowany profil płatności w GCP.
SELECT
PARSE_DATE('%Y%m%d', event_date) AS event_date_parsed,
event_date,
CONCAT(
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id')
) AS session_id,
user_pseudo_id,
user_id,
platform,
device.category AS device_category,
ecommerce.transaction_id,
items.item_id,
items.item_name,
items.item_brand,
items.item_category,
items.item_category2,
items.quantity,
items.price,
items.item_revenue,
(items.quantity * items.price) AS calculated_revenue,
(SELECT value.int_value FROM UNNEST(event_params)
WHERE key = 'ga_session_number') AS ga_session_number,
DATE(TIMESTAMP_MICROS(user_first_touch_timestamp),
'Europe/Warsaw') AS user_first_touch_date,
DATE_DIFF(
PARSE_DATE('%Y%m%d', event_date),
DATE(TIMESTAMP_MICROS(user_first_touch_timestamp), 'Europe/Warsaw'),
DAY
) AS days_to_purchase
FROM
--poniżej zmień ścieżkę swojego zbioru danych
`test-bk-1567a.analytics_377239886.events_*`,
UNNEST(items) AS items
WHERE
event_name = 'purchase'
--użyj poniższej opcji jeśli chcesz sprawdzać dane z dnia dzisiejszego
--and regexp_extract(_table_suffix, r'[0-9]+') = format_date('%Y%m%d', current_date())
--użyj poniższej opcji jeśli chcesz dopisywać do tabeli dane z poprzedniego dnia
--and regexp_extract(_table_suffix, r'[0-9]+') = format_date('%Y%m%d',date_sub(current_date(), interval 1 day))
--użyj poniższej opcji jeśli chcesz dopisywać do tabeli dane z przedwczorajszego dnia
--and regexp_extract(_table_suffix, r'[0-9]+') = format_date('%Y%m%d',date_sub(current_date(), interval 2 day))
--użyj poniższej opcji jeśli chcesz nadpisywać dane w tabli do dnia wczorajszego
--and regexp_extract(_table_suffix, r'[0-9]+') between '20240401' and format_date('%Y%m%d',date_sub(current_date(), interval 1 day))
🤖 Ważne przy budowaniu Agenta AI:
Sam SQL to dopiero połowa sukcesu. Żeby agent odpowiadał poprawnie, musisz mu dać dokładną instrukcję, czyli opis tabeli i metryk, wskazanie jak ma liczyć poszczególne wartości oraz jakich błędów ma unikać. Do pisania takich opisów (instrukcji agenta i dokumentacji metryk) sam wykorzystuję AI, np. Claude. Przyspiesza to pracę i pomaga niczego nie pominąć.
Spis treści:
00:00 Wstęp
01:10 Połączenie GA4 i BigQuery
02:26 Zbiór danych Google Analytics w BigQuery
02:58 SQL purchase i zachowanie zakupowe użytkowników
04:32 Przykładowe dane z transakcjami
06:17 Ustawianie okresu danych i harmonogram zapytania SQL
08:06 Przygotowanie Agenta AI w BigQuery
13:08 Zakończenie
