Як зрабіць першы запыт да даных GA4 у BigQuery
Пасля звязкі Google Analytics 4 з BigQuery у вашым сховішчы кожны дзень з’яўляюцца сырыя падзеі: кожны прагляд старонкі, клік і заяўка з усімі параметрамі. Гэта дае свабоду, якой няма ў інтэрфейсе Analytics, але даныя ўладкаваны незвычайна, і першыя запыты часта ставяць у тупік.
Паказваю, як уладкаваны табліцы GA4 у BigQuery, разбіраю тры першыя SQL-запыты — па днях, старонках і крыніцах — і тлумачу, як не пераплаціць за апрацоўку даных.

Што павінна быць гатова
Рэсурс GA4 звязаны з праектам Google Cloud праз раздзел BigQuery links у Admin, і экспарт працуе хаця б суткі. Улічыце: выгрузка пачынаецца з моманту звязкі, мінулыя даныя заднім чыслом не з’явяцца.
Як уладкаваны даныя
- Набор даных называецца
analytics_плюс нумар рэсурсу, напрыкладanalytics_123456789. - Штодзённая выгрузка — гэта табліцы
events_ГГГГММДД, па адной на дзень. Калі ўключана струменевая выгрузка, бягучы дзень ляжыць уevents_intraday_ГГГГММДД. - Адзін радок — адна падзея:
page_view,first_visit,generate_leadі гэтак далей. - Параметры падзеі — адрас старонкі, загаловак і іншыя — ляжаць не ў асобных слупках, а ва ўкладзеным спісе
event_paramsз пар «ключ — значэнне». Каб іх дастаць, патрэбныUNNEST.
Запыт 1. Падзеі і карыстальнікі па днях
SELECT event_date, COUNT(*) AS events, COUNT(DISTINCT user_pseudo_id) AS users FROM `vash-praekt.analytics_123456789.events_*` WHERE _TABLE_SUFFIX BETWEEN '20261001' AND '20261007' GROUP BY event_date ORDER BY event_date;
events_* бярэ ўсе дзённыя табліцы адразу, а ўмова па _TABLE_SUFFIX пакідае толькі патрэбныя даты. Без гэтай умовы запыт прачытае ўсю гісторыю, і за гэта давядзецца заплаціць. Улічыце, што user_pseudo_id — гэта браўзер або прылада, а не чалавек.
Запыт 2. Старонкі, якія глядзяць найчасцей
SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page, COUNT(*) AS views FROM `vash-praekt.analytics_123456789.events_*` WHERE _TABLE_SUFFIX BETWEEN '20261001' AND '20261007' AND event_name = 'page_view' GROUP BY page ORDER BY views DESC LIMIT 20;
Падзапыт з UNNEST дастае са спіса параметраў значэнне з ключом page_location. Гэтак жа дастаюцца і іншыя параметры: page_title, page_referrer. Лікавыя значэнні ляжаць у value.int_value, а не ў string_value.
Запыт 3. Адкуль прыйшлі новыя карыстальнікі
SELECT traffic_source.source AS source, traffic_source.medium AS medium, COUNT(DISTINCT user_pseudo_id) AS new_users FROM `vash-praekt.analytics_123456789.events_*` WHERE _TABLE_SUFFIX BETWEEN '20261001' AND '20261007' AND event_name = 'first_visit' GROUP BY source, medium ORDER BY new_users DESC;
Поле traffic_source захоўвае крыніцу першага візіту карыстальніка, а не бягучага сеансу. Для новых карыстальнікаў яно падыходзіць, а для аналізу сеансаў выкарыстоўваюць іншыя палі, напрыклад collected_traffic_source.
Чаму лічбы не супадаюць з інтэрфейсам GA4
- Інтэрфейс Analytics выкарыстоўвае мадэляванне і парогі даных, а ў BigQuery ляжаць толькі фактычна сабраныя падзеі.
- Карыстальнікі ў BigQuery лічацца па прыладах і браўзерах, а справаздачы GA4 могуць аб’ядноўваць іх інакш.
event_dateзапісаны ў часавым поясе рэсурсу, аevent_timestamp— у UTC.
Як не пераплаціць
- Заўсёды абмяжоўвайце даты праз
_TABLE_SUFFIX. - Выбірайце толькі патрэбныя слупкі. BigQuery бярэ плату за аб’ём прачытаных даных, а не за колькасць радкоў у выніку, таму
LIMITне эканоміць, аSELECT *— самы дарагі запыт. - Перад запускам глядзіце ацэнку ў рэдактары: BigQuery паказвае, колькі даных апрацуе запыт.
- Бясплатны ўзровень BigQuery — 1 ТБ апрацоўкі запытаў у месяц і 10 ГБ захоўвання. Невялікаму сайту гэтага звычайна хапае.
- У пясочніцы BigQuery без падключанай аплаты табліцы выдаляюцца праз 60 дзён. Для доўгага захоўвання патрэбны праект з плацежным акаўнтам.
- У стандартных рэсурсаў GA4 штодзённая выгрузка абмежаваная мільёнам падзей у дзень; калі ліміт пастаянна перавышаецца, выгрузка прыпыняецца.
Коратка
- Адзін радок у табліцы — адна падзея, параметры — ва ўкладзеным
event_params. - Бярыце табліцы праз
events_*і заўсёды фільтруйце_TABLE_SUFFIX. - Параметры дастаюцца падзапытам з
UNNEST. traffic_source— крыніца першага візіту, не сеансу.- Плаціце за прачытаныя даныя: выбірайце толькі патрэбныя слупкі.
Калі выгрузку яшчэ трэба наладзіць або патрэбныя гатовыя справаздачы на сырых даных, мы можам наладзіць выгрузку Google Analytics 4 у BigQuery: створым праект, звяжам яго з GA4, праверым даныя і наладзім кантроль выдаткаў. Вынікі запытаў зручна выводзіць у справаздачу у Data Studio.