Working with Google Ads and a CRM like HubSpot looks elegant on a whiteboard and chaotic in practice.
You import leads, SQLs, opportunities, customers. You promote "Customer" to primary because revenue is what actually matters. Then Smart Bidding stalls.
Late stage CRM events trickle in weeks after the click. Volume is tiny. You start seeing "too old to be attributed" warnings.
The fix: use the earliest high intent action as your primary conversion, then update that same conversion with revenue when the deal closes. You get fast signals for bidding without giving up real business outcomes.
Why late stage conversions feel right but break bidding
Philosophically, "Customer" as the primary goal is perfect. In practice Google is trying to optimize on a handful of delayed conversions that often fall outside the 90 day window. By the time someone becomes a customer, identifiers can expire. Most leads never make it that far. Your bid strategy is flying blind.
"Customer" is your true north. It's just a terrible steering wheel.
A simple rule for primary vs secondary
Primary should be the earliest event that is both high intent and reliably attributable. For most lead gen accounts that's a form submit on a focused offer, or a lead marked qualified in your CRM within a few days. That event fires quickly and happens in decent volume.
SQL, opportunity, and customer still matter—they just move into a calibration role as secondary conversions with values attached. That lets you see which campaigns actually create pipeline and revenue. You can shift budget to the stuff that quietly prints money instead of the stuff that only fills your CRM with junk.
The power move: update the same conversion with revenue
Most teams create one conversion for "Lead" and another for "Offline Revenue." Google sees them as separate events that often fail to match up.
It's cleaner to use a single lead conversion. Fire it at form submit or qualification, then when revenue lands, update that same conversion with the sale value instead of adding a new offline one. Now Smart Bidding trains on a fast, abundant signal while your reporting still reflects real revenue per lead.
If your CRM or native integration doesn't make this easy, that's exactly the problem FormTrackr.app solves. It captures the click level identifiers on form submit and lets you push revenue back into that same conversion later.
When to actually optimize for customers
Using opportunity or customer as primary can work when you have twenty to thirty plus of those events every thirty days per bid strategy, a short enough lag so deals close inside the offline conversion window, and clean tracking so Google can tie revenue back to clicks.
If you're not there yet, keep customers as secondary. Let leads steer the bidding and let your CRM data steer your strategy.
Wrapping up
If your SQL, opportunity, or customer imports are regularly "too old to be attributed," they shouldn't be your primary conversions. Make the earliest high intent, reliably attributable event your main goal in Google Ads and feed Smart Bidding that fast signal. Then use late stage CRM data as a calibration layer, and whenever possible update the original lead conversion with revenue instead of firing disconnected offline events.
You get the revenue insight you care about. Google gets the signal volume it needs to actually perform.
If you want help wiring this up without fighting your stack all week, grab a trial of FormTrackr.app and see how it feels in your own funnel.