Writing · Case studies

How I connected closed deal value back to Google Ads

Google Ads was bidding on form submissions with no idea which became customers. How closed deal value from the CRM got back to the click that earned it.

A Melbourne e-commerce and services client was running Google Ads optimised for form submissions. Nothing in the account separated a lead that produced revenue from one that went nowhere, so the bidding was working towards volume and calling it success.

I did this through the agency I was working for at the time, between January and March 2026.

Measurement before attribution

The interesting part of this job is not the offline conversion model. It is everything that had to be true before the model could be built.

The account was counting conversions on a thank-you page. That is the oldest pattern in paid search and it fails in the ordinary course of business: a form that submits over AJAX never navigates, a redirect gets changed by whoever rebuilt the page, and someone reaching the thank-you page directly counts as a conversion. It measures navigation and calls it intent.

So the first work was a measurement layer that watches the form rather than the page after it. I put a Tag Manager container on the form platform, verified its submission event firing in Tag Assistant rather than trusting that it did, and built the events on top of that.

Two events, not one event with a parameter. Contact form submissions and quote requests became separate GA4 key events, each with its own trigger filtered on the form name. One event distinguished by a parameter would have been fewer moving parts and it would have made every downstream report a filtering exercise. Two events are two rows in every interface that matters.

I also added a form view event, which sounds like housekeeping and is not. Without it there is no denominator: you can see submissions rise without knowing whether more people are finding the form or more of them are finishing it.

The tag I paused instead of deleting

This is the detail I would want a hiring manager to read.

Moving Google Ads onto the new form-submission conversion actions makes the old thank-you page conversion action redundant. The tidy instinct is to delete it.

I paused it. The conversion action and all of its history stayed in Google Ads, which meant the old method and the new one could be compared over the same period before the switch was made permanent. Delete it and that comparison is gone, along with any way to answer the question everyone asks afterwards: are we sure the new number means what the old number meant?

The rest of the cleanup was less delicate. Five per-number call tracking tags and a click-to-call tag came out with their triggers, along with a superseded GA4 configuration tag and three other stale tags. The container settled at 17 tags, 15 triggers and 36 variables, which is a container someone can still read.

Three tiers, and what each one is worth

With the measurement layer honest, the offline model could be built. CRM automation pushes each stage back to the ad platforms as it happens.

Offline conversion tracking: closed deal value reported back to the ad platforms Top to bottom: a website form, then a CRM box recording deal outcome and value, then Google Ads and GA4. A curved arrow labelled deal value returns from the CRM to the Google Ads and GA4 box, representing CRM automation pushing each stage’s value back to the ad platforms. Website form CRM deal outcome and value deal value Google Ads and GA4
A lead, a booking and a closed sale are three different events worth three different amounts, and only the CRM knows the third one.

A new lead goes back at a fixed proxy value. A booked consultation goes back at a higher fixed value. A closed sale goes back at its actual deal value from the CRM.

The two proxy values are the part worth explaining. They are not estimates of anything. They exist so that the platform can tell three stages apart while the real revenue data accumulates, because a bidding algorithm given one undifferentiated conversion type cannot learn that a booking is worth more than an enquiry. The third tier is the one that carries actual money, and it is the only one that does.

The scenarios that carry this went from six flat ones, one per stage per platform, to three router-based ones, one per stage fanning out to the platforms with filtering on the branch. That is a refactor rather than a redesign, and it is the shape you end up with once you have built the naive version and seen the duplication.

It went live

All of it shipped: the measurement layer, the CRM connection, and the scenarios pushing lead, booking and closed-sale values back to Google Ads and GA4. Closed deal value from the CRM reports against the click that produced it, in production.

What this does not claim

The account did not move to value-based bidding. That was the last step of the plan and it was gated on accumulating enough closed sales for the algorithm to learn from. I left in March 2026 before that threshold was reached. The tracking that makes the move possible is what shipped; the move itself is not something I can claim.

There is no performance figure here, and there should not be. Getting revenue data into a bidding platform is a capability, not a result, and the result would have arrived after the bidding strategy changed.

Worth stating too: at the start, several things sat with the client rather than with me. The booking-to-CRM sync, the API credentials, the field mapping review and the name of the closed-won stage were all outstanding, and the planning document said plainly that without them we could track a form submission and nothing about lead quality or revenue. Naming that dependency early is part of the work, because the alternative is discovering it in week six.

Get in touch

Tell me about the role and I will come back to you. If you would rather not use a form, I am on LinkedIn.

    Spam check