GA4 event names aren't just labels. They determine how data gets grouped in reports, whether events appear in predictive audiences, how parameters get associated with dimensions, and whether your data is readable six months from now when someone else inherits the property.
Most naming problems are invisible until you try to build a report and find three versions of the same event, or you hand the property to a client and they can't tell what half the events mean.
The rules that matter
GA4 event names are case-sensitive. form_submit, Form_Submit, and formSubmit are three different events that will never be grouped together in reports. Google's own recommended events all use snake_case, and GA4's internal auto-collected events use snake_case. Follow the same convention for everything you create.
The clearest event names describe what happened: an action (verb) on a thing (noun). This makes reports immediately readable and makes it obvious what the event represents without needing documentation.
GA4 has reserved event names that have specific meanings. Using them for something different corrupts your data and can interfere with GA4's machine learning features. Never create custom events named: click, scroll, view_item, purchase, begin_checkout, or any other GA4 recommended event name unless your event actually represents that action.
GA4 technically allows event names up to 40 characters and parameter values up to 100 characters. Staying within these limits avoids truncation. More importantly, shorter names are easier to read in reports, easier to type without errors, and less likely to be mistyped differently by different people.
If you have a web property and a mobile app both sending to the same GA4 property, use identical event names for the same actions. purchase should mean the same thing on iOS, Android, and web. Inconsistency makes cross-platform analysis impossible.
Good vs. bad names
-
form_submitGood -
FormSubmitBad — camelCase -
video_playGood -
video-playBad — hyphens not allowed -
cta_clickGood -
clickBad — reserved name -
signup_completeGood -
Signup CompleteBad — spaces not allowed -
file_downloadGood — or use GA4's auto event -
download_click_pdf_button_homepageToo long — use parameters instead -
chat_openGood -
chatOpen2023v2Bad — version in name, camelCase
Parameter naming
The same rules apply to parameter names: snake_case, descriptive, consistent. Parameters add context to events — they're what turns cta_click into a report that tells you which CTA was clicked, on which page, in which position.
| Parameter | Good | Bad |
|---|---|---|
| Button label | button_text |
buttonText, BTN |
| Page section | page_section |
section, PageSection |
| Product category | item_category |
cat, product_cat |
| Form name | form_name |
form, formID |
hero_cta_click and footer_cta_click, create one cta_click event with a page_section parameter. This keeps your event list manageable and your reports flexible.
GA4 reserved names to avoid
GA4 reserves certain event and parameter names. Using these for custom tracking will either be silently ignored or cause conflicts with auto-collected data. The most common ones to be aware of:
| Reserved event names | Why they're reserved |
|---|---|
ad_click, ad_exposure, ad_impression | Google Ads integration |
app_remove, app_store_refund, app_update | Mobile app lifecycle |
click, scroll, session_start, user_engagement | Auto-collected events |
purchase, refund, add_to_cart, begin_checkout | E-commerce recommended events |
first_open, first_visit | Auto-collected new user events |
add_to_cart event with the standard parameters. GA4 has pre-built reports for these events, and they integrate with Google Ads, Merchant Center, and predictive audiences automatically.
How to audit your existing events
If you've inherited a property or your tracking has grown organically, your event names are probably a mess. Here's how to assess the damage:
1. Export your event list. In GA4 go to Configure → Events. Look for obvious problems: camelCase, spaces, hyphens, duplicate concepts with different names.
2. Check for near-duplicates. Events like form_submit and form_submitted and form_complete often exist in the same property tracking the same thing. Each represents lost data that can't be retroactively combined.
3. Identify zombie events. Any event that shows 0 occurrences in the last 30 days is either obsolete or broken. Neither is good.
4. Check parameter consistency. The same concept should always use the same parameter name. If some events use page_location and others use page_url for the same value, your segmentation will be wrong.
Unfortunately, you can't rename events retroactively — GA4 doesn't support it. The only fix for bad event names is to implement the correct name going forward and wait for enough data to accumulate before sunsetting the old one.
Check your property automatically
Our automated audit flags event naming issues, identifies zombie events, checks for duplicate tracking, and verifies that recommended event parameters are present and correct — in under 60 seconds.