A shop that exists to be measured
Every click here pushes a documented event onto the data layer. Open the Lab Console in the bottom-right corner and watch it happen.
Start here. Nothing is sent anywhere yet. With no container ID in
assets/tracking/config.js the lab runs in contract-only mode: the data layer
works, the console shows every push, and no third party is involved. Read
docs/01-mental-model.md, then add your own GTM-XXXXXXX.
What you can practise on
Ecommerce funnel
List → product → cart → checkout → purchase, in the exact GA4 item shape.
Lead funnel
A multi-step quiz and a contact form, with start, error and submit events.
Consent
Real Consent Mode v2 with all seven signals, set before the container loads.
Content
Scroll depth, outbound clicks and downloads on a long article.
Three ways to load a tag
The lab supports all three so you can compare them yourself. Flip
proxy in config.js and reload.
- Google's CDN. The normal snippet. Simplest, and the one content blockers stop.
- First-party proxy. Same container, served from this origin by a
Cloudflare Pages Function. See
docs/04. - Server-side container. The browser talks only to you; you decide
what leaves. See
docs/05.