If your CRM conversions have gone silent in Google Ads since mid-June, it is not a bug on your end: Google turned off the tap. On June 15, 2026, the old offline conversion import API was shut down, and the only path left runs through Data Manager and Enhanced Conversions for Leads via server-side GTM. As a result, thousands of B2B advertisers have spent six weeks sending qualified leads that never reach their campaigns. Smart Bidding optimizes on empty data, cost per qualified lead drifts, and nobody understands why. This guide rebuilds the B2B loop from scratch, from form submission all the way to the conversion landing back in Google Ads, and shows you exactly how to reconnect it.
What changed on June 15, 2026
Until that date, most B2B setups reported offline conversions with a file import or the old Click Conversions API. You exported your won leads from the CRM, joined the GCLID stored at form time, and pushed the whole thing into Google Ads. That path is now closed. Google moved imports to the Data Manager API and is actively pushing Enhanced Conversions for Leads as the default method.
In practice, if your pipeline relied on the old route, your conversions stopped dead with no visible error at the campaign level. That is the trap: nothing breaks on screen, tags keep firing, but the data no longer lands. To check whether you are affected, open Google Ads, go to Goals then Conversions, and look at the last recorded conversion for your offline or import actions. If the last conversion date is frozen around June 14 or 15, you have your answer.
Web EC and Enhanced Conversions for Leads: two distinct products
This is the number one source of confusion, and it catches even experts. There are two mechanisms that share almost the same name but do not do the same job. I already covered the first one in detail in the guide on server-side enhanced conversions (web). This one covers the second, which targets B2B leads and the CRM cycle.
The table below settles the difference for good.
| Criterion | Enhanced Conversions (web) | Enhanced Conversions for Leads |
|---|---|---|
| Trigger | Purchase or conversion on the site | Qualified lead later in the CRM |
| Data sent | Hashed email or phone at web conversion time | Hashed lead email, replayed when it becomes qualified |
| Flow | Browser or server to Google Ads in real time | CRM to webhook to sGTM to Google Ads, delayed |
| Role of GCLID | Optional, email is often enough | Central, it ties the original click to the lead |
| Typical use case | E-commerce, immediate conversions | B2B, quotes, bookings, long cycles |
Keep the key nuance in mind: web EC enriches a conversion that happens now on the site, while EC for Leads reports a conversion that happens later, when a sales rep marks the lead as won in the CRM. The two can coexist, but they answer different moments in the journey.
The full B2B cycle architecture
Here is the path a for-Leads conversion follows, from the first click to Google Ads. Each step is a link in a chain, and a single missing link breaks the whole thing.
- The form is submitted. At submission, you capture the GCLID present in the URL or in the
_gcl_awcookie, and store it in a hidden form field. - The lead enters the CRM. The GCLID, the email, and the click timestamp travel with the lead. This is the most critical moment: if the GCLID does not reach the database here, everything downstream is lost.
- The lead becomes qualified. A sales rep or a scoring rule moves the lead to a won status. This business event is what triggers the conversion, not the initial submission.
- The CRM fires a webhook. The move to won status triggers an outbound call that sends the email, the GCLID, and the conversion timestamp to your server-side container.
- sGTM receives and transforms. The container hashes the email into SHA-256, formats the payload, and calls the Google Ads conversion API. This piece assumes a working container: if that is not your case, start with the server-side GTM guide.
- Google Ads attributes. The conversion lands on the right campaign thanks to the GCLID, and Smart Bidding re-optimizes on real quality data.
The central connection point of this architecture is Data Manager, which now replaces the old imports. If you have never set it up, the complete Google Ads Data Manager guide walks through the connector setup.
Step-by-step implementation
Start by capturing the GCLID cleanly. On form submission, read the gclid parameter from the landing URL, or failing that the _gcl_aw cookie, and inject its value into a hidden field sent to the CRM. Without this step, no conversion can ever be tied to a campaign.
On the CRM side, add three persistent fields to the lead record: the GCLID, the email, and the conversion_time, meaning the timestamp of the moment the lead becomes qualified. That last one is not the click time nor the form time, it is the moment of qualification itself. Google needs it to place the conversion at the right spot in the attribution window.
Next, configure the webhook. On the status change to won, your CRM should post JSON to your sGTM container endpoint, with at minimum the email, the GCLID, and the conversion_time. Inside the container, a custom client or a dedicated endpoint receives that payload, then a tag takes over.
The hashing happens in the server-side tag. Normalize the email before hashing: lowercase everything, strip leading and trailing whitespace, and for Gmail addresses remove the dots from the local part. Only then apply SHA-256. An email hashed without normalization will not match, and you will lose the conversion silently. Finally, set the GCLID and the conversion_time in the payload sent to the API, then name the conversion action that will receive these leads in Google Ads.
Do not forget deduplication. If the same lead can be pushed more than once, for example because of a replayed webhook, use a stable transaction or order ID so Google does not count the same conversion twice. It is the same robustness logic described for the CRM loop in the guide on the GA4 Measurement Protocol, even though the two mechanisms feed different systems.
Pitfalls and troubleshooting
The number one pitfall in B2B cycles is the expired GCLID. A GCLID stays valid for 90 days for conversion import. Yet a B2B sales cycle often runs well past six months between the first click and the signature. So by the time the lead is finally won, the GCLID has expired and the conversion is rejected. The fix has two parts. First, send the conversion as soon as the lead clears an intermediate step still inside the window, for example a confirmed meeting or an accepted quote, rather than waiting for the final signature. Second, lean on hashed first-party data matching: when the hashed email is present, Google can reconcile the conversion even if the GCLID has expired, which is exactly the promise of Enhanced Conversions for Leads.
Missing fields are the other major source of failure. An empty email, a GCLID never captured at the source, a missing conversion_time, and the conversion goes out with no way to be attributed. Log the payload received by the container systematically to catch null fields before they pollute your stats.
Watch the attribution delay too. A for-Leads conversion sometimes lands several weeks after the click, so never judge a campaign on same-day data alone. Reports take time to fill, and a low number today does not mean an ineffective campaign. This lag compounds with the recent GA4 attribution changes, which I detail in the article on GA4 attribution changes in 2026.
Expected results and measurement
Google reports a median lift of 10% in conversions with Enhanced Conversions for Leads, and on clean B2B accounts that is a credible order of magnitude. The real value is not just volume: it is the quality of the signal sent to Smart Bidding. By reporting leads that were actually won, not just forms submitted, you train the bidding on true commercial value and stop paying for leads that never convert.
To measure the delta, do not trust your gut. Record the offline conversion volume for the four weeks before the switch, turn on the new architecture, then compare over an equivalent window once things stabilize, accounting for the attribution delay. The right B2B metric is not raw conversion count but cost per qualified lead and the share of won leads reported back. If both of those improve, the loop is closed.
In short: first check whether your conversions stopped on June 15, capture the GCLID at the source, add the qualification conversion_time, send the conversion while the GCLID is still valid, and lean on the hashed email for long cycles. Do these five things and your B2B leads start talking to Google Ads again.