The site emits
A dataLayer push with a fixed structure: event name, action, label, content section, page path. The contract lives in your repository, under code review.
Analytics & Measurement
Most GA4 setups are an afternoon of work followed by three years of quiet decay. We define the event contract in code, wire it through Tag Manager, gate it behind consent, and document what runs.
What we configure
Enterprise measurement fails in predictable ways: data scattered across tools with no single source of truth, tracking that ships without real consent handling, and editors who leave the CMS to answer a question about their own content.
A dataLayer contract in your codebase
Events fire through a custom JavaScript layer with a fixed shape: event name, action, label, and the content section. JavaScript defines the contract; Tag Manager and GA4 consume it.
GA4 and Tag Manager, configured rather than installed
Google Site Kit connects GA4, surfaces a stats panel inside WordPress, and manages Tag Manager. When you need tighter control, we inject scripts through the theme or ACF.
Custom events that map to real decisions
Asset downloads, scroll depth, form interactions and successful submissions. One interaction produces exactly one GA4 event, and nothing fires on All Pages except the base configuration.
Consent handled before the first tag fires
GDPR and CCPA consent configured with CookieYes or an equivalent and wired to the banner, so tags respect the visitor’s choice instead of running beside it. Scripts load asynchronously.
Editorial analytics for publishing teams
On WordPress VIP we add Parse.ly for engagement, scroll depth and popular-article data. Its public API brings dashboards into the admin and powers frontend components like a most-read module.
Naming standards and a documented script inventory
Variable names are standardized once and used identically in the dataLayer and in Tag Manager. Every active script is documented in version control: what it loads, where, and when.
Data that reaches the systems which act on it
Measurement is only worth the effort if something happens next. The same event contract that feeds GA4 feeds your CRM and marketing automation, so a form submission becomes a Salesforce or HubSpot record and a measured event at once. Measure, evaluate, act, then let what you learned change what you measure next.
The pipeline
Four handoffs sit between a user action and a report. Each is where measurement breaks.
A dataLayer push with a fixed structure: event name, action, label, content section, page path. The contract lives in your repository, under code review.
Each dataLayer key becomes a variable, each event name a trigger, one tag forwards the payload to GA4. Naming must match the code exactly.
Custom definitions are created for every variable arriving from Tag Manager, which makes the data queryable rather than merely received.
Explorations built on those dimensions and metrics, validated in Tag Manager Preview and GA4 DebugView before launch.
Measurement governance
Installing GA4 is a task. Keeping it accurate across three years of releases is a governance problem, and it has three parts.
Marketing decides what is worth measuring. Engineering decides how it is emitted. Writing the contract down lets those two groups disagree in a document instead of in production.
A data layer in the theme codebase gets reviewed on every release, like any other code. One that lives only inside a Tag Manager container does not, and quietly stops matching the markup.
Consent state gates the tags rather than sitting beside them. Which scripts run, on which pages, under which conditions: documented. A privacy review becomes a reading exercise.
FAQ
Worth reading even if you never hire us.
Related insights
How enterprise teams measure what works and stay compliant.
Apr 9, 2024
Marketing autonomy
Mar 22, 2026
Security and performance
Feb 14, 2026
Marketing autonomy
Take the next step
We will review your data layer, Tag Manager container, GA4 custom definitions and consent configuration, and send you the findings whether or not you work with us.