The implementation side of Amplio. Every component, every decision, every quality gate that takes a client from kickoff call to a workspace they open on Monday. Track, merge, model, serve, automate — same playbook, every client.
/ Amplio internal · 2026 · use → to advance
/ 01 — The stack
Pixel to workspace: five layers, top to bottom. Each one solves a problem that the layer above can't. Skip one and the whole stack wobbles.
Web GTM, sGTM on Stape, Consent Mode v2, EC. The 20 to 40% most teams quietly lose.
GA4, Ads, Meta, Klaviyo, Shopify, the CRM — into BigQuery as one queryable truth.
Last click, first touch, channel flow, MMM. We pick what fits, document why, ship it.
Private MCPs wrap every channel into one interface. AI agents query on a schedule.
Cloudflare Worker + KV + Access. White labelled, refreshes itself, KPIs on the cover.
One team ships all five · zero handoffs between layers · 100% white labelled
/ 02 — Layer 1 · Tracking
Every event passes through three checkpoints. The browser collects, the server forwards, the platforms receive. Each hop has a debugger and a parity check.
One container per client. dataLayer events on every page, form, and ecom interaction. Native pixels stripped — everything routes through GTM.
Stape hosted, CNAMEd to data.client.com. Receives the GA4 client request, fans out to GA4, Google Ads, Meta CAPI, Klaviyo, Hubspot. Survives consent walls and ad blockers.
Enhanced Conversions for Google Ads, CAPI for Meta, server events for Klaviyo, offline conversions back from the CRM. Hashed PII, parity checks, deduped.
+20 to 40% conversions recovered · three hops, one pipe · one first party CNAMEd domain · zero native pixels
/ 03 — Consent + reliability
A CMP banner is not a tracking strategy. We pair Consent Mode v2 with cookieless pings, parameter passing, and conversion modeling so the data still adds up after the user clicks reject.
Whichever CMP the client uses, it talks to GTM through the Consent Mode v2 API. Storage flags wired correctly, default to denied, regional variants for EEA + UK.
Even on reject, GA4 sends an anonymous, cookieless ping. Google's modeling engine fills the gap on the platform side — this is where the 34% comes back.
Inside our warehouse, first party heuristics backfill what consent hides, so the modeled numbers hold up beyond what the platforms report.
Every consent rollout ships with a 14 day parity report — sessions, events, conversions before and after. We do not call a setup live until the numbers tighten.
/ 04 — Layer 2 · Merging
Every platform exports a different shape. We pull them all into BigQuery, conform the schema, and join on the channel_flow spine — the user journey reconstructed across sessions, ads, and orders.
GA4 lands in BigQuery via the native export, modelled with ga4dataform.com. Google Ads, Meta, Klaviyo and Shopify load via IP Amplio or Stape data feeds; the CRM arrives by Zapier or webhook. Daily refresh, intraday for ad spend.
Conformed dimensions in amplio_client.dim_*, the channel spine in fct_channel_flow. Order line items join to ad clicks by gclid, fbclid, hashed email, or device fingerprint — in that order.
The dashboard reads pre aggregated views; the Cloudflare Worker reads a daily JSON snapshot from KV. Sub second loads, no warehouse bill on every page view.
Six channels conformed in one schema · one spine joins them · 24h refresh cadence · dashboard loads under a second
/ 05 — Layer 3 · Modeling
We do not religiously default to a single attribution view. We pick by engagement size, by channel mix, by how the client's CFO already counts — then ship all three in the dashboard and let the spread tell the story.
What every ad platform reports. We replicate it in the warehouse for parity. Always there as the lower bound.
Reconstructed from the GA4 + ads data in the warehouse. Position based weights tuned per client. Surfaces the assists ad platforms drop. The renewal closing line lives here.
Marketing mix model on weekly spend + revenue. PyMC Bayesian fit, geo holdouts when available. Used when channels overlap heavily or when offline matters.
Three models side by side in one dashboard · +37% average ROAS lift after the model lands · one documented truth per engagement · no default, no dogma
/ 06 — Layer 4 · MCPs + agents
A warehouse on its own does nothing. We wrap every channel in an MCP server, register them with our agents, and let scheduled agents read the warehouse, the inbox, and the dashboard so a memo lands before Monday.
One MCP wraps 40+ marketing platforms — Google, Meta, TikTok, Klaviyo and more. Standalone MCPs for Cloudflare, Gmail, Attio, PostHog, Notion, GitHub, Webflow, Figma, Slack, Drive.
deploy-cycle ships dashboards every 4h. daily-intelligence pulls data and lints the vault at 08:00. outreach-cycle prospects at 11:00. weekly-reports fires day gated reports at 12:00.
Health scores written to the client space, attribution shifts flagged in Slack, recommendations queued in the dashboard. The Monday morning brief lands in the inbox before the first standup.
AI agents query on a schedule instead of a human exporting CSVs. The connective tissue between warehouse and decisions — the unfair advantage.
/ 07 — Layer 5 · Dashboards
Every client gets a custom HTML workspace served from a Cloudflare Worker, hydrated from a KV snapshot, gated by Cloudflare Access. Mixpanel chart grammar in Amplio brand colors (Rule #21), white labelled, sub second load.
A Python generate.py compiles tokens, layout strings, and the daily snapshot into one self contained HTML file. CSS inlined, charts as SVG, zero JS frameworks.
CLAUDE.md Rule #20. Each dashboard ships with deploy-check.sh + deploy.sh, secrets in ~/.amplio-secrets, a custom domain on *.ampliodata.io with an Access policy.
The deploy-cycle agent regenerates and redeploys every dashboard in the registry every 4h on the hour. The data layer — snapshot.json — refreshes once daily through Phase G.
4h deploy cadence · first contentful paint under a second · 100% behind Access · zero SaaS dashboard subscriptions
/ 08 — Onboarding playbook
From access kickoff to a workspace the client opens, in a 72 hour sprint. Validate is where the magic happens — and where most external setups never get to.
A 30 minute call: Tag Assistant, DebugView, GTM review. Access checklist same day.
New web GTM, Stape sGTM, Consent Mode wired, BigQuery export on, Dataform deployed.
DebugView green. Tag Assistant green. CAPI dedup above 80%. A 14 day parity report.
client.ampliodata.io behind Access. Snapshot live, first Monday memo scheduled.
Monthly health score, quarterly model review. The tracker logs every call we make.
72h audit to first dashboard · 14 day parity sign off window · CAPI dedup gate above 80% · every recommendation logged
/ 09 — The tool stack
We do not reinvent the stack per client. The same six surfaces show up on every engagement, top to bottom. Deep familiarity beats shallow breadth.
| Role | Tool | What it does |
|---|---|---|
| COLLECT | Google Tag Manager | Web container + server container, both client owned, both Amplio managed. |
| TRANSPORT | Stape | sGTM hosting, transparent pricing, a CNAME on a first party domain. |
| WAREHOUSE | BigQuery + Dataform | ga4dataform.com models the GA4 export; Dataform conforms every other channel into the same shape. |
| SERVE | Cloudflare Workers + KV | One Worker per dashboard, KV snapshot, Access policy. Rule #20. |
| AUTOMATE | MCP + Cowork agents | IP Amplio MCP plus standalone MCPs. Scheduled agents run the four sister cycles. |
| SHIP | GitHub + the vault | Code in GitHub, knowledge in the IPARAG vault. Both are searchable, both are Claude readable. |
/ 10 — Quality gates
A setup is not live until all three gates are green. We will not invoice for an engagement that fails any one of them. Renewals depend on numbers that hold up, not on numbers that ship.
Every event the dataLayer fires shows up in GA4 DebugView with the right parameters. Tag Assistant green on every page template. Server preview green for every event.
GA4 vs Stripe within 5%. Meta CAPI dedup score above 80%. Google Ads conversions match GA4 imports. We compute these every Friday and post the diff in Slack.
Stape uptime, GA4 ingestion volume, Dataform freshness, KV snapshot age. PostHog session replay on the dashboard itself. Anything red pages on call.
GA4 vs Stripe variance under 5% · CAPI dedup score above 80% · zero silent failures — everything pages
/ 11 — Operating cadence
Four scheduled agent cycles run the platform between standups — dashboards fresh, vault tidy, pipeline moving, reports out the door.
Regenerates and redeploys every dashboard in the registry. Idempotent.
Client snapshots, vault-autoresearch, vault lint, memory organize, Monday briefing.
LinkedIn + job board crawl, ATS careers UK + DACH, Attio sync, one daily summary.
Wednesdays the Certify ads experiment. The first of the month the monthly report.
Slack, vault, inbox. Everything the agents flag is yours to act on or sign off.
Four sister cycles · 24/7 system uptime · one human in the loop, by design · zero manual rebuilds — dashboards self heal
/ 12 — Your scope
The system handles the cadence. The platform handles the runtime. You handle the signal — the parts that need a human reading the data and making a call. Knowing which is which is half the job.
Three lanes · one recommendations tracker per client · zero duplicate work if the agents already do it · the leverage comes from staying in your lane
/ Next step
Three things to do this week. Read the playbooks for the layer you are weakest on. Shadow a live build end to end. Take ownership of one client checklist and run it green.