PPC.co
// blog

What GA4 to BigQuery Attribution Actually Costs to Run

Real implementation costs, schema choices, and reporting architecture for piping GA4 data into BigQuery to run marketing attribution finance teams trust.

Samuel Edwards5 min read
What GA4 to BigQuery Attribution Actually Costs to Run

"How much does GA4 to BigQuery attribution actually cost to run per month?" For a lean paid media account staying inside Google's free tiers, under $20; for a five-platform PPC stack with scheduled dashboard refreshes and a weekly attribution model over a 90-day lookback, $200 to $800 is the honest answer, and $1,000+ overshoots are routine when the schema is wrong.

The point here is to lay out the actual bill — storage, query compute, schema choices, and the modeling layer that sits on top — so the warehouse investment is weighed against the return on ad spend it is supposed to protect.

The Export Is Free. The Warehouse Isn't.

Linking a GA4 property to BigQuery costs nothing. Standard properties send daily batch files, capped at roughly a million events per day; above that threshold, Google pauses the export rather than scaling the bill.

Storage for active logical tables is a flat per-GiB monthly rate, with the first 10 GiB free. Query compute is on-demand per tebibyte scanned, with the first 1 TiB per month free. Teams that start on the BigQuery sandbox hit a different wall: the sandbox enforces a lifetime 10 GiB storage ceiling, blocks streaming ingestion and DML, and auto-expires every table, view and partition after 60 days. Fine for a proof of concept, incompatible with any attribution build that needs a rolling 90-day lookback. Production warehouses graduate to a billed project before day one.

BigQuery Storage Pricing: Active vs Long-Term, per GiB-Month
BigQuery Storage Pricing: Active vs Long-Term, per GiB-MonthLogical storage rate: $0Active logical ($/GiB-month)Long-term logical ($/GiB-month)Logical storage rate$0$0
Stacked view of the two logical-storage rates a warehouse pays per GiB each month; partitions untouched for 90 days drop from the top tier to the bottom. Source: Data Studios, 2025

Storage Math by Traffic Tier

Google's rough conversion is one gigabyte per 600,000 events. A PPC-heavy site collecting 500,000 events per day runs about 15 million events per month, or ~25 GiB. After the 10 GiB free tier, that is 15 GiB of active storage — well under a dollar per month. A mid-market B2B site at 10 million events per day lands near 500 GiB per month, or roughly $10 in active storage. After 90 days untouched, that cold partition drops to long-term pricing and halves again.

Storage is almost never what blows the budget. It stays in the single or low double digits per month until event volume crosses billions. Query compute is where the warehouse bill lives or dies.

Pipeline funneling raw data cubes into structured compact blocks

Where Query Costs Actually Hide

A typical paid media warehouse — five ad platforms, ten accounts, three Looker Studio dashboards on scheduled refreshes — runs a monthly bill measured in hundreds of dollars when unoptimized. Dashboard refresh scans dominate; ad-hoc analyst queries are second; storage and streaming are rounding errors. The pattern repeats at the single-query level: an unpartitioned ad-level table viewed 150 times a day scans the same slab of data each time, every one of those scans billed.

Dashboard refresh frequency matters as much as scan size. A five-tile Looker Studio view refreshing hourly against raw events_YYYYMMDD shards burns through the 1 TiB free query tier inside a week. This is the kind of silent waste a quarterly PPC audit is built to catch — the BigQuery bill climbing faster than event volume is the tell.

Where a $515 Unoptimized Marketing BigQuery Bill Goes
Where a $515 Unoptimized Marketing BigQuery Bill GoesActive storage (250 GiB): $5; Dashboard refresh scans: $350; Ad-hoc analyst queries: $120; Streaming inserts: $25; Cross-region egress: $15+$5Active storag…+$350Dashboard ref…+$120Ad-hoc analys…+$25Streaming ins…+$15Cross-region…$515Total monthly bill
Dashboard scans account for roughly two-thirds of the bill before optimization. Source: Dataslayer, 2026

Schema Decisions That Change the Bill

The GA4 export writes to date-sharded tables named events_YYYYMMDD. Each row is one event, not one session; sessions, first-touch attribution, and funnels all have to be reconstructed in SQL. Shards are not native partitions, so queries against the raw layer do not prune by date automatically. Consolidating shards into a native partitioned table on event_date, then clustering on session_id or event_name, can cut query scan costs by up to 90% through partition pruning.

A production marts layer typically looks like this:

  • raw: the exported events_YYYYMMDD shards, kept 60 to 90 days
  • staging: one native-partitioned events table, clustered on session and event name
  • marts: a session table, an attribution table, and channel/campaign rollups rebuilt daily

Each layer adds a little storage and saves compute on every downstream read. The trade is almost always worth it once more than one person queries the data, because the long tail of exploratory queries scans the marts layer instead of the raw shards.

The Attribution Modeling Layer

GA4's own data-driven model uses counterfactual analysis and Shapley values to assign fractional credit, defaulting to a 30-day lookback window and configurable to 7 or 90 days. That works inside the GA4 UI until an Exploration query exceeds 10 million events on the free tier, at which point sampling kicks in; GA4 360 raises the ceiling to a billion events and unlocks unsampled Explorations.

For teams accountable to ROAS and CPL, the model lives in BigQuery. A weekly job reconstructs sessions from the event stream, joins Google Ads / Meta / LinkedIn / Amazon click data on gclid, fbclid, li_fat_id and merchant order IDs, and reallocates credit across the lookback. That job typically scans 50 to 200 GiB per week — a rounding error against the free tier, provided it is materialized once and read many times rather than re-run on every dashboard refresh. This is also the layer where an AI PPC workflow sits: feature engineering on top of event-level truth, not platform-reported conversions.

GA4 Event Mix: Why Page Views Dominate Scan Volume
GA4 Event Mix: Why Page Views Dominate Scan Volumepage_view: 15,653; user_engagement: 9,698; scroll: 5,091; session_start: 4,478; first_visit: 3,440; view_item: 2,990; view_promotion: 2,127; add_to_cart: 665; begin_checkout: 398; purchase: 36page_view15,653 · 35%user_engagement9,698 · 22%scroll5,091 · 11%session_start4,478 · 10%first_visit3,440 · 8%view_item2,990 · 7%view_promotion2,127 · 5%add_to_cart 665 · begin_checkout 398 · purchase 36
Event rows scale with page_view and engagement; purchase rows are three orders of magnitude smaller. Source: LearnSQL, 2024

Daily Fresh and the 360 Decision

GA4 360 introduced a Daily Fresh export that typically lands event data in BigQuery within 30 to 60 minutes rather than the next-day batch standard properties get. For automated smart bidding decisions scored against same-day attribution, that latency matters. For weekly performance reviews, it does not.

GA4 360 licensing sits in the mid five figures per year; Daily Fresh is one feature inside that package. The honest decision framework is not whether same-day attribution is useful — it is — but whether the stack is set up to act on it. If no automated server-side feedback loop writes back to the ad platforms, Daily Fresh is a line item with no return.

Reading the Bill

The single number worth watching is query compute dollars per 1,000 paid-media conversions tracked. Under $0.10 per thousand, the warehouse is paying its rent and the attribution model is defending ROAS at a reasonable marginal cost. Past $0.50, something in the schema or the dashboard refresh schedule is scanning raw shards it should be pulling from a partitioned marts table. Past $1.00, the warehouse costs more than the attribution insight returns, and the ROAS defense it was supposed to provide has flipped into overhead that does not survive the next budget review.

// written by
Samuel Edwards

Throughout his extensive 15+ year journey as a digital marketer, Sam has left an indelible mark on both small businesses and Fortune 500 enterprises alike. His portfolio boasts collaborations with esteemed entities such as NASDAQ OMX, eBay, Duncan Hines, Drew Barrymore, Price Benowitz LLP, a prominent law firm based in Washington, DC, and the esteemed human rights organization Amnesty International. In his role as a technical SEO and digital marketing strategist, Sam takes the helm of all paid and organic operations teams, steering client SEO services, link building initiatives, and white label digital marketing partnerships to unparalleled success. An esteemed thought leader in the industry, Sam is a recurring speaker at the esteemed Search Marketing Expo conference series and has graced the TEDx stage with his insights. Today, he channels his expertise into direct collaboration with high-end clients spanning diverse verticals, where he meticulously crafts strategies to optimize on and off-site SEO ROI through the seamless integration of content marketing and link building.