Alert: DIGISTREET does not offer any jobs via WhatsApp. Such messages are fraudulent. Apply only through official channels. Stay mindful. Stay safe.

Why your GA4 conversion count is probably wrong

Why your GA4 conversion count is probably wrong - DigiStreet Media
GA4 key events audit

Why your GA4 conversion count is probably wrong

Updated 29 October 2026.

711 key events in 28 days looks like an app where people do things. Every one of them was an install or a session start. We found that in a GA4 property on 6 October 2026, and it had been feeding a Google Ads app campaign for months. Here is how to check yours.

The number that looked fine

711 key events in 28 days, on a property with 293 active users. That reads like an app where something happens. Every one of those 711 was an install or a session start.

We opened the property on 6 October 2026 while auditing an assessment app on Android and iOS. Two events were producing the whole conversion count: first_open and session_start. Revenue read $0. Not low. Zero, because the purchase event had never been sent.

So the conversion count was an arrival count. 231 of the 293 users were new, about 98% of paid sessions came from a single Google Ads app campaign, and the campaign was being judged on the one thing it had already achieved by definition.

What the 711 was actually made of

first_open fires once per install. session_start fires every time anyone engages the app, including the same person on day four. Google collects both automatically in any app with the Firebase SDK. Nobody wrote a line of code for either.

That is the trap. The two events that cost nothing to collect say the least about value, and they end up on the key events list because they are the only events in the property. screen_view was marked too, which would have made every screen change a conversion the moment screens were named properly. Here is the list before and after we changed it on 8 October 2026.

The key events list in an assessment app’s GA4 property before and after 8 October 2026. The 711 key events recorded in the previous 28 days came only from the first two rows.
Event What it actually measures Before After
first_open An install opening for the first time, once per install Key event Key event, kept as the install marker
session_start A session beginning, including the same person returning on day four Key event Not a key event
screen_view A screen change, collected automatically on apps Key event Not a key event
sign_up A verified account now exists Not sent Key event
login A returning user signs in Not sent Key event
test_start The first question of an assessment is answered Not sent Key event
test_complete An assessment is submitted Not sent Key event
purchase Money is taken, with value and currency attached Not sent Key event

What this does to a Google Ads app campaign

Google Ads bids towards what you mark. Import an install as your only conversion and bidding will find you the cheapest installs available, which are usually the ones least likely to open the app again.

Google’s own App campaign bidding documentation is direct about the alternative: to bid for in-app actions you need to set those actions up as conversion events in Google Ads, or use Firebase, and after you have linked Firebase and Google Ads you can bid on the in-app events you have set up as conversions. Without them, target cost per action for in-app actions is not a choice you can make. There is nothing for it to chase.

The cost is not theoretical. Spend drifts to the cheapest install, the cost per install chart slopes downwards, and the number of registered users stays flat. We see it most often where the Google Ads account and the analytics property were built by two teams who never spoke.

How to tell in four minutes

Open Admin, Data display, Events, then the Key events tab, and read the names. If everything on the list is something that happens to you rather than something a person decided to do, the count is wrong.

Three checks. One, is session_start, screen_view or page_view on the list. Two, does total revenue read zero while the app clearly takes money.

Three, open the Events report and look for an event that names an outcome, such as sign_up, generate_lead or purchase. If all you find is first_open, session_start, screen_view, user_engagement and app_remove, the property is collecting only what Google collects for free.

Then check the ad account. If the conversion action your app campaign bids towards is an install, and no GA4 key event other than that has been imported, the two systems are agreeing with each other about nothing.

Intex: Google Search Console clicks and impressions for the site we work on.
Intex, clicks and impressions in Google Search Console, from the client’s own Search Console property.
Real client evidence

Intex

Search evidence, not app data. This is the Google Search Console clicks and impressions chart from our SEO work with Intex, shown here because it is a measurement we can put on screen with a named source. The GA4 figures in this post come from an assessment app on Android and iOS whose owner we are not naming.

Read the Intex case study

What to mark instead

Mark the moments a person has to choose. On this app there were six: sign_up, login, test_start, test_complete, appointment_booked and purchase. Each one needs a decision, and each one maps to a step in the funnel we wanted to read.

We left first_open marked, because install volume is still how you judge the reach of an install campaign, and we removed session_start and screen_view. You cannot have it both ways. Marking everything is the same as marking nothing, because the conversion column then measures attendance.

One note on sequence. GA4 marks an event with the star in Admin, Data display, Events once Analytics has received it, and an event that has not arrived yet can be marked ahead of collection so it counts from the first hit. Standard reports can take up to 24 hours to show it, Realtime shows it in minutes, and marking does not change historic data.

What changes after you fix it

The key event count drops, often by 90% or more, and somebody senior asks why. Have the answer ready before you make the change: the old number was counting arrivals, and the new one counts people.

Google Ads gains real options. Once Firebase and Google Ads are linked and the in-app events are marked, target cost per action for in-app actions becomes selectable, and you can bid towards a sign-up or a purchase instead of an install. Target return on ad spend needs a revenue value on the event, which is why value and currency on purchase are not optional parameters.

And the funnel exploration starts working, because it finally has steps. We build those reports as part of business analytics work rather than as a one-off fix, because the first month after a tracking release is when the numbers get misread.

Why this happens at all

Nobody marks session_start as a conversion on purpose. It gets marked because the property was set up quickly, somebody wanted the conversion column to show a number, and the automatic events were the only ones available.

The second reason is retention. This property had event data retention set to 2 months, the shortest option GA4 offers; a standard property allows 14 months. The setting only affects explorations and funnel reports, not standard aggregated reports, which is exactly why nobody notices until the first attempt at a funnel finds the window too short. We raised it to 14 months before touching anything else, because the setting is not retroactive.

It costs nothing and takes one click. Change it in your own property now, then come back. We do the same check on the first day of every analytics engagement, before anyone asks for a report.

How to spend the 30 key events you get

A standard GA4 property allows 30 key events and Analytics 360 allows 50. Thirty sounds generous until four people each mark the five events they care about.

Our rule is one key event per decision somebody makes with money or time. On this app that was six. Everything else is still collected, still reportable and still usable in an exploration. It is just not competing for the conversion column or acting as a bidding signal.

The test: if you cannot say what you would do differently when a number on that list moves, it does not belong on the list. Performance work with us is priced at the higher of 15% of monthly media or ₹50,000 plus GST a month, and this list is the first thing we go through on a new app account, before any bid changes at all.

Frequently asked questions

1

Is first_open a conversion?

Only for an install campaign. It fires once per install, so it measures reach rather than value, and it should sit alongside real in-app key events rather than being the only one on the list.

2

How many key events can a GA4 property have?

30 on a standard property and 50 on Analytics 360. Most apps need fewer than ten, and a long list gives Google Ads no priority between them.

3

Will my conversion numbers drop after I fix this?

Yes, usually sharply. On the property in this post the count went from 711 arrivals in 28 days to a much smaller number of real actions, so tell whoever reads the report before you change the setting, not afterwards.

4

Does unmarking a key event delete the old data?

No. Google’s documentation says turning off a key event does not affect data you have already collected, and past events still appear in reports as key events. Marking an event does not change historic data either, so the mark date is a break in the trend line.

5

Why does GA4 show zero revenue on my app?

Because purchase is not being sent, or is arriving without value and currency. In-app purchases are only collected automatically for app versions that include the Firebase SDK, and a server-side payment confirmed outside the app will not appear unless you send it.

6

What does it cost to get this fixed?

Our performance marketing management fee is the higher of 15% of monthly media or ₹50,000 plus GST a month, with media paid separately, and the key event audit is part of the first month rather than an extra line. The fee rate on the whole budget falls to 10% from ₹20,00,000 of monthly media.

Send us your property and we will tell you what it is really counting.

Get a quote

Kavish Arora

Written by

Kavish Arora

Kavish Arora is Co-Founder of DigiStreet Media, a digital marketing agency based in Noida working with over 250 brands across industrial, automotive, education, finance and consumer categories. He has spent 15+ years building brands, performance and SEO programmes for Indian and international clients, and co-founded DigiStreet Media, now in its 14th year. Read more about Kavish Arora .

Let's Build Something

Have a project like this in mind?

Tell Digistreet Media what you're trying to build and we'll tell you exactly how to get there.

Get In Touch →
Related posts

Awarded Digital Marketing Agency
4.8 from 250+ 5 star rating reviews

Let’s Imagine, Believe, Create Together

    Select Services*

      Select Services*