Analytics implementation demos

Two storefronts, two measurement models

Each site below is a working ecommerce journey with its own GA4 property, its own GTM container and its own Consent Mode v2 implementation. They share an origin but never share a page — the containers load per route, so neither property can see the other's traffic.

Freshcart

UK online grocery — multi-item trolley, delivery slots, login gate

GTM container
GTM-5PDKGPN9
GA4 property
Freshcart
Multi-page app
Google tag's automatic page_view — no manual push
  • Full 11-event ecommerce funnel with a 4-level item taxonomy
  • Delta-based quantity steppers, multibuy and was/now pricing
  • Anonymous → identified transition at the slot-booking gate

Roamio

Travel eSIM storefront — single-item cart, instant fulfilment

GTM container
GTM-M2WL48N5
GA4 property
Roamio
Single-page app
Manual page_view pushed on every route change
  • GA4 ecommerce funnel with promotion tracking
  • Consent Mode v2 with a three-choice banner
  • Server-side tagging via a Cloud Run container
Visit site
Technical specDownload PDF

Why two sites rather than one

The correct page-view strategy depends on the navigation model, and one site can only demonstrate one answer. Roamio is a single-page app: the document never reloads, so route changes must be pushed to the dataLayer by hand. Freshcart is a multi-page app: every navigation is a real document load, so the Google tag's built-in page view is the only correct source and a manual push would double-count every page.