14. júna 2026Analytika

GA4 BigQuery Export: Nastavenie a atribucne dotazy

Preco GA4 BigQuery meni pravidla hry

Minuly mesiac som auditoval stredne velky e-shop, ktory minul 35 000 EUR mesacne na platenu reklamu. Ich marketing manazer chcel porovnat vykonnost kanalov podla last-click modelu s first-touch pohladom. Rozhranie GA4 im ponuklo predpripraveny report so 14-mesacnou retenciou dat a bez moznosti upravit atribucne okno. Rozhodovali o sestimiestnych rozpoctoch na zaklade ciernej skrinky.

Presne tuto medzeru vyplna GA4 BigQuery export. Ked exportujete surove eventove data do BigQuery, vlastnite kazdy event -- bez samplovania, dotazovatelny v SQL, bez limitu na uchovavanie dat. To, co si kedysi vyzadovalo zmluvu na Analytics 360 za sestimiestnu sumu, je dnes zadarmo pre kazdu standardnu GA4 property (Google Support).

Ak je vas tracking zaklad nestabilny este pred tym, nez data dorazia do BigQuery -- duplicitne eventy, chybajuce parametre, nefunkcne consent signaly -- export verne zreplikuje kazdy problem. Predpoklady podrobne popisujem v GA4 audit kontrolnom zozname, a ak potrebujete pomoc na mieru, moje marketing measurement projekty zvycajne zacinaju prave tam.

Prepojte GA4 s BigQuery v piatich krokoch

Samotne prepojenie zaberie menej ako desat minut. Tu je postup.

  1. Vytvorte alebo vyberte Google Cloud projekt. Otvorte Google Cloud Console, prejdite na APIs & Services > Library a zapnite BigQuery API.
  2. Skontrolujte opravnenia. Potrebujete rolu Editor alebo vyssiu na GA4 property a Owner pristup na BigQuery projekte (Google Support).
  3. V GA4 otvorte Admin > Product Links > BigQuery Links a kliknite na Link.
  4. Zvolte region. Vyberte rovnaky region ako pri existujucich BigQuery datasetoch. Ak je to vas prvy dataset, zvolte region najblizsi k vasmu podnikaniu.
  5. Vyberte frekvenciu exportu. Mate dve moznosti: Daily (batch) a Streaming. Daily staci pre vacsinu reportovacich scenarov a nestoji nic nad ramec free tieru BigQuery. Streaming pridava riadky v takmer realnom case, ale plati sa za streaming-insert -- priblizne 0,05 USD za GB (Google Cloud pricing).

To je vsetko. Spatny backfill neexistuje -- GA4 BigQuery export obsahuje data az od momentu, ked ho zapnete (Google Support). Zapnite ho dnes, aj ked neplanujete dotazovat este niekolko mesiacov.

Limity denneho exportu, na ktore si dat pozor

Standardne GA4 property maju dennu batch export limitku na milion eventov za den. Ak ju pravidelne prekracujete, Google export pozastavi (Google Support). Streaming nema limit na pocet eventov, ale platite za ingestion. Ak vas web pravidelne prekracuje hranicu miliona eventov, mate tri moznosti: prepnut na streaming, orezat hlucne eventy (scroll-depth pingy su casty vinnik), alebo upgradnut na Analytics 360.

Pochopenie GA4 BigQuery Export schemy

GA4 BigQuery export schema je cast, na ktorej vacsina analytikov narazí. Na rozdiel od plochej tabulky exportuje GA4 vnorenu, opakujucu sa strukturu. Kazdy riadok v tabulke events_YYYYMMDD reprezentuje jeden event, ale parametre su ulozene vo vnorenom opakovanom poli RECORD s nazvom event_params.

Tu su stlpce, s ktorymi budete pracovat najcastejsie:

StlpecTypCo obsahuje
event_dateSTRINGDatum vo formate YYYYMMDD
event_timestampINTEGERTimestamp v mikrosekundach (epoch)
event_nameSTRINGNazov eventu (napr. page_view, purchase)
event_paramsREPEATED RECORDPole key-value struktur
user_pseudo_idSTRINGKlientsky identifikator pouzivatela v GA4
traffic_sourceRECORDFirst-touch atribucia na urovni pouzivatela
collected_traffic_sourceRECORDKampanove data zbierane s kazdym eventom
session_traffic_source_last_clickRECORDLast-click zdroj na urovni session

Zaznam event_params obsahuje key (STRING) a value zaznam so styrmi typovanymi pod-polami: string_value, int_value, float_value a double_value (Google Support -- BigQuery Export schema).

Extrahovanie hodnot pomocou UNNEST

Pretoze event_params je opakujuce sa pole, nemozete k nemu pristupovat iba cez bodkovu notaciu. Musite pouzit UNNEST alebo subdotaz. Tu je vzor, ktory budete pouzivat neustale:

SELECT
  event_date,
  user_pseudo_id,
  (SELECT value.string_value
   FROM UNNEST(event_params)
   WHERE key = 'page_location') AS page_location,
  (SELECT value.string_value
   FROM UNNEST(event_params)
   WHERE key = 'source') AS source,
  (SELECT value.string_value
   FROM UNNEST(event_params)
   WHERE key = 'medium') AS medium
FROM
  `your_project.analytics_123456789.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN '20260601' AND '20260614'
  AND event_name = 'page_view'

Dve dolezite veci. Po prve, vzdy filtrujte podla _TABLE_SUFFIX, aby ste neskenovali cely dataset (BigQuery uctuje podla precitanych bytov -- prvy 1 TiB mesacne je zadarmo, potom 6,25 USD za TiB (Google Cloud pricing)). Po druhe, pouzite spravne value pod-pole podla typu parametra. Page title je string_value; session ID je int_value. Ak ich zamienite, dotaz vrati NULL hodnoty bez akejkolvek chyby.

Vas prvy atribucny dotaz

Ked rozumiete GA4 BigQuery scheme, atribucia je logicky dalsi krok: ktore kanaly skutocne prinasaju trzby?

Rozhranie GA4 pouziva predvolene data-driven atribucny model. Je uzitocny, ale nepriehladny. So surovym exportom si vybudujete transparentnu, auditovatelnu atribuciu.

Last non-direct click na urovni session

Pole session_traffic_source_last_click vam da Googlovu vlastnu last-click atribuciu na session. Tu je dotaz, ktory pocita nakupy podla source/medium:

SELECT
  session_traffic_source_last_click.manual_source AS source,
  session_traffic_source_last_click.manual_medium AS medium,
  COUNT(*) AS purchases
FROM
  `your_project.analytics_123456789.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN '20260501' AND '20260531'
  AND event_name = 'purchase'
GROUP BY 1, 2
ORDER BY purchases DESC

Takto ziskate cisty prehlad nakupov podla kanalov, ktory mozete priamo porovnat s poctami konverzii v Google Ads a s tym, co reportuje Meta.

First-touch atribucia

Chcete vediet, ktore kanaly privadzaju novych pouzivatelov? Pole traffic_source obsahuje first-touch zdroj pre kazdeho pouzivatela:

SELECT
  traffic_source.source AS first_touch_source,
  traffic_source.medium AS first_touch_medium,
  COUNT(DISTINCT user_pseudo_id) AS new_users,
  COUNTIF(event_name = 'purchase') AS purchases
FROM
  `your_project.analytics_123456789.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN '20260501' AND '20260531'
GROUP BY 1, 2
ORDER BY new_users DESC

Porovnajte first-touch s last-click a okamzite uvidite, ktore kanaly robia „zoznamovanie" a ktore „uzatvaranie". Organicke vyhladavanie casto dominuje vo first-touch; brandovy plateny search dominuje v last-click. Prave v tejto medzere by mali byt rozpoctove rozhodnutia premyslene, nie automatizovane.

Vlastny multi-touch model: linearny priklad

Pre timy, ktore chcu vidiet celu cestu pouzivatela, mozete v SQL postavit jednoduchy linearny model. Kazdy touchpoint dostane rovnaky podiel kreditu:

WITH conversions AS (
  SELECT
    user_pseudo_id,
    event_timestamp AS conversion_ts
  FROM `your_project.analytics_123456789.events_*`
  WHERE _TABLE_SUFFIX BETWEEN '20260501' AND '20260531'
    AND event_name = 'purchase'
),
touchpoints AS (
  SELECT
    e.user_pseudo_id,
    e.event_timestamp,
    session_traffic_source_last_click.manual_source AS source,
    session_traffic_source_last_click.manual_medium AS medium
  FROM `your_project.analytics_123456789.events_*` e
  WHERE _TABLE_SUFFIX BETWEEN '20260501' AND '20260531'
    AND event_name = 'session_start'
    AND session_traffic_source_last_click.manual_source IS NOT NULL
),
paths AS (
  SELECT
    t.source,
    t.medium,
    c.user_pseudo_id,
    COUNT(*) OVER (PARTITION BY c.user_pseudo_id, c.conversion_ts) AS path_length
  FROM conversions c
  JOIN touchpoints t
    ON c.user_pseudo_id = t.user_pseudo_id
    AND t.event_timestamp <= c.conversion_ts
)
SELECT
  source,
  medium,
  ROUND(SUM(1.0 / path_length), 2) AS linear_credit
FROM paths
GROUP BY 1, 2
ORDER BY linear_credit DESC

Toto je zamerne zjednodusene. Produkcne modely potrebuju lookback windows, deduplikacnu logiku a osetrenie direct navstev. No aj tato zakladna verzia odhali insighty, ktore rozhranie GA4 nedokaze zobrazit.

Tri uskalia, na ktore narazia novi GA4 BigQuery pouzivatelia

1. GA4 BigQuery schema sa meni bez varovania. Google pravidelne pridava polia (napriklad session_traffic_source_last_click, pridany koncom 2023). Dotazy odkazujuce na odstranene alebo premenovane polia zlyhaju potichucku. Fixujte si dotazy na zname stlpce a testujte po kazdej aktualizacii GA4.

2. Medzery v consente vytvaraju diery v datach. Ak ste implementovali Consent Mode v2, pouzivatelia, ktori odmietnu tracking, stale generuju modelovane eventy v rozhrani GA4 -- tie sa vsak v BigQuery exporte neobjavuju. Vase BigQuery cisla budu nizsie ako GA4 reporty. Toto je ocakavane spravanie, nie chyba.

3. Data layer je dolezitejsi nez kedykolvek predtym. BigQuery verne exportuje vsetko, co GA4 nazbiera. Ak vo vasom data layeri chybaju parametre -- transaction ID, item arrays, user properties -- tieto medzery sa prenesú do kazdeho dotazu. Najskor opravte zber dat, potom dotazujte.

Dalsie kroky po nastaveni GA4 BigQuery

Teraz mate GA4 BigQuery prepojenie spustene, rozumiete export scheme a mate tri atribucne dotazy, ktore mozete spustit hned dnes. Tu je prakticky postup, ako premenit GA4 BigQuery data na nieco, co vas tim realne vyuzije:

  1. Zauditujte data layer a uistite sa, ze eventy a parametre prichadzajuce do BigQuery su kompletne a presne.
  2. Naplánujte denný import nákladových dát z Google Ads a Meta, aby ste vedeli vypocitat skutocny ROAS v SQL.
  3. Postavte Looker Studio dashboard nad BigQuery tabulkami pre priebezny reporting.
  4. Porovnajte BigQuery atribuciu s konverziami reportovanymi platformami -- pochopte odchylky a kalibrujte bidding.

Ak prevadzkujete platenu reklamu a vase meranie stale zavisi len od rozhrania GA4, prichadzate o presnost aj o rozpocet.

FAQ

Je GA4 BigQuery export zadarmo?

Zapnutie exportu je zadarmo pre vsetky standardne GA4 property. Platite len za pouzivanie BigQuery nad ramec stedreho free tieru, ktory pokryva spracovanie dotazov a ulozisko. Vacsina malych az stredne velkych webov sa pohodlne zmesti do tychto limitov.

Doplni GA4 historicke data do BigQuery spatne?

Nie. Export obsahuje data az od dna, ked ho zapnete. Neexistuje sposob, ako spatne exportovat starsie GA4 data do BigQuery, preto by ste mali prepojenie zapnut co najskor -- aj ked este nie ste pripraveni dotazovat.

Co sa stane, ak moj web posle viac ako milion eventov denne?

Standardne GA4 property maju dennu batch export limitku na milion eventov. Ak tento limit pravidelne prekracujete, Google pozastavi vas denný export. Mozete prepnut na streaming export, ktory nema limit na pocet eventov, ale plati sa za ingestion podla objemu dat, alebo upgradnut na Analytics 360.

Preco su moje BigQuery pocty eventov nizsie ako GA4 reporty?

Najcastejsou pricinoou je Consent Mode. GA4 modeluje konverzie pre pouzivatelov, ktori odmietnu tracking, a tieto modelovane eventy sa zobrazuju v rozhrani, ale nie su zahrnuté v BigQuery exporte. Medzi dalsie priciny patri pozastavenie denneho exportu kvoli limitu na objem eventov alebo nesulad casovych zon medzi GA4 a BigQuery tabulkami.

Mozem pouzit BigQuery na atribuciu namiesto vstavaných modelov GA4?

Ano. Surovy export eventov obsahuje traffic-source polia na urovni session aj pouzivatela, ktore vam umoznia postavit last-click, first-touch, linearny alebo vlastny atribucny model v SQL. Ziskate tak plnu transparentnost v tom, ako sa prideluje kredit -- na rozdiel od data-driven modelu GA4, ktory je cierna skrinka.

Nie ste si isti, ci su vase GA4 data dostatocne doveryhodne na dotazovanie? Dohodnite si marketing measurement projekt -- zauditujem vase nastavenie a presne vam poviem, co treba opravit, skor nez na tom zacnete stavat.

Pripravený opraviť meranie marketingu?

Vyplniť assessment →