LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog Overview /Digital Analytics / Key Events and Conversions in GA4: Two...
Read this article in other languages:

Key Events and Conversions in GA4: Two Counters and What the Data API Release of May 2026 Shows

Key Events and Conversions in GA4: Two Counters and What the Data API Release of May 2026 Shows
Contents
  1. What the 2024 rename actually did
  2. The consequence that shows up in the interface
  3. What the API release added
  4. The documentation confirms the split by falling back
  5. Which number belongs where
  6. One caveat about the alpha
  7. Questions and answers
  8. Sources
  9. Practical check: compare the configuration before and after a change

On 4 May 2026 cross-channel conversion data became available through the Analytics Data API, in alpha, for properties linked to Google Ads. Read as a release note it is a modest item: a report that existed in the interface can now be fetched programmatically.

Read as a piece of evidence it is more useful than that. To return conversions the API has to say what a conversion is, and the answer exposes a split that the interface has carried quietly since 2024. Two counters run beside each other in every GA4 property. Only one of them is always there.

One event at the top splitting into two paths, the left one leading to a key events counter that is always present, the right one passing through a gate marked as requiring a linked Google Ads account before reaching a conversions counter, with three panels beside them on the API release, the differences and the documented fallbacks
One action, two counters. The left path exists in every property. The right one only opens once a Google Ads account is linked, and it counts by different rules.

What the 2024 rename actually did

Until 2024 the thing GA4 counted was called a conversion. The rename moved that word out of Analytics and into Google Ads: what Analytics marks is now a key event, and conversion became the term for what Ads counts and bids on.

This was widely read as cosmetics, one word swapped for another to tidy up the vocabulary across two products. It was not. The rename separated two counts that had been sharing a name, and the sharing had been hiding the fact that they do not agree.

The consequence that shows up in the interface

Inside Analytics, conversion now refers specifically to a key event that has been imported into Google Ads. That definition has a blunt edge to it: with no Ads account linked, a property has no conversions at all. Not zero conversions — no column. There is only the key events column, and nothing missing from it.

Where both exist, they can be compared, and they will rarely match. The reason is that they are attributed by different models, scoped to different data, and counted under different rules, which is exactly why keeping one word for both was misleading enough to be worth a rename.

What the API release added

The alpha exposes the same figures the Conversion performance report shows in the interface: paid and organic conversion performance across channels, retrievable in code for the first time. Two options in the request are worth noting because they are where the differences from key events become concrete.

Text
Conversion action    all conversions at once, or filtered
                     to specific conversion action IDs

Attribution model    data-driven, or last click

Time basis           conversion time - the report is built
                     around when the conversion happened

                     interaction time - the report is built
                     around the ad interaction that preceded it

None of those three choices exists for key events, and that is the point. A key event is an occurrence with a timestamp. A conversion is an occurrence plus a model that decides which touchpoint earned it and which clock it is filed under. Two numbers built from the same underlying action can differ by a lot without either being wrong.

The documentation confirms the split by falling back

The clearest evidence that these are two separate systems is not a definition but a list of exceptions. In several places the cross-channel conversion documentation states that conversions are not available and key events are used instead.

Text
App conversions                    key events used instead
Search Ads 360 dimensions          key events used instead
Display & Video 360 dimensions     key events used instead
Campaign Manager 360 dimensions    key events used instead
Attribution paths report           key events used instead

A fallback list of that shape only makes sense if the two are genuinely different quantities. Nothing falls back to itself. Anyone reading a report that mixes web and app, or that carries SA360 or DV360 dimensions, is reading a mixture of the two counts, and the column heading does not say so.

Which number belongs where

The division of labour is clean enough to write down once and follow.

Key events answer questions about the site. How many people completed the form, whether that rose after the redesign, which page precedes it most often. The count is unmodelled, present everywhere, and comparable to itself across time, which is what makes it the right basis for anything internal.

Conversions answer questions about advertising. What a campaign earned, what to bid, which channel to credit. The count is modelled by design, because deciding what a click was worth is a modelling question and cannot be anything else.

Trouble starts when one count is used in the other’s context: a campaign report defended with key events, or a redesign judged by conversions that changed because the attribution window changed rather than the page. Each count describes something different, so using it for the other purpose gives a misleading basis for the assessment.

One caveat about the alpha

Alpha in the Data API means the surface can change without the notice a stable version would get. That is not a reason to leave it alone — it is the only programmatic route to these figures — but it is a reason to keep the extraction thin. A pipeline that pulls conversions and stores them raw survives a field rename with an edit in one place. A pipeline that joins, reshapes and aggregates on the way in has to be understood again from scratch each time the shape moves.

Questions and answers

Does a key event automatically become a conversion once Google Ads is linked?

No. The link only establishes the connection; a key event becomes a conversion only once it has been imported into Google Ads as a conversion action. Until then the conversions column does not count that event, even while the key events column next to it shows figures.

Which settings determine how far key events and conversions drift apart?

The article names models, data scope and counting rules; in practice these come down mainly to four settings that can be checked one by one:

  1. The counting method. In GA4 a key event can be counted once per event or once per session; a conversion action in Google Ads counts every conversion or one per interaction. If the two sides are set differently, the numbers diverge before any model is involved.
  2. The attribution model. Data-driven attribution spreads a conversion across several touchpoints; last click gives it to a single one.
  3. The window. Google Ads only counts a conversion if it falls within the configured conversion window after the ad interaction; a key event has no such deadline.
  4. The time basis. Under interaction time a conversion is filed on the day of the click, the key event on the day of the action. Daily figures then differ even where the totals over a longer period match.

Any comparison of the two figures should line up these four first. Whatever gap remains after that is the part that actually needs explaining.

Why can the conversions for a past day rise after the fact?

Because under interaction time every conversion is credited to the day of the ad interaction that preceded it. A purchase today after an ad click a week ago raises the figure for that earlier day. An extraction that pulls only the previous day, every day, therefore freezes values that are still growing.

What does a thin extraction of the alpha data look like in practice?

A thin extraction stores the response as it arrives and writes the request next to it. Each row carries the attribution model, the time basis and the filtered action IDs, because the same combination of day and channel yields a different figure under different settings, and without them there is no telling later which version of a number is on file. The retrieval time belongs there too, because values under interaction time change after the fact.

For the same reason the pipeline does not fetch just the previous day but pulls a trailing period again and again, replacing the stored days rather than appending to them. How far back that period has to reach follows from the conversion windows in Google Ads. Joining, reshaping and aggregating happen only afterwards, in views over the raw data; if the alpha interface changes a field, that affects one place in the extraction rather than every downstream table.

Metadata and quotas in a report response can be inspected with the GA4 API Response Inspector. GA4 API Response Inspector

Practical check: compare the configuration before and after a change

The GA4 Property Configuration Comparator records a defined set of settings through the read-only Admin API. This makes a changed key-event counting method or retention period visible without confusing the change with a new reporting result.

  1. Capture snapshot A before the intended change and save its JSON file locally.
  2. After the change, capture snapshot B from the same property. Alternatively, use a second property to compare implementations.
  3. Compare the snapshots. The result lists added, removed and changed fields. The original capture times and property IDs remain visible.
  4. Review key events, retention, timezone, currency, streams and custom definitions within the documented scope.

This is not a full backup or a retrospective history. A snapshot cannot reconstruct the settings from a date before it was captured. Stream identifiers used for matching are type and name; custom definitions use scope and parameter name. Renaming those keys appears as removal and addition. Resource IDs, creation timestamps, measurement IDs and secrets are excluded, so a clean comparison does not certify identical tagging or identical collected data. If an API section fails, no partial snapshot is presented as complete.

The tool supports local comparison of saved files without Google login. Its scope follows the Analytics Admin API, including key events and retention settings.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in touch

A question or an idea for a web project? Tell me a little about it. This form uses reCAPTCHA to protect against spam.

Write a comment

Differing figures from other accounts and questions about the setup are welcome here.

The email address is not published. Required fields are marked with an asterisk.