Question from Reddit:
I am running Google Ads for a b2b SaaS company, and I would like some expert help with something very specific.
I have campaigns that are on maximise conversion value bidding, with multiple primary conversions with custom values.
This means, that when I have a lead form submission on the website, it gets for example a conversion value of 200$ on google ads, and as the deal commences in our CRM pipeline, it gets increasingly higher values. When we close the deal and sign a contract, the actual contract value gets fed back to google ads.
The problem is, that as the deal commences, the values do not get “replaced” by the higher one, instead they add up together.
So for example, we get a lead, who gets 4 conversion values as we close it, for 200$, 600$, 1000$ and at last 2500$ when closing.
Instead of feeding back to Google ads the 2500$, this conversion will end up having the value of 4300$, significantly higher, than the actual deal value. Does anyone know any option to solve this? I am struggling to find an answer on google.
Answer from Nabil:
The short answer is:
The reason your conversion values are adding up instead of being replaced is because you are sending multiple separate conversions with the same initial Conversion Action to Google Ads, and the bidding strategy is designed to sum them.
The critical solution is to use the Google Ads API and the Enhanced Conversions for Leads feature to send conversion adjustments or conversion uploads with an UPDATE
type, ensuring you only report the single, current, most valuable figure in your pipeline.
You must also assign a unique GCLID
to each lead and ensure your CRM is designed to track a single transaction ID or order ID that corresponds to that lead throughout the entire sales pipeline, so the API knows exactly which existing conversion value to update.
The long answer is:
That’s a classic challenge when dealing with a dynamic B2B pipeline, and you’ve accurately diagnosed the problem: Google Ads’ default behavior for a single Conversion Action is to sum all values it receives.
Since your lead gets four different conversion values ($200, $600, $1,000, $2,500) all associated with the same initial click, the system sums them to $4,300, which completely messes up your maximise conversion value bidding.
The key to fixing this is to shift your mindset from sending multiple sequential conversions to sending a single conversion that is later updated or adjusted.
To implement this robustly, you need a solution built around the Google Ads API and a server-side environment like Stape or Google Cloud Platform, using Google Tag Manager for initial data capture.
The process involves three distinct steps.
First, when the initial lead form is submitted, GTM captures the Google Click ID (gclid
) and a unique Transaction ID (which should be the Lead ID or Contact ID from your CRM), and sends the first conversion value ($200) to Google Ads using Enhanced Conversions for Leads.
Second, you configure your CRM and server environment to monitor the lead status changes in the pipeline.
Third, as the deal progresses from qualified lead to a signed contract, your server environment uses the Google Ads API to send a Conversion Upload request.
Crucially, this request must include the original Transaction ID and the gclid
from the initial lead, and it must specify the conversion value and the Update type.
For instance, when the deal hits $2,500, the API call essentially tells Google Ads, “For the transaction ID associated with this $$gclid$$, the final, definitive conversion value is $2,500.”
This instructs Google Ads to overwrite the previous conversion values, resulting in the correct $2,500 value being used for bidding, preventing the inaccurate cumulative total.
By relying on the Google Ads API to send these server-to-server updates, you maintain accurate, first-party data and provide the bidding algorithms with the precise, final conversion value.