Home/Blog/GA4 Events
GA4 Events11 min read

GA4 Event Tracking: The Complete Guide to Auto, Recommended, and Custom Events

Master GA4 event tracking. Learn the difference between automatically collected, enhanced measurement, recommended, and custom events with implementation examples.

GA4, event tracking, custom events, GTM, implementation

Everything in GA4 is an event. Page views, clicks, purchases, scrolls — all events. Understanding the four event categories and when to use each is the foundation of good GA4 tracking.

The Four Types of GA4 Events

1. Automatically Collected Events

These fire without any configuration:

  • `first_visit` — First time a user visits
  • `session_start` — New session begins
  • `user_engagement` — User is actively engaged
  • `page_view` — Page loads (if enhanced measurement is on)

You cannot disable these. They are the baseline.

2. Enhanced Measurement Events

Enabled by default in your data stream settings. Toggle them in Admin > Data Streams > your stream > Enhanced measurement:

  • `scroll` — User scrolls past 90% of page
  • `click` (outbound) — Clicks to external domains
  • `view_search_results` — Site search queries
  • `video_start`, `video_progress`, `video_complete` — YouTube embeds
  • `file_download` — Clicks on document links (.pdf, .xlsx, etc.)

Tip: If you implement custom scroll tracking (e.g., 25%, 50%, 75% milestones), disable the default `scroll` event to avoid conflicts.

3. Recommended Events

Google provides a list of event names with predefined parameter structures for common business scenarios. Using these names unlocks built-in GA4 reports:

For e-commerce:

```javascript

dataLayer.push({

event: 'purchase',

ecommerce: {

transaction_id: 'T-12345',

value: 129.99,

currency: 'USD',

tax: 10.40,

shipping: 5.99,

items: [{

item_id: 'SKU-001',

item_name: 'Running Shoes',

item_category: 'Footwear',

price: 129.99,

quantity: 1

}]

}

});

```

For lead generation:

```javascript

dataLayer.push({

event: 'generate_lead',

value: 50,

currency: 'USD',

lead_source: 'contact_form',

form_id: 'footer_contact'

});

```

Key recommended events:

| Business Type | Events |

|---|---|

| E-commerce | `view_item`, `add_to_cart`, `begin_checkout`, `purchase`, `refund` |

| Lead gen | `generate_lead`, `sign_up`, `login` |

| Content | `share`, `search`, `select_content` |

| Gaming | `earn_virtual_currency`, `level_up`, `unlock_achievement` |

4. Custom Events

For anything not covered above. Use custom events when no recommended event fits your use case:

// Custom event: user opens pricing calculator
dataLayer.push({
  event: 'calculator_open',
  calculator_type: 'pricing',
  page_section: 'hero'
});
javascript

Naming rules for custom events:

- Use snake_case (underscores, not hyphens or spaces)

- Start with a letter

- Max 40 characters

- Do not prefix with `ga_`, `google_`, or `firebase_` (reserved)

- Be descriptive: `newsletter_signup` not `ns_click`

Event Parameters

Every event can carry parameters. GA4 has two parameter types:

Event parameters — data about the specific event: `javascript gtag('event', 'generate_lead', { form_id: 'demo_request', // event parameter form_name: 'Book a Demo', // event parameter value: 100, // event parameter currency: 'USD' // event parameter }); `

User properties — data about the user, persists across sessions: `javascript gtag('set', 'user_properties', { account_type: 'premium', company_size: 'enterprise' }); `

Registering Custom Dimensions

Custom event parameters are not visible in standard reports until you register them as custom dimensions:

  1. Go to Admin > Custom definitions > Custom dimensions
  2. Click "Create custom dimension"
  3. Set the dimension name, scope (event or user), and the parameter name

You have a limit of 50 event-scoped and 25 user-scoped custom dimensions.

Implementation via GTM

The cleanest approach for custom events is Google Tag Manager:

  1. Create a trigger — e.g., Click trigger on CSS selector `.cta-button`
  2. Create a GA4 Event tag — Set the event name (e.g., `cta_click`)
  3. Add parameters — Use GTM variables to capture dynamic values (button text, page URL)
  4. Test in Preview — Verify the event and parameters in DebugView
  5. Publish

Common Mistakes

1. Too many custom events. GA4 allows 500 distinct event names per property. But more is not better. Plan your tracking schema before implementing. Most sites need 10-30 custom events.

2. Inconsistent naming. formSubmit, form_submit, Form Submit, and form-submit are four different events in GA4. Establish a naming convention and enforce it.

3. Missing parameters. An event without context is useless. button_click tells you nothing. button_click with button_text: "Start Trial" and page_section: "pricing" tells you everything.

4. Not marking key events. After creating events, go to Admin > Key events and mark business-critical events as conversions. Otherwise they are just noise in your reports.

Run a GA4 audit on your property — start your audit →

Check your GA4 implementation

Run a free AI-powered audit to see how your tracking stacks up.

Start Free Audit