Last click non-direct atribuce dat z GA4 v BigQuery

Konec složitým SQL dotazům pro session scope atribuční model!

Od 9. 10. 2024 Google Analytics v rámci exportu do BigQuery exportují nově sloupce s atribučním modelem stejným, jako zobrazuje GA4 rozhraní (last-non-direct click). Rozdíly v datech jsou v rámci tolerance, s hodnotami je možné počítat - celé využití dat z Big Query se tak zjednodušuje, session scope atribuční model už není potřeba napočítávat složitými SQL dotazy a propojováním s Google Ads.

Jednodušší využití dat z BigQuery

V červenci letošního roku se v BigQuery objevilo pole session_traffic_source_last_click a v něm dvě další množiny dat - manual_campaign a google _ads_campaign. Obsahovaly nějakým způsobem napočtené last click atribuce - nicméně nezávisle na sobě, takže v manual_campaign byla jedna hodnota a v ads_campaign jiná a nebylo jednoduše zřejmé, kterou lze pro danou session využít. Stále bylo zapotřebí dopátrávat, které hodnoty přiřadit.

9. 10. 2024 přibylo několik dalších polí v rámci session_traffic_source_last_click dodávajících další identifikátory pro různé typy kampaní, ale především přibylo pole cross_channel_campaign, které podle názvu slibuje, že dokáže last_click model vyhodnotit napříč jednotlivými kanály - tedy jak na základě UTM, tak na základě gclidu a to vše v rámci last click non-direct modelu - tedy toho samého, který používají GA4.

🟡 Žlutá (vnější rámeček) - Nově přidané položky (od července dál)
🔵 Modrá (prostřední rámeček) - Část struktury přidaná 9.10.
🟢 Zelená (vnitřní rámeček) - Atribuce odpovídající GA4 rozhraní

Funguje to?

Vzhledem k tomu, že ke dni spuštění nebyla příslušná pole zanesena v oficiální dokumentaci, zbývalo jen hádat - a ověřit si hypotézu na datech.

Vybrali jsme property, na kterém je dosud alespoň část kampaní v Google Ads řešena pomocí autotaggingu bez doplnění UTM parametrů (což jinak nedoporučujeme), reporting identity nastavili na “device based” (aby data byla co nejpodobnější v GA4 a BQ), vybrali stejný časový rozsah (10.10.-12.10., abychom eliminovali riziko neúplných dat v BQ na začátku či GA4 na konci intervalu) a jali se porovnávat data.

V GA4 jsme vybrali session based traffic sources, v BQ jsme napočetli sessions z user_pseudo_id a ga_session_number, vybrali jsme jen consentovaná data (respektive data s user_pseudo_id). Tím jsme nastavili oběma reportům co nejpodobnější podmínky.

Zobrazit použité query >
WITH test AS
(
SELECT
  PARSE_DATE("%Y%m%d", REGEXP_EXTRACT(_TABLE_SUFFIX, r'[0-9]+'))                                                    AS event_date,
  DATETIME(TIMESTAMP_MICROS(event_timestamp), "Europe/Prague")                                                      AS event_datetime,
  user_pseudo_id || "_" || (SELECT value.int_value    FROM UNNEST(event_params) WHERE key = 'ga_session_number')    AS session_id,
  session_traffic_source_last_click.cross_channel_campaign.source                                                   AS cross_channel_source,
  session_traffic_source_last_click.cross_channel_campaign.medium                                                   AS cross_channel_medium,
  session_traffic_source_last_click.cross_channel_campaign.campaign_name                                            AS cross_channel_campaign,
FROM
  `[REDACTED].events_*`
WHERE 1=1
  AND REGEXP_EXTRACT(_TABLE_SUFFIX, r'[0-9]+') BETWEEN FORMAT_DATE("%Y%m%d", "2024-10-10") AND FORMAT_DATE("%Y%m%d", "2024-10-12")
  AND _TABLE_SUFFIX NOT LIKE "%intraday%"
  AND user_pseudo_id IS NOT NULL
)
SELECT 
  cross_channel_source,
  cross_channel_medium,
  cross_channel_campaign,
  COUNT(DISTINCT session_id) AS sessions
FROM test
WHERE 1=1
GROUP BY ALL
ORDER BY sessions DESC
      

Na výsledky se můžete podívat sami:

V tabulce uvádíme jen prvních 20 řádků, nicméně shoda pokračuje s podobnou přesností i dále. Vynechané řádky jsem spojil pod řádek (other). Názvy kampaní jsem ve výsledné tabulce cenzuroval, ale zahrnovaly jak běžné kampaně, tak Google Ads včetně PMAX kampaní. Je vidět, že v BQ máme o 31 session méně celkově, ale atribuce session se mezi GA4 a BQ prakticky shoduje. Podobně dopadlo i srovnání transakcí.

Pro úplnost podotýkám, že se jednalo o srovnání dat v GA4 versus BQ a zdroj/médium google/cpc s kampaní (organic) je téma na jiné vyprávění. 🙂

Potřebuješ pomoct s Google Analytics v BigQuery? Ozvi se nám: google-team@etnetera.cz.

Závěr

Data tedy prokázala, že nová pole velmi přesně kopírují session based atribuční model používaný Google Analytics 4 a je tedy možné je následně využívat pro reporting, který nepřekvapí nesrovnalostmi s GA4. Je možné, že se nějaké problémy ještě v budoucnu objeví nebo že Google do této části schématu bude ještě zasahovat, ale každopádně jde o významný krok ke zvýšení důvěryhodnosti a využitelnosti dat z Big Query.

Jsi odborník na digitální analytiku v Google nástrojích a chtěl bys pracovat ve svobodné firmě? Mrkni na volné pozice a přidej se k nám!

Přečti si taky