HomeBlogAnalytics

Analytics · 7 min read

How to write a tracking plan (with a free template)

The tracking plan I write with every client on day one: what goes in each column, the order I fill it in, the GA4 rules I check, and a free template to copy.

A spreadsheet drawn as coloured rows, with a coral row marked by a star and a green tick beside the rows that have been checked

Most founders I speak to already have analytics installed. Very few of them have a tracking plan, which is why two people in the same meeting can quote two different conversion rates. I write a tracking plan with every client in the first days of the work, so this is the one I use, with a template you can copy.

What is a tracking plan?

A tracking plan is a single table that lists every event your product sends to your analytics tools. For each event it says when it fires, which details it carries, which tools receive it and who is responsible for it.

An event is one thing a person does that you want to count, such as signing up or paying. The details it carries are called properties, or parameters in GA4. They are what let you ask better questions later, like which plan people chose or which page they came from.

In my work, the tracking plan is the first thing I write and the first thing I ask the team to sign off. I explain why it comes before everything else in what I set up first, and in what order. This post is about how I actually fill it in.

Download the free tracking plan template

Download the template (CSV, opens in Google Sheets). It is the same layout I start from with clients, with 13 example events for a typical sign-up and subscription product.

To open it in Google Sheets, create a blank spreadsheet, then go to File → Import → Upload and choose the file. Pick “Replace current sheet” and Sheets will split it into columns for you. In Excel you can simply double-click the file.

The template has ten columns:

  • Event name, in lower-case snake_case, which means words joined by underscores, like sign_up.
  • When it fires, written as the exact moment, such as “after the server confirms the account”.
  • Properties, each with an example value, such as plan: pro_monthly.
  • Funnel stage, GA4 event type, Key event?, Tools, Owner, Status and Notes.

Delete the example rows that do not fit your business, and keep the two instruction rows until you no longer need them.

The order I fill it in, on day one

I never start with the list of events. I start with the journey, because the events only make sense once everyone agrees on the steps.

1. Agree the funnel stages

First we agree the stages a customer moves through, in plain words. At Givergy I mapped the website in three stages: awareness, acquisition and activation. That was much easier for the team to review than one enormous spreadsheet, and their developers built the tracking from it.

2. Write down what “activated” and “converted” mean

This is the hardest row in the whole plan, and I do it before anything else. Activation is the one action that shows a new user has got real value, and every business defines it differently. If the team cannot agree on it in the room, I write down a first version and we test it against the data later.

3. List the events for each stage

Then I go stage by stage and list the actions we need to count. For a young product that is usually 10 to 20 events. I would rather have 15 events that everyone understands than 80 that nobody opens.

4. Add the properties

For each event I ask one question: what will we want to split this by? A purchase with no plan, value or currency tells you how many people paid and nothing else. I check this on almost every setup I am handed, and it is one of the six checks I run on GA4.

5. Fill in owner and status, then send it for sign-off

Every row gets an owner and a status, such as “To build”, “Built” or “Checked”. Then the founder, the developers and whoever runs marketing read it and agree it in writing. Only after that do the developers start building.

6. Build it, check it and keep it up to date

The developers build from the plan, and then I check every event against real traffic. I look at whether it fires when it should, whether it fires only once, and whether each property arrives with a sensible value. Only then does the status change to “Checked”, and only checked events go into dashboards.

The plan does not stop there. Every time the product changes, the plan changes first. At MyTenNights I rewrote the tracking plan for the following campaign to match the new website, and added Mixpanel at the same time.

GA4 custom events and key events: the rules I check

If GA4 is one of your tools, there are a few rules from Google that I check every row against. They are easy to break by accident and annoying to fix later.

  • Use a recommended event name when one fits. Google publishes a list of recommended events, including sign_up, login, generate_lead, begin_checkout and purchase. Google’s page on custom events says an existing event is always better, because it fills in dimensions and metrics automatically.
  • Write custom events only for what is left. A custom event is one you name yourself, such as onboarding_step_completed. The naming rules say names must start with a letter, use only letters, numbers and underscores, and are case sensitive. That means Sign_Up and sign_up count as two different events.
  • Stay inside the limits. GA4’s collection limits allow event names of up to 40 characters, up to 25 parameters per event, and parameter values of up to 100 characters.
  • Send currency with value. Google’s event reference says currency is required whenever you send value. I put both in the same row so nobody forgets.
  • Register the parameters you want to analyse. In GA4 you create a custom dimension for each parameter you want to report on. A standard property allows 50 event-scoped custom dimensions, so I only register the ones the plan says we need.

Which events become key events?

A key event is GA4’s name for an event that matters to your business, such as a sign-up or a purchase. You mark one by clicking the star next to it in Admin, under Events. A standard property can have up to 30 key events, but I usually mark three or four. If everything is a key event, your reports stop telling you what matters.

In my template, the key events are sign_up, activated, generate_lead and purchase. If you run Google Ads, these are also the events you can turn into conversions for bidding.

One plan for every tool

Most of my clients send events to more than one tool, often GA4 and a product analytics tool such as Mixpanel or PostHog. I explain how I choose in GA4 or PostHog. Whatever the tools are, they all work from the same tracking plan, with the same names and the same meaning.

At Givematch I set up GA4 and then Mixpanel from a single tracking plan, so the two tools never disagreed about what a donation was. At Kudobuzz I wrote the plan for sign-ups and activation first and built the email automation on the same events. When email journeys and reports use different definitions, they drift apart and somebody spends months matching them up.

That is why my template has a Tools column. If an event goes to GA4, PostHog and your CRM, it says so in one place.

When a full tracking plan is right, and when it is not

A written tracking plan is worth the effort when:

  • You have, or are about to have, a sign-up, booking or checkout journey with several steps
  • More than one person makes decisions from the numbers
  • You send data to more than one tool, or you plan to
  • Your developers are about to build or rebuild the product

It is probably more than you need when your site is a few marketing pages with one contact form. In that case, GA4’s automatic events, one generate_lead event and a short note of what counts as a lead will do the job. You can grow it into a full plan later.

How I can help

Writing and checking the tracking plan is the first part of a growth setup Build. We agree the stages and the definitions together, I write the plan and the brief for your developers, and I check every event before anyone builds a dashboard on it. Then the same plan feeds your analytics, your CRM and your email journeys.

If you are not sure about your activation event, or your numbers already disagree, have a look at how a Build works or book a thirty-minute call below. I will tell you honestly whether you need the full project or just a careful afternoon with the template.

write down what counts before anyone tracks anything, and keep it in one place

Questions people ask

What is the difference between a tracking plan and a measurement plan?
People use the two names loosely. When I say measurement plan, I usually mean the goals and the numbers you report. The tracking plan is the detailed list underneath it: every event, when it fires and what it carries. I write both, but the tracking plan is the one your developers work from.
How many events should a tracking plan have?
For a young product I usually start with 10 to 20. That is enough to see every step of the main journey. You can always add more later, and it is much harder to clean up a plan with 80 events nobody looks at.
Should I use GA4's recommended events or my own names?
Use Google's recommended name whenever one fits, such as sign_up, generate_lead or purchase. Google says these fill in extra dimensions and metrics automatically. I only write a custom event when nothing on Google's list describes the action.
Who should own the tracking plan?
One person, and in my projects that person is me until I hand it over. The developers own building each event, but somebody has to decide what goes in the plan and keep it up to date. If everyone owns it, it goes out of date within a month.
Do I need a tracking plan if I only use GA4?
Yes. GA4 collects page views on its own, but it cannot guess what a sign-up or an activated user means for your business. The plan is how you tell it, and it is also how you check later that it is still right.
Giovanni Perri
Giovanni Perri

I build growth systems with AI for UK and English-speaking startups, then run them with your team or on my own. More about me · how I work.

Written November 2026. Platform facts checked at the time of writing; if you are reading this much later, check them again.

Giovanni Perri

A thirty-minute call, no slides.

If you need this done rather than just read about it, that is what I do.