Tagline: site tags to trusted KPIs
A tagged storefront's GA4 events, taken through BigQuery, PySpark on Dataproc and Airflow to KPIs, multi-touch attribution and alerts that fire when the tags or the numbers go wrong. This page is a snapshot of the pipeline's marts, not a live connection: aggregates only, refreshed on demand from the marts.
Loading the snapshot…
What Tagline is, and the two sources
A small React store, Tagline Supply, pushes GA4's recommended ecommerce events against a written, machine-checked contract. The pipeline unions two GA4 exports, stitches sessions to signed-in people, deduplicates orders, credits each order across the buyer's journey under six models, and checks the tags again on the collected data.
- Tagged site (dataLayer + gtag)
- GA4 daily export
- BigQuery models and checks
- PySpark attribution on Dataproc
- Airflow DAG
- Anomaly alerts
KPIs
Totals over each source's days, from mart_kpi_daily. Orders exclude purchases with no transaction id and no revenue; revenue is the items subtotal, without tax or shipping.
Daily sessions and revenue, with the anomaly alerts
The GA4 sample, day by day. The marks under the charts are the days the Stage 5 anomaly rules raised an alert (kpi_alerts). The site has one exported day, too few for the rules' history.
Show the days as a table
Funnel step rates
A closed funnel per session: a session reaches a step when it has that step's event and every earlier one. Each bar is the share of the step before that went on to this one.
Show the funnel as a table
Attribution: who gets the credit under six models
The Spark job credits each order across the buyer's sessions in the 30 days before it, under last click, last non-direct click, first click, linear, time decay (7-day half-life) and position-based (40/20/40). The weights sum to 1 per order and model (the rules, in spark/README.md).
Show this channel as a table
Tag health
The tags are watched at three points: before a release, on every event GA4 exported, and on the KPIs built from them.
mart_tag_health_daily. The checks are generated from the tagging contract.
Site campaigns synthetic spend
The site's sessions by landing campaign from mart_campaign_daily, joined to campaign_costs. The traffic is simulated and the spend is seeded, so ROAS here shows the join working, not a business result.
What a daily run costs, and how long it takes
Measured runs of the daily Airflow DAG, from the project's write-ups (linked under each figure). Not from the snapshot: BigQuery does not know them.