GA4 conversion tracking: setting up key events

Events, key events, conversions, imported conversions: one table that ends the GA4 naming confusion, then the setup path that actually feeds Google Ads. Define the event, promote it to a key event, import it, and skip the double-counting trap that catches most imports.

Kay Vink
Kay Vink

You opened a GA4 property to set up conversion tracking and found the same thing wearing four names: an event, a conversion, a key event, an imported conversion. The confusion isn't your fault. Under the hood it's three steps wearing four names: record an event, promote it to a key event (what GA4 called a "conversion" until the 2024 rename), and, if Google Ads should bid on it, import it there as a conversion action. The rename changed reporting labels, not mechanics.

Decode the names once and the setup is one straight path. This page does exactly that: the four-name table first, then the three steps in order, then the double-counting trap that catches most imports.

#The rename decoded: one table

They renamed reporting, not mechanics. Per Google's Key events and conversions doc:

NameWhat it isWhere it matters
EventAnything GA4 records (page_view, purchase, sign_up)Raw data; Reports and Explore
Key eventAn event you toggled as business-critical (pre-2024: "conversion")GA4 reporting; eligibility for Ads import
Conversion (current meaning)A key event imported into Google Ads as a conversion actionGoogle Ads bidding + reporting
Conversion actionThe Google Ads object that counts it, whether imported or from Ads' own tagWhere counting, value, attribution settings live

Everything below is those rows in order: create the event, flip the toggle, do the import deliberately.

#Step 1: set up the event

Use a collected or recommended event when one fits; create a custom event only when none does. GA4 already collects page_view, click, file_download and friends automatically; recommended events like purchase, generate_lead, and sign_up come with expected parameters that downstream surfaces understand, so use those names rather than inventing order_completed_final_v2.

Two install paths, same as every Google tag:

  • gtag.js: gtag('event', 'generate_lead', {...}) from the page or your framework's data layer.
  • GTM: a GA4 Event tag fired by your trigger, reading parameters from the data layer. This is the better path once more than one person touches tracking.

Send the parameters you'll want to slice by later (value, currency, form_id, plan tier). Validate in DebugView before trusting anything: right event name, once per action, parameters populated.

#Step 2: promote it to a key event

Admin → Events → flip Mark as key event (or Admin → Key events → New). The toggle takes effect from that moment, with no backfill, so flip it before the campaign launch, not after. Keep the list short: key events are the property's definition of "this mattered", and a property where twelve events are all "key" has defined nothing.

#Step 3: import into Google Ads, and know what changes

The import is where a reporting flag becomes a bidding signal, so treat it as the consequential step. With GA4 and Ads linked (Admin → Product links), Google Ads → Goals → Conversions → New → Import → GA4 lets you pull any key event in as a conversion action with its own counting, value, and window settings.

What actually changes when you import: Smart Bidding starts optimizing toward that event, and the event's flaws become spend decisions. Which means:

  • Pick one primary source per business event. If the purchase is tracked by both the native Ads tag and the GA4 import, one must be secondary, because both as primary double-counts every sale. The native tag is usually the better primary (faster, built for bidding); the import earns primary in lead-gen setups where GA4 sees funnel steps Ads can't.
  • Expect the numbers to disagree with GA4 anyway. Different attribution scope, different date bookkeeping: a gap is structural, not a bug. When it looks wrong, Why your GA4 and Google Ads conversions don't match is the triage path.
  • Give it a value. An imported key event without value data feeds count-based bidding; the case for fixing that is Value-based bidding needs values you can trust.

#Name events like you'll query them

Event names are a contract, not throwaway labels: the analytics equivalent of the naming discipline in utm naming conventions. Every GA4 event lands in someone's warehouse eventually; in Buron's case literally, where each GA4 event maps to a row the agents can read. That mapping is only possible because names follow a contract: snake_case, object_action (lead_submitted, trial_started), parameters over name-proliferation (one sign_up event with a method parameter, not sign_up_google + sign_up_email + sign_up_sso). Rename an event and you've broken every report and integration that referenced it, so version the change like an API.

#Verify it's actually working

Three checks before you call it done: DebugView shows the event once per action with parameters populated; the key event appears in GA4 reporting within a day; and, if imported, the Google Ads conversion action shows "Recording conversions" with exactly one primary source per business event. Then re-run those checks after every site change, because the person who renames an event never tells the person who imported it. The full re-runnable pass is The conversion tracking QA checklist: test it like you'd test code.

The step after verification is the one setup guides skip: nothing about GA4 conversion tracking stays set. Someone renames an event, an import flips to primary, a key event quietly stops firing, and the names you decoded today describe something slightly different next quarter. The manual defense is re-running the checks above forever, which nobody does.

That's the part worth handing off. Buron pipes GA4 events and ad-platform data into one warehouse, so "did the campaign produce key events" is a question the agents answer continuously, with mapping drift flagged in your Findings inbox instead of discovered mid-report.

Frequently asked questions

What is the difference between events and key events in GA4?

An event is anything GA4 records: a page view, a click, a purchase. A key event is an event you've flagged as mattering to the business; GA4 reports it separately and it becomes importable into Google Ads. The toggle changes reporting and eligibility, not the underlying data.

Are GA4 key events the same as conversions?

Since the 2024 rename, GA4 calls them key events; 'conversions' now means key events that have been imported into Google Ads as conversion actions. Same mechanics, two names. GA4's name describes reporting; the Ads name describes what bidding optimizes toward.

Should Google Ads use GA4-imported conversions or its own tag?

Pick one as primary. The native Google Ads tag is usually the better primary (faster and built for bidding), with the GA4 import kept as secondary for reporting. Running both as primary double-counts every conversion, which is one of the most common discrepancy causes.

Related