Google Analytics 4's Event Naming Rules and Best Practices
The right GA4 event names can save you countless headaches down the line. Here's what to know when naming yours.
It’s important to understand Google’s naming rules for Google Analytics 4 (GA4) events before implementing the tool.
For example, there’s a list of reserved event names that you shouldn’t try to send as custom events to your property. If you do, it can disrupt your property’s segments and reports because GA4 handles reserved events differently.
Then there’s how you name your GA4 custom events.
Without a naming convention, the custom events in your property can quickly turn your data into a mess.
Getting your GA4 event names wrong can be costly. One client insisted we scrap the GA4 implementation by a prior agency and start over because their analytics team had found the custom event names unusable. When we checked out the data, we understood why.
In this guide, I’ll cover the rules for GA4 event naming and share some key points on event naming patterns so you can get things right from the get-go.
Event naming rules for GA4
Let’s start with the hard rules to follow — the non-negotiables — when naming your GA4 events.
Event naming requirements
There are a number of event naming requirements scattered throughout Google Analytics 4’s documentation.
I took the liberty of listing them out in one place:
- Event names must always start with a letter.
- Event names can include English as well as non-English letters.
- Event names can only consist of letters, numbers, and underscores — spaces, hyphens, and special characters are not allowed; if you try to send events with them, Google may replace them with underscores.
- Event names are case-sensitive — for example, the reserved "click" event and a custom "Click" event are treated as two unique events.
- Event names shouldn’t exceed 40 characters — the character limit is the same for single-width character languages like English and for double-width character languages like Japanese.
- Event names must not use reserved event names — see below for a list of reserved names on web as well as mobile data streams.
Reserved event names on web
Below is a list of reserved GA4 event names on web data streams. Don't use these names for your custom events:
- app_remove
- app_store_refund
- app_store_subscription_cancel
- app_store_subscription_renew
- click
- error
- file_download
- first_open
- first_visit
- form_start
- form_submit
- in_app_purchase
- page_view
- scroll
- session_start
- user_engagement
- view_complete
- video_progress
- video_start
- view_search_results
Reserved event names on mobile
Here are the event names to avoid using for custom events on mobile (Android and iOS) data streams:
- ad_activeview
- ad_click
- ad_exposure
- ad_impression
- ad_query
- ad_reward
- adunit_exposure
- app_clear_data
- app_exception
- app_install
- app_remove
- app_store_refund
- app_update
- app_upgrade
- dynamic_link_app_open
- dynamic_link_app_update
- dynamic_link_first_open
- error
- firebase_campaign
- firebase_in_app_message_action
- firebase_in_app_message_dismiss
- firebase_in_app_message_impression
- first_open
- first_visit
- in_app_purchase
- notification_dismiss
- notification_foreground
- notification_open
- notification_receive
- notification_send
- os_update
- screen_view
- session_start
- user_engagement
Best practices from Google to follow
Everything we covered so far tells you how not to name your events.
That’s important to know, but it also raises the question: What should you be doing?
We can turn to Google’s own GA4 event naming patterns for guidance.
If you enable enhanced measurement events for a data stream, GA4 will automatically listen to a number of user actions and collect events for them through the Google tag without the need for any additional tagging.
The names that Google uses for these events can give us valuable clues about its naming best practices.
Enhanced measurement events:
- Are formatted with snake case — all letters are lowercase, and words are joined together with an underscore.
- Have self-explanatory names — a "click" event is a click and a "scroll" event is when the user scrolls the page in their browser. An ad buyer, marketer, or analyst doesn’t need a manual to understand what those names represent.
- Follow a pattern of "verb" or "subject_verb". For example, "click" and "scroll" compared to "page_view" and "file_download". That said, there are exceptions, such as the "view_search_results" event.
So if you go by Google’s own naming patterns, your GA4 events should be all lowercase, with pairs of adjacent words separated by an underscore, and starting with either a verb that represents the user action being taken or the subject of that action when additional context in the name is needed.
Should you be doing the name when naming your custom events?
It depends.
How to name your GA4 custom events
Most of our customers who use enhanced measurement events tend to adopt Google’s naming practices for their custom events as well.
Why?
Because doing so makes the naming of their events consistent, and consistent data is more usable data.
For example, one organization, a publisher, had an audio player at the top of each article. They decided on using "audio_start", "audio_progress", and "audio_complete" for their audio player events so that those events were named consistently with Google’s YouTube player events ("video_start", "video_progress", and "video_complete").
Another organization prefixed their custom events with "c_" (for example "c_button_click") to make them easier to distinguish from GA4’s automatically collected enhanced measurement events. Still another used their stock ticker as the prefix.
So there are options — multiple options — and the question to ask here is which one works best for you.
As always, if you need help, get in touch. We can make these decisions easy for you.