GA4 event naming convention is the set of rules — lowercase snake_case, a 40-character limit, forbidden reserved prefixes, and a requirement to start with a letter — that determines how Google Analytics 4 stores every trackable action on your website, and it sits at the foundation of any reliable conversion rate optimisation strategy. Get one team member naming a contact form submission lead_form_submit and another naming it LeadFormSubmit, and Google Analytics 4 counts them as two completely separate events — your funnel report splits, your key event totals halve, and nobody notices for months.

Most South African businesses install Google Analytics 4, add a handful of tags in Google Tag Manager, and assume the data is clean. It rarely is. WhatsApp click tracking, PayFast checkout stages, and POPIA-compliant consent logging all require custom events — and each one is a naming decision that compounds over time. A naming standard set on day one takes an afternoon. A naming audit after 18 months of inconsistency can take weeks.

This guide covers the exact rules Google enforces, a practical naming framework that scales from a five-page service site to a full Shopify store, and the South African-specific events most businesses are missing. For teams already implementing ecommerce tracking, ecommerce tracking in Google Analytics 4 is the companion read once your naming taxonomy is locked.

Quick Answer

A GA4 event naming convention is a team-wide standard for writing Google Analytics 4 event names: always lowercase snake_case, under 40 characters, starting with a letter, using only letters, digits, and underscores, and never using prefixes reserved by Google (ga_, firebase_, google_). Event names in GA4 are case-sensitive, so form_submit and Form_Submit are two separate events. Set the standard before implementation — GA4 has no rename or alias function, and the only fix for a broken taxonomy is a retroactive audit.

Losing conversions you can't see?

Share your current Google Analytics 4 setup and we'll identify the tracking gaps costing you leads — before any implementation work starts.

Get a free tracking audit

What Is a GA4 Event Naming Convention?

A GA4 event naming convention is a documented, agreed-upon standard for how every event sent to a Google Analytics 4 property will be named. It covers the casing format (always lowercase), the separator character (underscore, never hyphen or space), the maximum length (40 characters), and the taxonomy structure (typically verb first: view_item, begin_checkout, submit_lead).

Google Analytics 4 processes events purely by their name string. There is no type-ahead correction, no synonym matching, and no aliasing. If your Google Tag Manager setup sends whatsapp_click from your website and WhatsApp_Click from a third-party integration, GA4 creates two separate event rows with separate totals, separate funnels, and separate key event records. Neither one is "wrong" to Google Analytics 4 — both are just events with different names.

This is why a naming convention is an architecture decision, not a formatting preference. It determines whether your CRO reports accurately reflect what visitors are doing, or whether they are fragmented across dozens of near-identical event variants that require manual cleaning before anyone can read them.

What a Retroactive Fix Actually Costs

When a naming error reaches production, the remediation sequence is: deploy a corrected parallel event in Google Tag Manager, run both event names simultaneously during a migration window long enough to capture your normal traffic cycles, verify each corrected event name in GA4 DebugView before decommissioning the old tag, then accept a period of split totals in your historical reports. The work is manageable — but it is far more expensive than a naming review before the first tag fires.

The Hard Rules GA4 Enforces

GA4 enforces five naming rules: start with a letter, use lowercase snake_case, allow only letters, digits, and underscores, avoid reserved prefixes, and stay under 40 characters — any violation is silently dropped with no error message. Check every custom event name against this list before deploying.

RuleCorrectWrong
Start with a letterform_submit1_form_submit, _form_submit
Lowercase only (snake_case)whatsapp_clickWhatsAppClick, WHATSAPP_CLICK
Only letters, digits, underscoresphone_clickphone-click, phone click
No reserved prefixescustom_quiz_startga_quiz_start, google_quiz
Under 40 characterspricing_calculator_submit (26 chars)Names exceeding 40 chars are not reported as key events

The character limits extend to parameters too. Every element in your Google Analytics 4 setup has a ceiling, and all limits apply whether you are on the free tier or Google Analytics 360.

ElementCharacter limitConsequence if exceeded
Event name40 charactersKey event not reported in GA4
Parameter name40 charactersParameter silently dropped
Parameter value100 charactersValue truncated at 100 chars
Parameters per event25Additional parameters dropped
User property name24 charactersProperty not recorded

Source: Google Analytics event collection limits. These figures apply to standard GA4 properties as of 2026.

The Four GA4 Event Tiers: What You Can and Cannot Name

GA4 splits events into four tiers — automatically collected, enhanced measurement, recommended, and custom — and only Tier 4 custom events are yours to name. Understand all four before building any tracking setup, or you risk creating custom events that collide with events Google Analytics 4 already manages automatically.

Tier 1 — Automatically collected: GA4 fires these the moment your base tag loads. first_visit, session_start, user_engagement, page_view, and outbound click events are always on. You cannot disable them, and you cannot use these names for custom events — session_start and first_visit sent as custom events are silently dropped by the platform.

Tier 2 — Enhanced measurement: Toggle-based events that fire when enabled in your property settings. scroll, form_start, form_submit, view_search_results, and video_start / video_progress / video_complete all live here. If you enable enhanced measurement, do not create custom events with the same names — you will double-count.

Tier 3 — Recommended events: Google prescribes exact names for events that unlock built-in reports. The GA4 recommended events reference lists them in full. For ecommerce, this means view_item, add_to_cart, begin_checkout, add_payment_info, add_shipping_info, purchase, and refund. These must match the exact specification — one character off and the GA4 ecommerce funnel report does not populate.

Tier 4 — Custom events: Everything else your business needs to measure. WhatsApp button clicks, pricing calculator completions, in-page tab switches, resource downloads not covered by enhanced measurement — these are your naming decisions. The convention framework in the next section applies here.

Key Point

Recommended events (Tier 3) are not optional names — they are locked specifications. Sending cart_add instead of add_to_cart means GA4 treats it as a custom event and your built-in ecommerce funnel reports remain empty. Check the official events reference before building any ecommerce tracking.

Building a Scalable Event Taxonomy in Google Analytics 4

The most durable naming framework follows a single structural rule: verb first, object second, context in parameters. This mirrors how Google names its own recommended events (view_item, begin_checkout, select_content) and makes the event log scannable — you can sort by action type and immediately see all view events, all submit events, all click events together.

Context — the page it happened on, the form name, the product category — goes into parameters, not the event name. Embedding context in the name creates event sprawl. homepage_whatsapp_click, services_whatsapp_click, and contact_whatsapp_click are three separate events that all answer the same business question: how many people clicked WhatsApp? Use whatsapp_click as the event name and a page_location parameter to record the source. Then you can filter by page in GA4 reports rather than managing dozens of near-identical event names.

User actionUse this event nameKey parameterDo not use
WhatsApp button clickwhatsapp_clickpage_locationWhatsAppClick, whatsapp-click
Phone number clickphone_clickpage_locationphoneClick, call_now
Contact form submitlead_form_submitform_nameContactFormSubmit, form_lead
PayFast checkout startbegin_checkout (Tier 3)value, currencyPayFastCheckout, checkout_started
Newsletter sign-upsign_up (Tier 3)methodNewsletter_Signup, newsletterSignup
Pricing calculator completecalculator_completecalculator_typePricingCalcDone, calc_submit

One practical addition: work from a shared spreadsheet before any implementation. Document the event name, its description, the trigger condition, every parameter name, and the team member who owns it. A naming convention that exists only in one person's head is not a convention — it is a single point of failure. Use custom dimensions in Google Analytics 4 to surface your custom parameters in standard reports, and check each event name in DebugView during QA to confirm it arrives as intended.

SA-Specific Events Worth Tracking in Google Analytics 4

South African businesses should add three event categories Google Analytics 4 misses by default: WhatsApp and phone clicks, POPIA consent logging, and localised payment-gateway checkout stages (PayFast, Yoco, Ozow). Each requires a custom event with SA-specific context that global analytics guides overlook.

WhatsApp and phone clicks. Custom whatsapp_click and phone_click events, each carrying a page_location parameter, are the most consistently under-tracked conversions on SA business sites. These should be marked as key events in GA4 — they are often where the sale actually happens. For guidance on what the lead form side of this looks like, SA form optimisation covers the conversion side.

Ecommerce checkout stages. Baymard's analysis of 50 studies puts global cart abandonment at 70.22% — but if your begin_checkout and purchase event names are inconsistent, you cannot identify where in that drop-off SA shoppers are leaving, making the abandonment problem unmeasurable for your own store. If you are running a WooCommerce or Shopify store, verify that your payment gateway plugin sends the exact GA4 recommended event names rather than inventing its own. See SA cart abandonment benchmarks for context on where the drop-off typically occurs locally.

POPIA and consent events. Under South Africa's Protection of Personal Information Act, GA4 must fire only after a visitor explicitly consents — not on page load. This means the baseline events (page_view, session_start) do not fire for non-consenting visitors at all. If you are using Google Consent Mode v2, implement a default-deny setup in Google Tag Manager. You may also want a custom consent_granted event to understand what proportion of your audience opts in. For the technical setup, cookie consent and analytics in South Africa covers the POPIA-compliant approach in full.

Not sure which SA events matter most for your site?

Tell us your site type and your top three conversion goals — we'll map the five events you should be tracking before anything else, no implementation commitment needed.

Get your event map

Five GA4 Naming Mistakes That Break Your Analytics

1. Using camelCase or PascalCase. LeadFormSubmit and lead_form_submit are separate events in GA4. No platform-side correction merges them. If your Google Tag Manager template uses a different case convention from your developer's hardcoded events, both names enter the property in parallel and total counts split. Audit your event list in GA4's Realtime or DebugView and look for near-duplicate names.

2. Putting dynamic values in the event name. product_view_12345, product_view_67890 — each product ID generates a new distinct event name, filling your GA4 event list with hundreds of entries. GA4 may cap display at the top 300 events in some report views, so high-cardinality event names bury your actual conversions. Use view_item (the Tier 3 recommended name) with an item_id parameter instead.

3. Colliding with reserved or automatically collected names. Naming a custom event session_start, scroll, or form_submit either conflicts with an existing GA4 event or is silently dropped. GA4 does not surface this as an error. The events simply fail to appear in reports or merge in ways that skew counts. Always check your name against the full list of GA4 automatically collected and enhanced measurement events before deploying.

4. Mixing tense within the same taxonomy. form_submit vs form_submitted — these are two different event names in Google Analytics 4. If different GTM tags or different developers apply different tenses, the data splits. Pick one tense (present tense matches Google's own recommended events) and enforce it in your documentation.

5. Not documenting the taxonomy. An undocumented naming convention is not a convention — it is institutional knowledge that leaves with the analyst who set it up. Keep a shared spreadsheet with every event name, its trigger, its parameters, and the date it was implemented. When a new integration arrives (a new email platform, a new checkout plugin), whoever sets it up can check the sheet and follow the pattern rather than invent a new one.

Why South African Businesses Choose Growth Pulse Media for Analytics and CRO

Dirk built and scaled a South African ecommerce business before founding Growth Pulse Media. Every analytics setup we implement reflects decisions made by someone who has looked at GA4 reports at midnight wondering why the purchase event count doesn't match the PayFast settlement — and then traced it back to a naming inconsistency introduced six months earlier.

When we set up tracking for a client, the naming taxonomy comes first. We document every event before a single GTM tag fires, align it with the recommended event spec for their site type (ecommerce, lead generation, service business), and validate it against GA4 DebugView before the property goes live. We also integrate WhatsApp and phone tracking as standard — because in the South African market, if you're only measuring web form submissions, you're missing a significant share of your actual conversions.

Our conversion rate optimisation service for South African businesses starts with measurement, not guesswork. A clean event taxonomy is what separates a CRO programme that runs on real user behaviour data from one that runs on assumptions. We work with a limited number of clients at any time, which means senior attention on your analytics architecture — not a junior setting up tags from a template.

What This Means for Your CRO Programme

Every optimisation test, funnel analysis, and audience segment in Google Analytics 4 is only as reliable as the event data feeding it. A naming convention set up once, documented properly, and enforced consistently is the foundation that makes every subsequent CRO decision trustworthy.

Who This Guide Is NOT For

Businesses that haven't installed GA4 yet. Event naming assumes the base Google Analytics 4 tag is already firing and sending page_view data. If you're still on Universal Analytics or haven't installed GA4 at all, start with the base setup before designing a naming taxonomy. There's no point building a convention for events you can't send yet.

Businesses using a fully managed third-party analytics platform. Some enterprise and SaaS ecommerce platforms auto-generate GA4 events with fixed naming that cannot be changed from the admin panel. If your platform controls the event names and you have no access to the data layer or Google Tag Manager, a naming framework applies only to future custom events you add — which may be minimal.

Static brochure sites with no trackable actions. If your website has no forms, no WhatsApp buttons, no product pages, and no downloadable content — just a few pages of text — GA4's automatically collected page_view and scroll events cover your measurement needs without any custom event work. A naming convention matters when you have custom events to name.

Teams running GA4 in parallel with a full server-side analytics stack. If your organisation routes all tracking through a customer data platform (CDP) that normalises event names before forwarding to GA4, the naming convention lives in the CDP layer — not in GTM or GA4 directly. This guide's framework still applies, but the implementation point is different.

Need your GA4 event taxonomy built from scratch?

We'll scope your full tracking plan and return a documented naming convention fast — no implementation contract required to start.

Start with a scoping call

Common Questions About GA4 Event Naming

What is a GA4 event naming convention?

A GA4 event naming convention is a team-wide standard specifying how every Google Analytics 4 event sent from a website, app, or server will be named. At minimum it covers the casing format (lowercase snake_case), the character limit (40 characters maximum), the permitted characters (letters, digits, underscores), the starting character rule (must be a letter), forbidden reserved prefixes (ga_, firebase_, google_), and whether to use a verb-first or object-first structure. Without a documented convention, different developers, plugins, and integrations send inconsistently named events that GA4 treats as separate event types.

Can GA4 event names include uppercase letters?

Technically yes — GA4 accepts event names with uppercase letters. The problem is that GA4 event names are case-sensitive, so WhatsAppClick and whatsapp_click are treated as two entirely separate events. Google's own recommended events all use lowercase snake_case, and industry best practice follows that standard to avoid accidental event splits. Once an uppercase-named event has collected data, there is no rename function — you either accept the split data or deploy a parallel correctly named event and lose historical continuity.

What are reserved event names in Google Analytics 4?

Reserved event names in GA4 are event names that the platform already uses or has reserved for its own collection. You cannot send custom events named session_start or first_visit — these are automatically collected and any custom event with those names is silently dropped. Events managed by enhanced measurement (including scroll, form_submit, video_start, view_search_results) should not be duplicated as custom events or your counts will inflate. Additionally, any event name starting with the prefixes ga_, firebase_, or google_ is reserved and will not be processed.

How many custom events can I track in Google Analytics 4?

For web data streams on a standard GA4 property, there is no published hard limit on the number of distinct custom event names you can send per property — though GA4 reports may only display a set number of events in certain views. App data streams apply a limit of 500 unique event names per app user on the free tier. Each event can carry up to 25 parameters, and you can register custom dimensions and metrics per property to surface those parameters in standard GA4 reports. The practical limit is keeping your event list small enough to be manageable — event sprawl from poorly named or dynamic events is a more common problem than hitting a hard ceiling.

How does POPIA affect GA4 event tracking in South Africa?

South Africa's Protection of Personal Information Act requires websites to obtain explicit opt-in consent before placing non-essential tracking tools, including Google Analytics 4. This means that for visitors who have not yet consented, GA4 should not fire — not even the base page_view event. The recommended technical approach is Google Consent Mode v2 with a default-deny configuration in Google Tag Manager, where GA4 tags only trigger after a visitor actively accepts analytics cookies. This affects your event data volume (consenting visitors only) and means your reporting will not reflect all site traffic. POPIA compliance in analytics is not optional for South African businesses — it is a legal requirement under the Act.

Ready to Build a GA4 Setup You Can Actually Trust?

Growth Pulse Media sets up Google Analytics 4 properties with a documented naming convention, verified against GA4 DebugView before any data collection starts. We handle WhatsApp and phone click tracking, POPIA-compliant consent mode, PayFast and other SA payment gateway ecommerce events, and custom dimensions for your key parameters — all with the senior attention that a volume agency cannot deliver. No obligation — we'll get back to you within 24 hours.

Book a free tracking scoping session
Dirk van Greuning — Founder, Growth Pulse Media
Dirk van Greuning Founder, Growth Pulse Media

Founder of Growth Pulse Media and a specialist in South African search dominance. Dirk translates his experience in scaling South African businesses into high-velocity digital strategies for B2B and retail leaders. He writes about SEO, lead generation, and paid media from an operator's perspective — prioritising pipeline value over impressions.

Connect on LinkedIn