Why naming conventions matter more in GA4
In Universal Analytics, most tracking happened through pageviews and a handful of standard event categories. GA4 is event-based throughout — every interaction is an event with a name and parameters. The flexibility is useful. The problem is that without a consistent naming convention, you end up with form_submit, formSubmit, Form Submitted, and contact_form_submission all referring to the same thing, in different properties, set up by different people over time.
The core rules
- Lowercase only. GA4 event names are case-sensitive.
page_view and Page_View are different events.
- Use underscores, not spaces or hyphens.
button_click not button-click or button click.
- Use the object_action pattern. The thing first, then what happened to it.
form_submit, video_play, file_download.
- Be specific in parameters, not in the event name. Use one event name like
form_submit with a parameter like form_name: 'contact' rather than creating contact_form_submit, newsletter_form_submit, etc.
- Keep names under 40 characters. GA4 enforces this limit.
Standard event reference
Navigation
| Event | When to fire | Key parameters |
page_view | Every page load (automatic in GA4) | page_location, page_title |
scroll | 90% scroll depth (automatic) | percent_scrolled |
outbound_click | Click to external domain (automatic) | link_url, link_domain |
Forms
| Event | When to fire | Key parameters |
form_start | First interaction with a form field | form_name, form_id |
form_submit | Successful form submission | form_name, form_id |
form_error | Validation error shown | form_name, error_message |
Content & Media
| Event | When to fire | Key parameters |
video_start | Video begins playing | video_title, video_url |
video_progress | 25%, 50%, 75% thresholds | video_title, video_percent |
video_complete | Video reaches 100% | video_title |
file_download | Link to a downloadable file clicked (automatic) | file_name, file_extension |
Engagement
| Event | When to fire | Key parameters |
search | Site search performed | search_term |
select_content | Tab, accordion, filter selected | content_type, content_id |
share | Share button clicked | method, content_type |
Parameters to standardise across your implementation
These are the parameters worth defining once and using consistently everywhere:
content_category — the section or category of the page
content_type — what kind of content (article, product, video, form)
element_text — the visible text of the element interacted with
element_location — where on the page (header, hero, footer, sidebar)
form_name — a short identifier for the specific form
Keeping it maintainable
Write your event naming conventions down in a shared document before implementation starts. Include examples for each event type your site uses. When new tracking is added later — by a different person, six months later — the reference prevents drift. A two-page naming guide is worth more than a perfect initial implementation that nobody maintains.