What this means for your store
GA4's BigQuery export stores nested event_params and items arrays - awkward in spreadsheets, workable in Tableau via the BigQuery connector and custom SQL or flattened views. Merchandisers often need view_item → add_to_cart → purchase funnels by collection with item-level revenue. Tableau handles the visual layer once analytics flattens events_* tables to a sensible grain.
Scenario on a real storefront
Reformation's analytics team points Tableau at a curated ga4_ecommerce_events view - not raw nested export tables:
-- BigQuery view (recommended before Tableau)
SELECT
event_date,
user_pseudo_id,
event_name,
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'campaign') AS campaign,
ecommerce.purchase_revenue_in_usd AS revenue,
item.item_id,
item.item_revenue
FROM `project.analytics_123456789.events_*`,
UNNEST(items) AS item
WHERE event_name IN ('view_item','add_to_cart','purchase')
AND _TABLE_SUFFIX BETWEEN '20260101' AND '20260331'
// Tableau: Connect → Google BigQuery → Custom SQL
// Incremental extract on event_date
// Viz: funnel as % of view_item users by collection
What to do next
- Never point Tableau at raw events_* without date partition filters - cost spikes fast.
- Align
item_idwith Shopify SKU before joining to ERP margin tables. - GA4 session vs user metrics differ from Tableau
COUNTD- document which ID the cohort report uses.
Bottom line
Tableau plus BigQuery GA4 export unlocks nested ecommerce events for teams that outgrew Looker Studio. Flatten in BigQuery, filter partitions, then visualise funnels and item revenue.