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_checkoutandpurchase. 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 meansSign_Upandsign_upcount 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
currencyis required whenever you sendvalue. 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?
How many events should a tracking plan have?
Should I use GA4's recommended events or my own names?
Who should own the tracking plan?
Do I need a tracking plan if I only use GA4?
Written November 2026. Platform facts checked at the time of writing; if you are reading this much later, check them again.