← All Guides

How to Write a Measurement Plan: From Business Goals to a Tracking Specification Your Developer Can Build

A measurement plan turns business goals into events, parameters and conversions before anyone touches GTM. This guide walks through the five layers, provides a template with worked examples for ecommerce, lead generation and SaaS, and shows how to turn it into a dataLayer specification.

Atiqul Islam
Written by Atiqul Islam

Tracking & analytics specialist. 278+ GTM, GA4 and server-side tracking projects for clients in the US, UK and Australia.

Rather not do this yourself? I set this up for clients every week. Free 15-minute audit, no obligation.

Book a Free Audit

Every tracking project that went wrong in my experience went wrong before GTM was opened: nobody had agreed what counted as a lead, which pages were in the funnel, or what the developer needed to push. A measurement plan fixes that in a couple of pages. This guide gives the structure, a template, worked examples, and the hand-off to a dataLayer specification.

The Five Layers

  1. Business objectives. Why the site exists in business terms.
  2. Goals and KPIs. What success looks like, with numbers.
  3. Key actions. What a visitor does on the site that moves a KPI.
  4. Events and parameters. How each action is captured, with the data that describes it.
  5. Conversions per platform. Which events become key events in GA4, conversion actions in Google Ads, and events in Meta, and which are primary.

Work top down. If an event cannot be traced back to an objective, it does not go in the plan.

The Template

1. Business objectives

One or two sentences. "Generate qualified enquiries for tracking services from ecommerce and lead-gen businesses in the US, UK and Australia."

2. Goals and KPIs

Goal KPI Target Source of truth
Win clients Qualified audit bookings per month 12 Calendar plus CRM
Grow reach Guide reads per month 2,000 GA4 content_read
Product adoption Chrome extension installs 150 per month Chrome Web Store, GA4 click

3. Key actions

Action Where Why it matters
Book an audit call Calendly embed, contact section Primary business outcome
Submit contact form, qualified Contact form with role field Secondary lead path
Click WhatsApp Floating button, contact section Lead path for some regions
Read a guide Guide pages Audience and SEO value
Click Install on Chrome Extension section and page Product adoption

4. Events and parameters

Event Trigger Parameters Platform mapping
calendly_booking Calendly scheduled message booking_tool, calendly_event_uri GA4 generate_lead, GAds Booking, Meta Schedule
form_submit_success Form server success form_name, lead_role, lead_service, lead_qualified, user_email GA4 generate_lead, GAds Lead if qualified, Meta Lead
whatsapp_click Click on wa.me link click_location GA4 custom, secondary
content_read 50 percent scroll plus 60 seconds content_type, content_category GA4 custom
extension_install_click Click on store link click_location GA4 custom, GAds secondary

5. Conversions per platform

Platform Primary Secondary
GA4 key events generate_lead content_read, whatsapp_click
Google Ads Booking, Qualified Lead WhatsApp click, Install click
Meta Schedule, Lead none

Worked Examples

Ecommerce

Objective: profitable online sales. KPIs: revenue, ROAS, new customer rate. Key actions: view product, add to cart, begin checkout, purchase. Events: GA4 recommended ecommerce events with full items arrays. Conversions: purchase primary everywhere with value; add_to_cart and begin_checkout secondary in Google Ads. Extra parameters: customer_type new or returning on purchase, payment_method. Offline: refunds imported.

Lead generation

Objective: qualified leads for a service business. KPIs: qualified leads, cost per qualified lead, close rate by channel. Key actions: call, form, booking. Events: phone_click with location, form_submit_success with qualification fields, booking event from the scheduler. Conversions: qualified form and booking primary; raw form and phone click secondary; CRM stage uploaded as Enhanced Conversions for Leads. Extra: capture gclid and UTMs into the CRM.

SaaS

Objective: paid subscriptions. KPIs: trials, trial to paid rate, MRR by channel. Key actions: sign up, start trial, activate, subscribe. Events: sign_up with method, start_trial, activation_complete, purchase with plan as item. Conversions: subscribe primary in Google Ads and Meta once volume allows, trial primary until then. User properties: plan, trial status. User ID for cross-device.

From Plan to dataLayer Specification

Each event row becomes a specification entry the developer implements:

// form_submit_success: push after the server confirms the submission
window.dataLayer.push({
  event: 'form_submit_success',
  form_name: 'Contact',            // string, the visible form title
  form_id: 'contact-main',         // string, stable identifier
  lead_role: 'business_owner',     // string from the role dropdown
  lead_service: 'ga4_setup',       // string from the service dropdown
  lead_qualified: true,            // boolean, role in the qualified set
  user_email: 'name@example.com',  // string, lowercased
  user_phone: '+15551234567'       // string, E.164 if provided
});

Add for each event: when exactly it fires, what must not trigger it, and an example payload. The dataLayer guide on this site covers conventions.

Governance

Outcome

Agreement on what matters before any tag is built, a specification the developer can implement without a meeting, a container that maps one to one to business goals, and a document that outlives any one person working on the site.

Frequently Asked Questions

Why write a plan instead of just setting up tracking?

Because tracking without a plan measures what was easy, not what matters. The plan forces agreement on what a conversion is, what questions the data must answer, and what the site has to expose. It also becomes the specification the developer builds against and the document the next specialist inherits.

How long should it be?

Two to four pages. One page of goals and KPIs, one or two pages of events with parameters, half a page of conversions per platform, and a dataLayer specification table. If it is longer, it is probably listing things nobody will use.

Who owns it?

The business owns it; the tracking specialist writes the first version with them; the developer implements the specification; the specialist builds GTM against it. Store it with the business's documentation, not in a freelancer's drive.

How often does it change?

Review it quarterly and whenever a new conversion, platform or site section appears. Version it; the plan should say when it was last updated and by whom.

What if the site already has tracking?

Write the plan anyway, then audit the existing setup against it. The gap list becomes the work plan. The Tracking Audit guide on this site covers the audit side.

Want This Done Right the First Time?

Book a free 15-minute audit call. I'll review your setup, show you what is broken, and tell you exactly what it takes to fix it.

Chat Now