GA4 Event Name Validator
Bad event names are the quiet killer of a GA4 implementation. A reserved prefix, a stray capital letter, or a name that runs past forty characters does not throw an error — it just silently corrupts your reporting weeks later. Paste your measurement plan below and catch every problem before a single hit fires.
A valid GA4 custom event name is lowercase snake_case, 40 characters or fewer, starts with a letter, contains only letters, digits and underscores, and avoids the reserved ga_, google_ and firebase_ prefixes plus Google’s reserved event names (like session_start or first_visit). This linter checks every name you paste against all of those rules and tells you exactly what to rename.
GA4 Event Name Validator inputs and result
| Event name | Status | Reason |
|---|
How to use this calculator
- Paste your event namesDrop in your measurement-plan event names — one per line, or comma-separated. Paste the proposed names from your tagging spec before any tag ships.
- Read the per-event tableEach name returns valid or fix, with the exact rule it broke: over 40 characters, not snake_case, starts with a non-letter, illegal characters, or a reserved prefix or name.
- Rename the failuresUse the reason column to correct each flagged name. Reserved names and prefixes are the most urgent — they silently collide with Google’s automatic events.
- Standardize the survivorsApply one convention across the clean names: lowercase snake_case, a verb-object shape, well under 40 characters so they survive being concatenated elsewhere.
- Export and lock it inCopy a share link or download the CSV for your tagging spec, then re-validate after any change so the plan stays clean.
RGM Expert Says
Every GA4 audit we run starts with the event name list, because naming is where measurement debt compounds fastest. A client will have Purchase, purchase, and completed_purchase all firing from different templates, and their revenue reporting quietly splits across three buckets. GA4 will not warn you; it just accepts what it gets. The cheapest fix in analytics is a naming convention enforced before launch, and the most expensive is reconstructing six months of fragmented data after the fact.
The rule that surprises people most is the reserved list. Names like session_start, first_visit and the firebase_ prefix belong to Google’s automatic and enhanced-measurement events. Reuse one for your own purpose and GA4 either drops it or merges your data into a stream you do not control. We keep this validator open during every tagging spec review so a developer can paste the proposed names and see collisions in seconds rather than discovering them in a debug view.
Our house convention is plain: lowercase snake_case, a verb-object shape (generate_lead, view_pricing), and a hard ceiling well under forty characters so the name survives being concatenated into a parameter elsewhere. Consistency beats cleverness. A boring, predictable name that every report can join on is worth more than a descriptive one that no two developers spell the same way.
How it works
The validator applies Google’s documented GA4 naming rules to each name independently. A name passes only when it clears every check; otherwise it returns the specific rule it broke so you know what to rename.
- 40-character limit — GA4 truncates or rejects custom event names longer than 40 characters.
- snake_case — lowercase letters, digits and underscores; GA4 names are case-sensitive, so mixed case fragments your data.
- Starts with a letter — a name beginning with a digit or underscore is invalid.
- Reserved prefixes —
ga_,google_,firebase_are reserved for Google’s own events. - Reserved names — automatic and enhanced-measurement events such as
session_startandpurchase-family app events you should not redefine.
Rules per Google’s GA4 event naming rules and automatic events documentation. GA4 also limits a property to 500 distinct custom event names — a separate budget this linter does not count for you.
Why event naming decides whether GA4 is trustworthy
GA4 is event-based to its core: every report, audience, conversion and exploration is built by grouping events by name. That makes the name the primary key of your entire analytics dataset. When names drift — a capital here, a synonym there — the grouping breaks, and no amount of dashboard polish recovers it. A naming convention is not housekeeping; it is the schema your data depends on.
The failures are invisible at first, which is what makes them dangerous. GA4 does not reject a malformed name with a red error the way a database rejects a bad type. It accepts Add_To_Cart and add_to_cart as two different events and reports them separately, so your cart metric looks half its true size and nobody notices until a quarterly review. Catching the problem at the spec stage, before tags ship, is the only cheap moment.
Reserved-name collisions are the sharpest edge. If a developer names a custom event session_start to mean something app-specific, it merges into Google’s automatic session event and pollutes a metric used across the whole property. Linting names against the reserved list before launch is the difference between a clean implementation and a forensic cleanup. Pair this validator with a written tagging spec and a debug-view check on staging. A good rule is to lint names at three moments: when the measurement plan is drafted, when the developer implements the tags, and again in GA4 DebugView before the change ships to production. Each pass is cheap, and each one catches a different class of mistake — a typo in the plan, a hardcoded name that drifted during implementation, or a reserved collision that only surfaces against live data. Naming discipline is unglamorous, but it is the single highest-leverage habit a small analytics team can adopt.
Go deeper on measurement
Keep learning
Common questions
What are the rules for GA4 event names?
ga_, google_ and firebase_ prefixes plus Google’s reserved event names. This tool checks all of those at once.Are GA4 event names case-sensitive?
add_to_cart and Add_To_Cart are treated as two separate events, which silently splits your data. The convention is lowercase snake_case for every name.What are reserved GA4 event names?
session_start, first_visit, user_engagement and scroll — plus any name beginning with ga_, google_ or firebase_. Reusing them collides with Google’s own collection.Why did my long event name break?
How many event names can GA4 have?
Should detail go in the name or a parameter?
view_item) and put specifics (item id, category, price) in event parameters. Encoding detail into the name explodes your distinct-name count and breaks the 40-character limit.