Skip to main content

Google Ads

Google Ads counted three conversion actions on one lead. Target CPA optimised to the sum

6 min read

There is one number on the campaign overview that everything else is judged against. Cost per conversion is spend divided by it. Smart bidding sets every bid to hit a target expressed in it. Clients ask about it by name. It is the Conversions column, and in most accounts almost nobody knows what it is made of.

We pulled it apart for a mid-sized search account. Over eleven days the account reported 251.9 conversions. Here is what they were.

Conversion action

Category

Type

Conversions

Share

Web form, GA4 event

Submit lead form

GA4 import

77.4

31%

Qualified lead, CRM upload

Qualified lead

Offline click upload

59.0

23%

Calls from website number

Phone call lead

Website call

38.5

15%

Google-hosted lead form

Submit lead form

Lead form extension

26.0

10%

Calls from ads

Phone call lead

Call from ad

26.0

10%

Web form, Ads tag

Submit lead form

Website tag

25.0

10%

Total

251.9

100%

Six actions. Two of them fire on the same web form submission. One of them is the same person, days later, once someone in the office has marked them as worth calling back. One human filling in one form could register three times.

Why two actions on one form

The web form has two conversion actions on it because the tracking was built in two different eras.

Action

Built when

How it fires

Web form, Ads tag

Original setup

Google Ads conversion tag on the thank-you page

Web form, GA4 event

GA4 migration

GA4 event on thank-you pageview, imported into Ads

Both are primary. Both count. Nobody retired the old one when the new one went live, and because the two actions have different names, the interface shows them as two different things.

The GA4 action counts roughly three times as many as the Ads-tag action, 77.4 against 25.0, which seems to contradict the idea that they fire on the same event. The gap has a specific cause, which the next post in this series covers: the GA4 event was set to count every pageview of the thank-you page, and the thank-you page could be reached by anyone, including on refresh. The Ads tag was set to count once per click. Same page, different counting rules, wildly different totals.

Why the CRM upload is a third count

The third action is an offline conversion import. Someone in the business exports leads, marks the ones that were real, and uploads them back to Google Ads matched by click ID. That's good practice. It tells the platform which leads were worth having.

But it was configured as a primary action, in the Qualified lead category, which the campaigns were set to bid on. So a person who submits the form (count one, GA4), whose submission also fires the old tag (count two), and who is later uploaded as qualified (count three) contributes three conversions to the number smart bidding is chasing.

Action

Fires when

Is it a new lead?

GA4 web form

Thank-you pageview

Yes

Ads-tag web form

Same thank-you pageview

No, same submission

CRM qualified lead

Days later, on upload

No, same person, later stage

What it looks like at campaign level

One campaign, thirty days, 33 conversions in the column:

Conversion action

Conversions

GA4 web form

14.0

CRM qualified lead

10.0

Calls from website number

5.0

Ads-tag web form

4.0

Column total

33.0

The unique lead events are the web form submissions (14) and the phone calls (5). The Ads-tag count is a subset of the GA4 count. The qualified-lead count is a subset of everything above it. So the plausible unique-lead figure is 19, not 33, an inflation factor of about 1.7×.

What that does to smart bidding

That campaign had just been moved to Target CPA with a $150 target. The algorithm sets bids to achieve $150 per conversion as counted in the column. If the column is inflated 1.7×, then:

Per column conversion

Per unique lead

Target

$150

~$260

What the algorithm believes

Hitting target

n/a

What the business pays

n/a

74% over target

Nobody set a $260 target. It emerged from the counting. And it's invisible on every report, because every report divides by the same inflated number.

There is a trap on the other side too. Fix the counting and the column drops from 33 to ~19, which puts the campaign under the ~30 conversions per 30 days that Target CPA wants to work properly. You can fix the accuracy and break the bidding in the same move. That's not a reason to leave it broken; it's a reason to fix it deliberately, one action at a time, with the target adjusted alongside.

The API will tell you the wrong thing

If you audit this through the Google Ads API rather than the interface, there is a specific trap.

The CRM upload action returns this:

Field

Value

conversion_action.type

UPLOAD_CLICKS

conversion_action.category

QUALIFIED_LEAD

conversion_action.counting_type

MANY_PER_CLICK

conversion_action.click_through_lookback_window_days

90

conversion_action.include_in_conversions_metric

false

conversion_action.primary_for_goal

true

Read the fifth row and you'd conclude this action is not counted in the Conversions column. We did, initially. It is counted. primary_for_goal is the field that decides under the goals-based conversion system Google moved to in 2022; include_in_conversions_metric is the legacy flag and it no longer governs.

We proved it the only way that's conclusive:

Query

Result

metrics.conversions from customer, unsegmented

251.9

Sum of metrics.conversions from customer segmented by conversion_action_name

251.9

Difference

0.0

Every action in the segmented list, including the one flagged include_in_conversions_metric = false: is inside the unsegmented total. If you're building an audit script, do not filter on the legacy flag. Filter on primary_for_goal, and then confirm by summing.

How many actions the account actually had

Before any cleanup, the account carried 27 live conversion actions. Twelve were archived in the first pass. Some of what was in there:

Archived action

Why it existed

Status

Thank_You_GA4

Earlier attempt at the same web form event

Duplicate

Thank_You_GA4_once_per_session

Attempt to fix the counting with a second event

Duplicate

Thank_You_GA4_All_Events

Another attempt

Duplicate

cf7_form_submission

Form plugin's own event

Duplicate

Phone_Number_Click_GA4

Phone click, superseded by call tracking

Redundant

refer_a_friend_visit

Pageview on a referral page

Not a lead

webchat_conversation_started

Chat widget open

Not a lead

Four of the twelve were marked primary. Every one of those had been contributing to the column and to the bid strategy's learning.

This is what happens over nine years and several agencies. Every migration adds actions; nobody removes the old ones because nobody is sure what depends on them. The column becomes an archaeology.

The fix, in order

Do these one at a time. Each change moves the number smart bidding is learning from, and moving several at once makes it impossible to tell which one did what.

Step

Action

Effect on the column

1

Archive anything that is clearly not a lead (chat opens, page visits, superseded events)

Drops

2

Of any pair that fires on the same event, demote one to secondary

Drops

3

Decide what funnel-stage uploads are for: bidding signal or observation. If observation, demote to secondary

Drops

4

Fix counting on the survivors, once per click for lead events

Drops

5

Recalculate historical CPL against the new definition before comparing before and after

n/a

6

Adjust Target CPA to the new column

n/a

Step 3 is a genuine strategic choice, not a bug. Bidding to qualified leads instead of raw leads is arguably what most businesses actually want. But it means far fewer conversions per month, and the campaign has to be able to survive that. Decide it consciously.

How to check your own account

Ten minutes, standard interface:

  1. Campaigns → Segment → Conversions → Conversion action. You now see the column split by action.

  2. Tools → Conversions. Note which actions are marked Primary.

  3. For every pair of primary actions, ask: could one person trigger both? Same form, two tags. A form and a later CRM upload. A call from the ad and a call from the website number, if the same person does both.

  4. If the answer is yes, one of them shouldn't be primary.

Pattern

Likely duplicate

Two actions with "form" or "thank you" in the name

Yes

A GA4 import and a website tag on the same page

Yes

An offline upload in a category the campaign bids on

Same person, later stage

"Calls from ads" and "Calls from website"

Sometimes, different people usually, but check

The principle

Cost per conversion is a ratio. Everyone scrutinises the numerator, spend, because it arrives as an invoice. Almost nobody scrutinises the denominator, because it arrives as a number in a column with a reassuring name.

The denominator is a sum of things someone configured, at some point, for some reason. It is only as honest as the least honest thing in it. Pull it apart before you optimise toward it.

Related services

Filed under

google-adsconversion-trackingsmart-biddingtarget-cpaga4apioffline-conversions

Keep reading

More from Insights