Consistent naming prevents duplicate metrics and endless debate. Use snake_case for every label, keep letters lower case, and avoid spaces or dashes. GA4 treats signup and sign_up as different events, and that typo will split your numbers in two.
Add only the parameters that slice data in meaningful ways. newsletter_signup might carry plan_type and cta_location. meeting_booked could include calendar_name and booking_country. Stay well below the twenty-five parameter limit so you never hit cardinality walls in GA4.
Pin these rules at the top of your tracking specification so nobody improvises under deadline pressure. When a new idea arrives, the first step is to check whether its proposed name follows the convention. If not, it waits until the next revision cycle.
With naming locked you are ready to draft the full specification, the subject of the next section.
Create a table in Notion or Sheets with five columns: event name, trigger, parameters, owner, and date added. Work through your trimmed list row by row. For meeting_booked set the trigger to Calendly success, list the parameters, assign a lifecycle manager as owner, and record today’s date.
Audit existing tags as you go. If an old event overlaps with a new one decide whether to rename, merge, or delete. This step prevents duplicate data flows and keeps historical reports interpretable.
Apply a strict rule: no spec row means no implementation ticket this sprint. The boundary keeps scope stable and debugging manageable. New ideas join a backlog that you can review in the next planning round.
Once the table is complete you need team approval before development begins, which we handle in the final section.
Share the specification link with Growth, Revenue Operations, Data, and Product. Ask one clear question: will these events answer your key performance indicator questions? Require an explicit reaction from each function. A single thumbs-up emoji in Slack counts, but silence does not.
When all stakeholders agree, lock editing permissions until the next sprint. This freeze guards against late additions like hover_teaser_video that creep in during crunch time and break reports a week later.
Store the approved document in the same workspace where you track projects. Future hires will see the context, understand naming logic, and avoid inventing near-duplicate events. A living, visible record is the cheapest form of data governance.
With decisions documented and frozen you can move on to wiring events in Tag Manager, confident that every hit links back to revenue impact.