Google Analytics Conversion Tracking: GA4 Key Events Setup Guide
Google Analytics conversion tracking in GA4 works by marking the events that matter, such as a purchase or a submitted lead form, as key events in Admin > Data display > Events. If the action is not collected yet, you first create the event from an existing one (for example a thank-you page view) or send it with Google Tag Manager. GA4 then counts each key event by channel and landing page, and you can import it into Google Ads as a conversion for bidding.
This guide covers the full setup, how to check it works, where the numbers live in reports, why GA4 and Google Ads never agree exactly, and the step most guides skip: putting a dollar value on each key event so you can see which pages and channels earn money.
How Google Analytics Conversion Tracking Works
GA4 records everything as an event: a page view, a scroll, a click, a form submit, a purchase. Google Analytics does not know which of those events matter to your business until you tell it. Marking an event as a key event is how you tell it. The chain looks like this:
The naming changed along the way. GA4 used to call marked events “conversions.” Google renamed them key events so that “conversion” would mean the same thing in Analytics and Google Ads: an action used to measure and optimize ad campaigns. Creating a conversion from a key event requires a linked Google Ads account. If you never run Google Ads, key events are all you need, and they still cover organic search, email, social, referral and AI assistant traffic.
| Universal Analytics (old) | Google Analytics 4 | |
|---|---|---|
| What you configured | Goals (destination URL, duration, pages per session, event) | Key events, built from any collected event |
| Data model | Sessions and pageviews, with events as an add-on | Everything is an event with parameters |
| Counting | One goal completion per session | Once per event by default, once per session optional |
| Where it shows | Goals reports and goal columns | Key events column in any report, Realtime, DebugView, Advertising |
What to track as a conversion
A conversion should be an action that is directly tied to revenue or a sales conversation. Google’s own example makes the point: you could mark scroll as a key event, but generate_lead tells you someone actually completed the form. Use Google’s recommended event names where one fits, because some reports and integrations recognize them.
| Business type | Primary key events | Usually not a key event |
|---|---|---|
| Ecommerce | purchase (with value, currency, transaction_id) | add_to_cart, view_item (track them, analyze them as a funnel) |
| Lead generation and services | generate_lead (quote, contact or booking form), phone number clicks | form_start, page scrolls, time on page |
| SaaS | sign_up, trial start, demo request, purchase | pricing page views |
| Publishers and content sites | newsletter sign_up, membership purchase | article reads, video starts |
| Local businesses | calls, direction requests on your site, booking form | map embeds viewed |
A simple decision rule: if the number of these events doubled next month, would revenue or pipeline move? If yes, mark it as a key event. If no, keep it as a regular event and use it for diagnosis. Marking too much dilutes your key event totals and conversion rates, and GA4 caps how many you can have (see the limits section below).
Before You Start
- The Google tag is on every page. Either the gtag.js snippet or a Google Tag Manager container with a Google tag using your G- measurement ID. On Shopify, WordPress and WooCommerce this is usually done through the platform’s Google integration or a plugin. Install it once, not through two methods at the same time.
- Enhanced measurement is on. In Admin > Data streams, it collects page views, scrolls, outbound clicks, site search, video engagement, file downloads and form interactions without code.
- You have the right role. Google says you need Editor or above to mark existing events as key events and Marketer or above to create new ones. Importing into Google Ads needs Admin access in Ads and Edit access in the linked GA4 property.
- You know what “success” looks like on the site. A thank-you URL, a confirmation message, an order confirmation page, or a dataLayer event pushed by your form or cart.
How to Set Up Conversion Tracking in GA4, Step by Step
There are three ways to get a key event, and you only need one per action. Steps 3, 4 and 5 are alternatives.
Step 1: Choose the actions that count
Write down each action with its event name and how it can be detected: generate_lead on the /thank-you page, purchase from the checkout, phone_click on tel: links. Keep the list short: a lead generation site usually needs only a handful of key events.
Step 2: Check what GA4 already collects
Go to Admin > Data display > Events and look at the list of recent events, or do the action yourself and watch the Realtime report. If your ecommerce platform already sends purchase, or enhanced measurement already sends file_download, you can skip straight to Step 3.
Step 3: Mark an existing event as a key event
In Admin > Data display > Events, click the star (or toggle) next to the event. This is right when the event only fires for the action you care about, like purchase or sign_up. It is wrong for broad events: marking page_view would turn every page view into a conversion. Google’s steps are in Mark events as key events.
Step 4: Create an event for a thank-you page
If a form sends people to a confirmation page, you can build the key event inside GA4 with no code. In Admin > Data display > Events, click Create event, then Create, and set:
- Custom event name:
generate_lead - Condition 1:
event_nameequalspage_view - Condition 2:
page_locationcontains/thank-you(use the most specific path you have, see the failure modes below)
Save it. GA4 now copies every matching page view into a generate_lead event, while the original page view stays untouched. Once the new event appears in the list, mark it as a key event. You can also tick “Mark as key event” while creating it.
Step 5: Send a custom event with Google Tag Manager or gtag
When no page view or existing event isolates the action (an AJAX form with no redirect, a booking widget, a click on a specific button), send your own event at the moment of success. In Google Tag Manager, create a Google Analytics: GA4 Event tag with your measurement ID, the event name, and parameters, then attach a trigger that fires only on real success, such as a dataLayer event your form pushes after the server accepts it. Without Tag Manager, the gtag version is one line:
After the event has been received, find it in the Events list and mark it as a key event. Keep the name short: Google’s event collection limits say an event name over 40 characters will not be reported as a key event.
Step 6: Set the counting method and verify
Each key event counts either once per event (the recommended default) or once per session (the legacy option, and the default for goals migrated from Universal Analytics). Once per event shows you that a buyer placed two orders in one visit. Once per session suits leads where a second form fill in the same visit is almost always a duplicate. Change it from the Key events tab menu. Then verify the event as described in the next section.
How to Check That Conversion Tracking Works
- Preview the tags. Open Tag Assistant (or GTM Preview mode) on your site and complete the action. Confirm the GA4 event tag fired once, with the right name and parameters.
- Watch DebugView. In Admin > Data display > DebugView, your test device shows each event as it arrives, and key events are flagged. Check value and currency here: a missing currency is the most common reason values do not show.
- Check Realtime. The Realtime report has a key events card by event name. Your test should appear within minutes.
- Wait for standard reports. Google says to allow up to 24 hours before a new key event shows in standard reports.
- In Google Ads, check the status. A new conversion action reads Unverified or Inactive until it records a conversion, which is normal at first. Go to Goals > Conversions > Summary and look for Active after a real or test conversion.
- Exclude your tests. Define your office IP as internal traffic and filter it, or delete test orders, so test conversions do not inflate the reports.
Where to See Conversions in GA4 Reports
- Reports > Acquisition > Traffic acquisition shows key events and session key event rate by channel. Use the dropdown above the key events column to look at one key event instead of all of them.
- Reports > Engagement > Landing page shows which entry pages start the sessions that convert. Add a filter for Session default channel group = Organic Search to see your SEO pages.
- Explore lets you build a free-form table of Landing page × Session source / medium × Key events × Event value. Use session-scoped dimensions for session metrics.
- Advertising holds attribution paths and model comparison, and is where key events are shared with Google Ads.
Session key event rate vs user key event rate
GA4 offers two conversion rates. They answer different questions.
Illustrative example: 1,000 sessions from 700 users. 40 sessions contained a lead, from 35 different people. Session key event rate is 40 ÷ 1,000 = 4%. User key event rate is 35 ÷ 700 = 5%. Use the session rate to judge landing pages and campaigns, and the user rate when buyers take several visits to decide. Note that key events ÷ sessions will not match the session rate, because one session can contain several key events.
GA4 Limits That Change Your Numbers
These rules come from Google’s help center and explain most “why don’t I see it?” questions. None of them show up as an error.
| Rule | What it means for you |
|---|---|
| Up to 30 key events per standard property (50 on Analytics 360) | Be selective. Retire old key events before adding new ones. |
| Marking an event as a key event does not change historic data | You cannot backfill. Last month’s form fills stay as plain events, so set key events up before a campaign, not after. |
| Counting method changes apply to future data only | A switch from once per session to once per event creates a step in your trend line. Annotate the date. |
| Up to 24 hours before standard reports show a new key event | Use DebugView and Realtime to test; do not conclude it is broken after an hour. |
| Event names over 40 characters are not reported as key events | Keep names short and snake_case. |
| Some events are key events by default: purchase (and app events such as first_open); with ads personalization on, Google also lists add_to_cart, begin_checkout, view_item, view_item_list, view_search_results, add_to_wishlist and session_start | Check the Key events tab. Default micro events, and especially session_start, can inflate “all key events” totals and rates. Pick your specific key event in reports. |
The 30 and 50 caps, the 24 hours, the default list and the no-backfill rule are all on Google’s key events help page. The 40-character name rule is in Google’s event collection limits.
Send GA4 Key Events to Google Ads
If you run Google Ads, the platform needs conversions to report cost per conversion and to feed Smart Bidding. You have two data sources, and Google’s own setup flow offers both:
- Import from Google Analytics. Link the accounts (Admin > Product links > Google Ads links in GA4), then in Google Ads create conversion actions from your GA4 key events, or create the conversion from GA4’s conversion management. Only key events are eligible. This reuses the tracking you already built and keeps one definition of a lead.
- Google Ads conversion tag. A dedicated Ads tag on the success page or event. Google recommends it if you do not use GA4 or need Ads-specific features such as enhanced conversions. Some practitioners prefer it for bidding because it is not affected by GA4 processing delays and counts from the click.
Whichever you choose, set only one of them as the primary action for the same goal, or Smart Bidding sees every lead twice. Some actions are Ads-only and never appear in GA4: calls from call ads and call assets, view-through conversions, store visits and offline conversion imports from your CRM.
Why GA4 and Google Ads Conversion Numbers Don’t Match
Even with perfect tags, the two tools count differently. Expect a gap and know which tool answers which question: Google Ads for ad bidding and cost per conversion, GA4 for how all channels and pages perform.
| Difference | Google Ads | GA4 |
|---|---|---|
| Which traffic counts | Only conversions after a Google ad click (or view, for view-through) | Every channel: organic, paid, email, social, referral, direct |
| Date of the conversion | Date of the ad click | Date the key event happened |
| Attribution model | Data-driven by default for most new conversion actions; last click optional | Data-driven by default in reports; paid and organic last click optional |
| Counting | Every or one conversion per ad click | Once per event or once per session |
| Cross-device | Uses Google’s own signed-in data | Relies on Google signals and user ID |
| Invalid clicks and tests | Filters invalid clicks | Counts test orders and invalid clicks unless you filter them |
| Consent and blockers | Ads tag may fire or be blocked independently | Lost or modeled when analytics consent is denied or the tag is blocked |
| Time zone and freshness | Account time zone; imported GA4 data arrives later than native tag data | Property time zone; reports can lag up to a day |
Some comparison articles say Google Ads uses last click attribution by default. Google’s attribution models help page says data-driven is the default for most new conversion actions, and that first click, linear, time decay and position-based models are no longer supported. Last click is still available if you choose it.
Another claim is that GA4 counts a repeated action, like a file download, only once per session. That is true only for key events set to the legacy once per session method. New key events count once per event unless you change them.
For how last click and data-driven credit differ in practice, see last click attribution explained.
Conversion Rate vs CTR
People often mix these up because both are percentages on the same dashboard. They measure two different steps:
Illustrative example: your page appears 10,000 times in Google results and gets 300 clicks, a 3% CTR. Those 300 visits produce 12 sessions with a lead, a 4% conversion rate. A higher CTR brings more visitors; a higher conversion rate turns more of them into leads. Search Console and Google Ads report CTR. GA4 reports the conversion side. A page with a great CTR and a poor conversion rate needs work on the page or the offer, not the title tag.
Failure Modes and How to Fix Them
| Symptom | Likely cause | Fix |
|---|---|---|
| More leads in GA4 than in your CRM | Thank-you page reloads, back-button visits or bookmarked confirmation pages each fire a new page_view | Fire the event from the form’s success callback instead, or switch that key event to once per session |
| Leads attributed to blog posts that have no form | The rule “page_location contains thank-you” also matches /blog/thank-you-email-templates | Match the exact path, for example page_location ends with /contact/thank-you/ |
| Every conversion counted twice | Google tag installed twice (hard-coded gtag plus a GTM tag, or a plugin plus a theme setting) | Check Tag Assistant for two hits per event and remove one installation |
| form_submit key event far above real submissions | Enhanced measurement sends form_submit on submit attempts, including searches and failed validation | Do not mark form_submit as a key event; send generate_lead on confirmed success |
| Payment provider or booking tool shows up as the top converting referral | Buyers come back from an external checkout and start a new session credited to that domain | Add the domain to the unwanted referrals list in the data stream’s tag settings |
| Event fires in DebugView but never becomes a key event | Name over 40 characters, or marked under a slightly different name (case matters) | Rename the event and mark the exact name that appears in the Events list |
| Conversions drop for EEA visitors only | Consent Mode not set up, or the banner blocks the tag before choice | Implement Consent Mode correctly and test with consent granted and denied |
| Revenue missing even though purchases count | value sent without currency, or as a string with a currency symbol | Send value as a number and currency as a three-letter ISO code such as USD |
Turn Key Events Into Dollars by Landing Page
A key event count tells you how many leads you got, not what they were worth. A newsletter sign-up and a demo request both count as one. Sending a value and currency with each key event fixes that, and lets GA4 sum value by channel and landing page. Ecommerce purchases carry their real order value. For leads, you need an estimate.
Illustrative worked example for a services business. Over the last six months, 20% of form leads became clients, and the average client was worth $3,000 in the first year. Value per lead = 0.20 × $3,000 = $600. For the newsletter, about 1 in 200 subscribers became a client within a year, so a sign-up is worth $3,000 ÷ 200 = $15. Send value: 600 with generate_lead and value: 15 with sign_up. A month later, an exploration of organic landing pages reads:
| Organic landing page | Leads | Sign-ups | Value |
|---|---|---|---|
| /services/website-audit | 9 | 4 | 9 × $600 + 4 × $15 = $5,460 |
| /blog/technical-seo-checklist | 2 | 41 | 2 × $600 + 41 × $15 = $1,815 |
| /pricing | 6 | 0 | 6 × $600 = $3,600 |
| /blog/what-is-crawl-budget | 0 | 18 | 18 × $15 = $270 |
Counting all key events equally would have ranked the checklist post first. With values, the service page is clearly the page to protect and improve. Revisit the close rate every quarter, and keep the values consistent across tools. The full method, including how to handle sales cycles, is in how to calculate conversion value.
For organic search, GA4 cannot tell you which keyword produced the lead, because Google does not pass it. The landing page is the reliable unit. Visits from ChatGPT, Perplexity and other assistants show up as referrals when the assistant passes a referrer, and as Direct when it does not. Our SEO conversion tracking guide and AI conversion tracking guide show how to build those views. If you would rather not build explorations, SEOConversion reports conversions and their value from Google, Bing and AI assistants for each landing page, using the value you assign to each conversion.
Tracking Conversions in an Android App
For apps, conversion tracking runs through the Firebase SDK and an Android (or iOS) data stream in the same GA4 property. App events such as first_open and in_app_purchase are key events by default. Log your own events in the app code, for example sign_up after account creation, then mark them as key events in Admin exactly as for the web. Use DebugView with debug mode enabled on a test device to verify, and import the key events into Google Ads if you run app campaigns.
1. A short list of key events tied to revenue or sales conversations, with short names.
2. Each fires on confirmed success only, with value and currency.
3. Default micro key events reviewed; counting method chosen.
4. Tested in Tag Assistant, DebugView and Realtime; test traffic excluded.
5. One primary source per goal in Google Ads.
6. Reports read by landing page and channel, in dollars.
FAQ
How do I track conversions in GA4?
Make sure the action is collected as an event, then mark that event as a key event in Admin > Data display > Events. If the event does not exist yet, create it from an existing event (for example a page_view of your thank-you page) or send it with Google Tag Manager or gtag. Add a value and currency, then verify it in DebugView before trusting the reports.
How do I check that Google conversion tracking is working?
Complete the action yourself with Tag Assistant or debug mode on and watch the event arrive in DebugView, flagged as a key event. Then confirm it in the Realtime report’s key events card. Standard reports can take up to 24 hours, and in Google Ads a new conversion action shows Unverified or Inactive until it records its first conversion.
How does conversion tracking work?
A tag on your site sends an event to Google Analytics each time a visitor does something, such as viewing a page or submitting a form. You tell GA4 which of those events matter by marking them as key events. GA4 then counts them, credits them to the traffic source and landing page of the visit, and can share them with Google Ads as conversions.
What is a conversion in Google Analytics?
In GA4 the business action you care about is called a key event: any collected event you have marked as important, such as purchase or generate_lead. Google now reserves the word conversion for a key event that is also used to measure and optimize Google Ads campaigns. Most people still say conversion for both.
What is an example of a conversion?
A completed purchase is the classic example. Others are a submitted quote or contact form, a demo booking, an account sign-up, a click on a phone number, or a download of a pricing sheet. A good conversion is an action that is directly tied to revenue or to a sales conversation, not just engagement like scrolling.
What is the difference between conversion rate and CTR?
Click-through rate measures how often people click after seeing an ad or a search result: clicks divided by impressions. Conversion rate measures how often visits turn into a valuable action: in GA4, sessions with a key event divided by all sessions. CTR tells you whether your listing attracts the click, conversion rate tells you whether the page and offer close.
See what each landing page earns, not just how many key events it logs.
SEOConversion installs with one script, autocaptures form submits, calls and ecommerce events, and shows the conversions and value that Google, Bing and AI assistants bring to each landing page.
Start free