Skip to content
Home » Reference » GA4 Event Naming Conventions: A Practical Guide

GA4 Event Naming Conventions: A Practical Guide

A consistent naming convention is the foundation of clean analytics data. Without standardized naming, your GA4 reports become cluttered with duplicate events like button_click, Button_Click, and buttonClick — all tracking the same interaction but appearing as separate events.

This guide covers official GA4 naming rules, practical patterns for events and parameters, and GTM organization strategies that scale across teams and projects.

GA4 Official Naming Rules

Before exploring best practices, understand Google’s hard requirements. Violating these rules means your events won’t be recorded or will be recorded incorrectly.

Event Name Requirements

Rule Requirement Example
Character Limit 40 characters maximum newsletter_subscription_complete (31 chars) ✓
Starting Character Must start with a letter view_item ✓ / 2nd_click
Allowed Characters Letters, numbers, underscores only add_to_cart ✓ / add-to-cart
Case Sensitivity Event names are case-sensitive sign_upSign_Up
Reserved Prefixes Cannot start with ga_, firebase_, google_ ga_custom_event

Parameter Limits

Element Character Limit Count Limit
Event Name 40 characters 500 unique events per property
Parameter Name 40 characters 25 parameters per event
Parameter Value 100 characters
User Property Name 24 characters 25 per event
User Property Value 36 characters

Event Naming Patterns

While Google’s rules define what’s technically possible, establishing consistent patterns ensures your data stays organized as tracking expands.

Pattern 1: snake_case (Recommended)

Use lowercase letters with underscores separating words. This matches Google’s recommended events and prevents case-sensitivity issues.

Good ✓ Bad ✗ Why It Fails
generate_lead Generate_Lead Mixed case creates duplicate events
file_download fileDownload camelCase inconsistent with GA4 standards
button_click button-click Hyphens not allowed in event names
video_start Video Start Spaces create invalid events

Pattern 2: object_action Structure

Structure event names as [object]_[action] where the object comes first and the action follows. This groups related events together in alphabetical reports.

Examples by Category

Category Events
Forms form_start, form_submit, form_error
Video video_start, video_progress, video_complete
Search search_perform, search_results_view, search_filter_apply
Newsletter newsletter_view, newsletter_signup, newsletter_confirm
File file_download, file_preview, file_share

Pattern 3: Custom Prefix Strategy

Prefix custom events to distinguish them from GA4’s automatically collected and enhanced measurement events.

Prefix Use Case Example
c_ Custom events (general) c_feature_used
ui_ UI interactions ui_modal_close
exp_ Experiment events exp_variant_shown
err_ Error tracking err_api_timeout

Note: Prefixes count toward the 40-character limit. Keep them short.

Parameter Naming Strategy

GA4 allows only 50 event-scoped custom dimensions per property. Reusing parameter names across events conserves this limited resource.

Reusable Parameters

Generic Name Use Across Instead Of
element_type All click events button_type, link_type, card_type
element_text All click events button_text, link_text, cta_text
location All events click_location, banner_location
value Conversion events form_value, order_value
content_type Content interactions article_type, video_type, file_type

Avoid Parameter Name Conflicts

Some parameter names are reserved or have special meaning in GA4:

  • page_location, page_referrer, page_title — automatically collected
  • currency, value — used for revenue tracking
  • items — reserved for e-commerce item arrays
  • Parameters starting with ga_ or google_ — reserved by Google

GTM Organization Conventions

Consistent naming in Google Tag Manager prevents confusion when multiple team members work in the same container.

Tag Naming Pattern

Use the format: [Platform] [Type] – [Event/Purpose]

Platform Format Example
GA4 GA4 Event – [event_name] GA4 Event – generate_lead
GA4 GA4 Config – [property] GA4 Config – Production
Meta Meta – [event_type] Meta – Lead
Google Ads GAds – [conversion_name] GAds – Purchase
Custom HTML cHTML – [purpose] cHTML – Form Listener

Variable Naming Pattern

Prefix variables with their type for instant recognition:

Prefix Variable Type Example
dlv – Data Layer Variable dlv – ecommerce.value
cookie – First-Party Cookie cookie – user_id
js – JavaScript Variable js – document.title
cjs – Custom JavaScript cjs – Get Clean URL
const – Constant const – GA4 Measurement ID
lookup – Lookup Table lookup – Country to Region
regex – RegEx Table regex – Extract Product ID

Trigger Naming Pattern

Format: [Type] – [Target] – [Condition]

Trigger Type Example Name
Page View Page View – All Pages
Page View (specific) Page View – Checkout Pages
Click Click – CTA Buttons
Link Click Link Click – Outbound Links
Form Submit Form Submit – Contact Form
Custom Event Custom – purchase_complete
Blocking Blocking – Internal Traffic

Folder Organization

Organize tags, triggers, and variables into folders by either vendor or purpose:

By Vendor By Purpose
Google Analytics 4 Analytics
Google Ads Advertising
Meta Pixel Conversion Tracking
LinkedIn Insight CRO / Testing
Hotjar / Clarity User Research
Custom Scripts Utilities

Complete Naming Checklist

Before Publishing Any Event

  • Event Name: Uses snake_case with all lowercase
  • Event Name: Starts with a letter (not number or underscore)
  • Event Name: Contains only letters, numbers, underscores
  • Event Name: 40 characters or fewer
  • Event Name: Does not use reserved prefixes (ga_, firebase_, google_)
  • Event Name: Is not a reserved event name
  • Parameters: Use consistent names across similar events
  • Parameters: 40 characters or fewer for names
  • Parameters: 100 characters or fewer for values
  • GTM Tags: Follow [Platform] [Type] – [Event] pattern
  • GTM Variables: Include type prefix (dlv –, cjs –, etc.)
  • Documentation: Event added to tracking specification sheet

Reserved Event Names

These event names are reserved by GA4 and cannot be used for custom events:

ad_activeview ad_click ad_exposure ad_impression ad_query adunit_exposure app_clear_data app_exception app_install app_remove app_store_refund app_update error first_open first_visit in_app_purchase notification_dismiss notification_foreground notification_open notification_receive os_update screen_view session_start user_engagement

Documentation Template

Maintain a living document (Google Sheet or Notion) with all implemented events. Include these columns:

Column Purpose Example Value
Event Name Exact GA4 event name form_submit
Category Grouping for organization Lead Generation
Description When this event fires User submits any form
Parameters List of parameters sent form_name, form_id, page_path
GTM Tag Name of GTM tag GA4 Event – form_submit
Trigger When tag fires Form Submit – All Forms
Key Event Marked as conversion? Yes
Date Added Implementation date 2025-01-09
Owner Person responsible Analytics Team

Key Takeaways

Use snake_case Always

Lowercase letters with underscores. Matches Google’s format and prevents case-sensitivity issues.

Reuse Parameters

Generic parameter names like element_type conserve your 50 custom dimension slots.

Prefix GTM Elements

Type prefixes (dlv –, cjs –) make variables instantly recognizable.

Document Everything

A tracking spec sheet prevents duplicate events and keeps teams aligned.

Further Reading


Lukas Meier
Lukas Meier

Product Analytics Specialist based in Munich. Helping teams implement clean, actionable analytics since 2015.

Leave a Reply

Your email address will not be published. Required fields are marked *