Skip to content

Key Events

In GA4, a key event is any event that you mark as a key event. There is no separate “goals” setup — you collect events, then designate which events count as key events. This simplicity is real, but key event counting in GA4 works differently from Universal Analytics goals in ways that matter for your reporting.

  1. Go to Admin → Key events (or Admin → Events → toggle the key event toggle).

  2. Click Create key event.

  3. Enter the event name exactly as sent from your tracking code (e.g., purchase, form_submission, newsletter_signup). Case-sensitive.

  4. Click Create.

The event is now marked as a key event. GA4 will count it as a key event in reports going forward.

Alternatively, go to Admin → Events, find the event in the list, and toggle the “Mark as key event” switch.

This is where GA4 differs significantly from Universal Analytics goals.

UA goal counting: each goal fires at most once per session. If a user completed a purchase 3 times in one session, UA counted 1 goal completion.

GA4 key event counting: by default, key events are counted once per event, per session. If a user triggers purchase 3 times in one session, GA4 counts 3 key events.

This means:

  • High-frequency events (page views, button clicks) should usually not be marked as key events — each occurrence counts
  • Events that can legitimately occur multiple times per session (multiple purchases) count correctly
  • Events that should only count once per session (newsletter signup) may overcount if the event fires multiple times

For the standard purchase event, GA4 deduplicates based on transaction_id. If the same transaction_id is sent multiple times (e.g., from both client-side and server-side tags), GA4 counts it as one key event.

For other events, there is no built-in deduplication. If form_submission fires twice for the same form in one session, GA4 counts 2 key events.

GA4 automatically marks two events as key events for all new web properties:

  • first_visit — fires when a user visits your site for the first time
  • purchase — fires when a purchase occurs (if you send this event)

For app properties, first_open is also pre-marked.

You can unmark first_visit if you do not want to treat new user acquisition as a key event in your campaign reporting. However, for properties with Google Ads linked and conversion-based bidding, removing first_visit from key events can affect Smart Bidding performance.

LimitValue
Key events per property30

30 key events sounds like a lot, but in complex implementations with many forms, lead sources, and purchase types, it fills up. Be selective.

Reserve key events for events that represent genuine business value:

  • purchase
  • lead_form_submission
  • phone_call_click
  • schedule_demo
  • free_trial_signup
  • checkout_complete

Do not mark every interaction event as a key event. Button clicks, page views, and micro-engagements create noise without analytical value.

Key events appear throughout GA4:

  • Acquisition reports — “Key events” column shows key event count by source
  • Engagement reports — “Key events” and “Key event rate” columns
  • Advertising section — key events attributed by channel with attribution model applied
  • Explorations — available as a metric in any exploration

In standard reports, the “Key events” metric aggregates all key event types. To see key events for a specific event:

  1. In the Engagement overview or Events report, find your key event
  2. Or in Explorations, use a segment filter: “Event name = purchase”
  3. Or use the “Key events” dimension in a free-form exploration to break down by key event type

When GA4 is linked to Google Ads, you can import GA4 key events into Google Ads for conversion-based bidding:

  1. In Google Ads, go to Tools → Measurement → Conversions → Import → Google Analytics 4 properties
  2. Select the GA4 key events to import
  3. These are treated as conversions in Google Ads and become available for Smart Bidding (Target CPA, Target ROAS, Maximize Conversions)

For events that should only count once per user (e.g., “first newsletter signup”), implement deduplication in your tracking code rather than relying on GA4:

// Check if user has already signed up before firing the key event
function trackNewsletterSignup() {
if (!localStorage.getItem('newsletter_signed_up')) {
gtag('event', 'newsletter_signup', {
signup_location: 'footer'
});
localStorage.setItem('newsletter_signed_up', 'true');
}
}

This prevents the event from firing more than once per browser session, regardless of how many times the user interacts with the signup form.

For server-side implementations where the key event should only be counted once in your database, send it via the Measurement Protocol after confirming the action in your backend.

To understand the multi-step journey to a key event:

  1. Advertising → Attribution → Conversion paths — shows the channel sequence leading to key events
  2. Explore → Funnel exploration — shows drop-off at each step of a defined funnel
  3. Explore → Path exploration — shows all events leading up to a key event

This creates an enormous key event count that is essentially meaningless for campaign optimization. Standard reports show key event rate as “key events / sessions” — if page views are key events, your “key event rate” becomes 4-8x per session on average.

Sending purchase from both the client (thank-you page) and server (payment confirmation) doubles your transaction count and inflates revenue. Choose one source. Server-side is more reliable; use the Measurement Protocol with transaction_id to deduplicate if you use both.

Using key events for funnel steps instead of metrics

Section titled “Using key events for funnel steps instead of metrics”

Marking “add to cart”, “begin checkout”, AND “purchase” as key events means your key event count includes every funnel step, not just completions. Use a Funnel exploration for funnel analysis. Reserve key events for the terminal action.

When you have more than 30 events you want to track as important actions, you must prioritize. Keep key events for events that drive bidding decisions and business reporting. Use custom dimensions and explorations for events that need analysis but not key event tracking.