If your GA4 property has more than 50 custom events and half of them are named things like Click_Button, click-button, and clickButton, you don't have an analytics problem. You have a naming problem. And it's costing you data, reports, and audiences you'll never get back.
This guide covers everything you need to build a bulletproof GA4 event naming system — from Google's official rules to a practical taxonomy framework you can implement today. We also built a free GTM Event Naming Audit tool that scans your event names against GA4 best practices in seconds.
Why Event Naming Matters More in GA4 Than Universal Analytics
In Universal Analytics, you had a structured hierarchy: Category, Action, Label. You could get away with sloppy naming because the structure itself provided context. Category: Button, Action: Click, Label: Hero CTA — messy, but functional.
GA4 flattened that hierarchy. Every interaction is an event with optional parameters. There's no more Category/Action/Label safety net. The event name itself carries the entire semantic weight. If your event name is ambiguous, your data is ambiguous.
Here's what breaks when naming goes wrong:
- Explorations become unusable. You can't filter or segment on events you can't find or distinguish.
- Audiences stop working. GA4 audiences built on incorrectly named events won't match users properly, which means your Google Ads remarketing lists are garbage.
- BigQuery exports become a nightmare. If you're exporting to BigQuery (and you should be), inconsistent event names create schema sprawl and break downstream SQL.
- You hit the 500-event limit. GA4 allows 500 distinct event names per property. Duplicate or variant names eat into this cap fast.
- Conversions miscounted. Mark a misspelled event as a conversion and you're either double-counting or missing data entirely.
In India's fast-growing SaaS and D2C ecosystem, we see this constantly. Companies scaling from 10K to 1M monthly users discover their analytics foundation was built on sand — because nobody standardized event names at the start.
GA4 Recommended Events vs. Custom Events: When to Use Which
Google provides three tiers of events in GA4:
1. Automatically Collected Events
These fire without any configuration: first_visit, session_start, page_view, user_engagement, first_open (for apps). You can't rename or disable them. Don't try to duplicate them with custom events.
2. Enhanced Measurement Events
Toggled on in the GA4 admin: scroll, click (outbound), video_start, video_progress, video_complete, file_download, form_start, form_submit. These are solid for basic tracking but limited in parameter depth. Use them as a baseline, not a replacement for proper GTM implementation.
3. Recommended Events
This is where it matters. Google publishes a list of recommended event names for specific verticals. If Google has a recommended event for what you're tracking, use it. Period. No creative variations.
Why? Because recommended events unlock built-in GA4 reports. Use purchase and you get the Monetization reports automatically populated. Use my_purchase_event and you get nothing.
4. Custom Events
For anything not covered by the above. This is where most naming problems happen because there's no guardrail — you're creating the name from scratch.
The rule is simple: check the recommended events list first. If it exists, use it exactly as documented. Only create custom events for truly unique interactions.
The Naming Rules: What GA4 Actually Enforces
GA4 has hard technical constraints on event names. Violate them and your data either breaks silently or gets dropped entirely:
- Snake_case only. All event names must use lowercase letters and underscores.
add_to_cart— notAddToCart, notadd-to-cart, notAdd To Cart. - 40 character maximum. Event names can't exceed 40 characters.
user_completed_onboarding_flow_step_threeis 43 characters — it gets truncated or rejected. - Must start with a letter.
3d_viewis invalid.view_3dis fine. - No reserved prefixes. Never start event names with
ga_,google_, orfirebase_. These are reserved by Google. Events using them will be silently dropped. - No spaces. Spaces in event names cause silent failures in some GTM configurations.
- Case sensitive.
Page_Viewandpage_vieware different events. This is the #1 source of duplicate events we see in audits.
Complete List of GA4 Recommended Events by Category
E-commerce Events
If you run an online store — whether on Shopify, WooCommerce, or a custom stack — these are non-negotiable:
view_item_list— user views a product listing pageselect_item— user clicks a product from a listview_item— user views a product detail pageadd_to_wishlist— user saves a productadd_to_cart— user adds item to cartremove_from_cart— user removes item from cartview_cart— user views cartbegin_checkout— user starts checkoutadd_shipping_info— user submits shipping detailsadd_payment_info— user submits payment detailspurchase— transaction completesrefund— transaction refunded
Lead Generation Events
For B2B, SaaS, and service businesses:
generate_lead— form submission, demo request, contact formsign_up— account creationlogin— user logs insearch— site searchselect_content— user selects content (resource, article, video)share— user shares content
Engagement Events
view_promotion— user sees a promotional bannerselect_promotion— user clicks a promotionearn_virtual_currency— for gamified platformsspend_virtual_currency— in-app currency usagetutorial_begin— user starts onboardingtutorial_complete— user finishes onboarding
Common Naming Mistakes and Their Consequences
After auditing 200+ GTM containers across India and globally, here are the mistakes we see most often:
Mistake 1: CamelCase or PascalCase
AddToCart instead of add_to_cart. This creates a completely separate event from the recommended one. Your e-commerce reports stay empty. Your funnel analysis breaks. Fix: always snake_case.
Mistake 2: Including dynamic values in event names
click_product_12345 or view_blog_how-to-fix-seo. This creates hundreds of unique events, each tracking a single interaction. You hit the 500-event limit within weeks. Fix: use parameters. The event is select_item; the product ID goes in the item_id parameter.
Mistake 3: Using reserved prefixes
google_conversion_lead or firebase_signup. These events are silently dropped. No error, no warning, no data. Fix: use conversion_lead or app_signup.
Mistake 4: Inconsistent verb-object structure
One developer names events as form_submit, another as submit_form, a third as form_submitted. Now you have three events tracking the same thing. Fix: pick a pattern (verb_noun or noun_verb) and enforce it.
Mistake 5: Exceeding the character limit
user_clicked_primary_call_to_action_button_homepage — 51 characters. GA4 truncates or rejects it. Fix: abbreviate logically. click_cta_home works fine.
How to Build an Event Naming Taxonomy
A taxonomy is a naming system that scales. Here's a framework we use at OPIN for every client implementation:
Step 1: Define your naming pattern
Pick one structure and stick with it. We recommend:
[action]_[object]_[qualifier]
Examples: click_cta_hero, submit_form_contact, view_page_pricing, scroll_section_features
Step 2: Create a controlled vocabulary
Define approved words for each slot:
- Actions: click, submit, view, scroll, select, open, close, start, complete, download, share, search
- Objects: cta, form, page, section, video, modal, menu, tab, card, banner, link
- Qualifiers: hero, footer, nav, sidebar, popup, exit, pricing, blog, product
Step 3: Document everything in a tracking plan
A spreadsheet with columns: Event Name | Description | Parameters | Trigger Condition | Owner. Every event must be in the plan before it goes into GTM. No exceptions.
Step 4: Validate with automated tools
Use OPIN's GTM Event Naming Audit tool to scan your existing events against GA4 best practices. It flags naming violations, reserved prefix usage, character limit breaches, and case inconsistencies automatically.
Step 5: Enforce with GTM naming conventions
Name your GTM tags with a matching convention: [Platform] - [Event Type] - [Event Name]. Example: GA4 - Event - click_cta_hero. This makes the connection between tag and event name immediately clear during audits.
How to Use OPIN's GTM Event Naming Audit Tool
We built the GTM Event Naming Audit tool because we got tired of manually reviewing event names in spreadsheets. Here's how it works:
- Enter your event names — paste them from GA4's event report or from your tracking plan, one per line.
- Run the audit — the tool checks each name against GA4's technical requirements and naming best practices.
- Review results — you get a pass/fail status for each event with specific violation details.
- Export or fix — use the results to clean up your GTM container and tracking plan.
The tool checks for: snake_case compliance, character length, reserved prefixes (ga_, google_, firebase_), recommended event matching, and naming pattern consistency.
Migration Guide: Renaming Events Without Losing Historical Data
You've audited your events and found a mess. Now what? Here's how to rename without losing everything:
The parallel tracking approach
- Don't delete the old event. Keep it firing alongside the new, correctly named event.
- Create the new event in GTM with the correct name and identical trigger conditions.
- Run both events in parallel for 30–90 days. This gives you overlap for validation and ensures no data gap.
- Update all audiences, conversions, and explorations to use the new event name.
- Check BigQuery exports if applicable — update any SQL queries referencing the old event name.
- Disable the old event after the parallel period. Don't delete the GTM tag — pause it. You may need to reference it later.
For Indian e-commerce businesses running on tight margins, this approach is critical during Diwali and festive season migrations. Never rename events during peak traffic without a parallel tracking buffer.
Using GA4's event modification feature
GA4 Admin has a "Modify event" feature that can rename events server-side. This is useful for quick fixes but has limitations:
- It's not retroactive — historical data keeps the old name
- You're limited to 50 event modifications per property
- Complex conditions can be tricky to configure
For anything beyond simple renames, modify events at the GTM level where you have full control.
What Should You Do Next?
Start with an audit. Run your event names through our free GTM Event Naming Audit tool. It takes 30 seconds and shows you exactly where your naming breaks GA4 conventions.
If the results are ugly — and for most organizations with 6+ months of GA4 data, they will be — talk to us. We've helped companies across India and globally clean up their GA4 implementations, build proper naming taxonomies, and set up GTM containers that actually scale.
Your analytics data is only as good as the names you give your events. Get the naming right and everything downstream — reports, audiences, attribution, BigQuery analysis — gets easier.
Need a full analytics audit? Check out our analytics and tracking services or request a free analytics tracking audit.
Frequently Asked Questions
What is the correct naming format for GA4 custom events?
GA4 custom events must use snake_case format — lowercase letters and underscores only. For example, use 'add_to_cart' instead of 'AddToCart' or 'add-to-cart'. Event names must start with a letter, cannot exceed 40 characters, and must not use reserved prefixes like ga_, google_, or firebase_.
How many custom events can I have in GA4?
GA4 allows up to 500 distinct event names per property. This includes automatically collected events, enhanced measurement events, and custom events. If you use dynamic values in event names (like product IDs), you can hit this limit quickly. Always use event parameters for dynamic data instead of creating unique event names.
What happens if I use a reserved prefix in my GA4 event name?
Events using reserved prefixes (ga_, google_, firebase_) are silently dropped by GA4. There is no error message or warning — the data simply never appears in your reports. This is one of the most common and hardest-to-diagnose event naming mistakes.
Should I use GA4 recommended events or create custom event names?
Always check Google's recommended events list first. If a recommended event matches your use case — like purchase, generate_lead, or sign_up — use it exactly as documented. Recommended events automatically populate built-in GA4 reports like Monetization and Engagement. Only create custom events for interactions not covered by the recommended list.
How do I rename GA4 events without losing historical data?
Use the parallel tracking approach: keep the old event firing while simultaneously deploying the new correctly named event. Run both for 30–90 days to ensure no data gaps. Update all audiences, conversions, and reports to reference the new name. Then pause (don't delete) the old event tag in GTM. Note that GA4's built-in event modification feature is not retroactive.