Google Ads can only optimise toward the outcomes it is told about. If your tracking stops at the form submission, bidding learns to find people who fill in forms.
Sending the click ID and the real job value back to Google Ads lets it optimise toward revenue instead.
This is the approach I used for a UK carpet cleaning business in Slough. I am describing the method here, and the project is still ongoing.
The problem it solved
The site launched on a standard Elementor form, which is email-first: it composes an email and sends it. If that send fails, there is no second copy. The lead is gone and nobody knows it existed.
On top of that, Google Ads had no way of seeing which clicks turned into booked jobs, so it was optimising toward form submissions.
How the fix works
- Save the lead firstEvery lead is written to a database table before any email, webhook or API call is attempted. A failing third-party service can then never break lead capture.
- Capture the click ID and campaign parametersAt submission, the Google click ID (gclid) and UTM parameters are stored with the lead, so each lead stays linked to the ad click that produced it.
- Record the outcomePipeline stage, job value and notes are logged against each lead, so the question of what the ad spend earned can be answered from the data.
- Send the value backThe real job value is pushed back to Google Ads as an offline conversion, including enhanced conversions for leads, so bidding can optimise toward booked jobs.
What I built, and what you actually need
I built the whole thing as a self-owned WordPress plugin called LeadBridge, with no paid dependencies and no third-party middleman holding the data. I did that because this client needed the form fixed as well.
You do not need my plugin to use the method. You need the four steps: store every lead safely, keep the click ID with it, log the outcome, and report the value back to Google Ads.
As Google describes it, enhanced conversions for leads adds hashed customer data, such as an email address, to the click ID so that a match can still be made when a click ID is missing. That is why the lead record should hold both.
Mr Expert is an ongoing project and the results are still building, so I am not quoting a change in cost per lead or bidding performance. This article describes how the method works and why I built it.
The full build, including the single dashboard that brings Google Ads, Search Console, Google Business Profile, the LeadBridge job and revenue data, and Microsoft Clarity into one view, is in the Mr Expert Carpet Cleaning case study.
Common questions
What is a click ID?
A unique identifier that Google Ads adds to your landing page address when someone clicks an ad. Storing it with the lead lets you tell Google Ads later which click produced which job.
Do I need to build a plugin?
No. The requirement is to store each lead with its click ID and report the outcome back to Google Ads. I wrote a plugin because this client's form was also losing leads when emails failed.
Why not just track form submissions?
A form submission shows interest. A booked job shows revenue. If only the first is reported, Google Ads has no way to learn which clicks lead to the second.
Is Google Ads optimising toward your forms or your jobs?
Book a free 15-minute audit and I will tell you one thing you can fix this week.
Book a free audit →