Northbound.

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.

Browse the shop Take the quiz

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.

  1. Google's CDN. The normal snippet. Simplest, and the one content blockers stop.
  2. First-party proxy. Same container, served from this origin by a Cloudflare Pages Function. See docs/04.
  3. Server-side container. The browser talks only to you; you decide what leaves. See docs/05.