Feed Offline Lead Status to Google Ads with Webhooks
The close happens in your CRM, days after the click, and Google Ads never finds out. This playbook webhooks every stage change back to the original click, so Smart Bidding optimizes on closed deals instead of raw leads.
Your leads don’t convert on the thank-you page. They convert on the phone, in a demo, or nine days later when a rep moves the deal to closed-won. Google Ads never hears about any of it, so Smart Bidding keeps optimizing toward the cheapest form submissions, which are rarely your best buyers.
This playbook threads the AnyTrack click ID into your CRM, then webhooks every pipeline stage change back to AnyTrack, where it’s matched to the original ad click and sent to Google Ads server-side. Your bidding learns what a closed deal looks like.
The Journey of a Tracked Conversion
Follow one lead from the ad click, through the pipeline, to a closed-won conversion sent back to Google Ads. Every stage is matched to the click that started it.
Steps marked with the AnyTrack node run automatically. No extra code, no manual tagging.
Example Scenario
You run Google Ads to a lead funnel. Leads land in your CRM, reps qualify them, and a fraction close, sometimes weeks after the click. You want each stage that matters (marketing qualified lead, closed-won) recorded as its own conversion in Google Ads, with the deal value attached, so you can bid toward pipeline instead of raw leads.
- An AnyTrack account on Personal or above (this playbook uses a Custom integration, which is a Personal-plan feature)
- A CRM or lead platform that can store a custom field and trigger webhooks, directly or through Zapier or Make
- A Google Ads account with permission to create conversion actions
- The AnyTrack Tracking Tag installed on the pages where your leads come in
Step 1: Store the Click ID on Every Lead
Add a hidden custom field to your lead forms and CRM records:
- Field name and label:
click_id,clickid, orclick - Default value:
--CLICK-ID-- - Type: text, hidden, not required
When the page loads, AnyTrack replaces the token with the visitor’s click ID, and the value rides the form submission into your CRM. That stored ID is what lets a stage change weeks later find its way back to the original ad click. Full walkthrough in Track Conversions with Zapier.
JavaScript-generated forms
If your form won’t pick up the token, map your platform’s own lead ID instead using External ID as Click ID.
Step 2: Create a Custom Conversion Source
In the AnyTrack Integration Catalog, install the Custom integration and copy your endpoint URL. It looks like this:
https://t1.anytrack.io/<account-id>/collect/<integration-slug>
The endpoint accepts conversions as query parameters or a JSON body. This is where your CRM will report stage changes.
Step 3: Webhook Each Stage Change
Wire your CRM to the endpoint, directly if it supports outbound webhooks, or through a Zapier or Make scenario triggered on pipeline stage changes. Send:
click_id: the value stored in Step 1. AnyTrack also acceptsref_idoremailas match keys, but the click ID gives the most reliable attribution. A payload with none of the three is rejected.event_name: one custom name per stage, such aslead_qualifiedorclosed_won. Names are capped at 40 characters; see Custom Conversion Names for the syntax rules.valueandcurrency: on won deals, so Google Ads learns deal size, not just deal count.transaction_id: a unique deal ID, so retried webhooks don’t double-count.- Customer traits: raw
emailandphonewhere you have them. AnyTrack hashes and normalizes them automatically, which raises Event Match Quality. Never pre-hash.
The full parameter reference is in Custom Integration Params.
One Zap, whole pipeline
In Zapier, use Branch and Conditions to route stages: one branch per stage, each sending its own event_name.
Step 4: Create Conversion Actions in Google Ads
In Google Ads, create one conversion action per stage under Tools & Settings → Measurement → Conversions, each with type Website and Manual Setup. Make closed_won a primary conversion action so it drives bidding, and keep earlier stages secondary for observation. How primary and secondary actions interact is covered in Google Ads Conversion Goals.
Step 5: Connect Google Ads and Map Your Events
Open Tracking Pixels in AnyTrack, connect Google Ads, and turn on server-side events. Click Reload Conversions and map each stage event to the conversion action you created for it. AnyTrack automatically formats and sends the customer data Enhanced Conversions requires.
Unmapped events are dropped
Map every stage you send, then verify delivery in the integration’s Event Log.
Trigger a test lead, move it through a stage in your CRM, and watch the event arrive in the integration’s Event Log. On the Google side, be patient: last-click conversions appear within about 3 hours, other attribution models take up to 15, and brand-new conversion actions can take 3 to 5 days to start displaying data.
Step 6: Launch the Campaign Stack
With closed deals flowing back as conversions, your campaigns can finally bid on revenue. Two builds put the new signal to work.
Core: Search bidding on closed deals
Your main lead engine, pointed at pipeline instead of raw leads.
- Destination: your lead funnel landing page, with Google’s auto-tagging enabled and AnyTrack’s UTM tracking template in the account-level tracking template, so every session carries both the
gclidand the campaign attribution. - Budget: hold your current search budget while the new conversion actions accumulate data (remember the 3-to-5-day lag on new actions), then shift spend toward the campaigns producing
closed_won, not the ones producing the cheapest leads. - Audience: your search keywords do the targeting; add your qualified-lead and closed-won segments as observation audiences so you can see how each keyword’s traffic moves through the pipeline.
- Event tracking: optimizes on
closed_won(your primary conversion action) with deal values attached;lead_qualifiedand the earlier stages stay secondary, feeding the reports without steering the bidding. Every click generates theLeadevents that start the next thread. - Conversion objective: the
closed_wonconversion action, type Website, set as primary. Start on Maximize Conversions; once closes flow steadily (a common practitioner threshold is around 30 conversions a month), switch to Maximize Conversion Value so bidding chases deal size, not deal count.
Expansion: Performance Max on deal value
Extends the same signal across Search, YouTube, Display, and Gmail.
- Destination: the same lead funnel, same account-level tracking template.
- Budget: 20 to 30% of your search spend once
closed_wonvolume is steady. Performance Max needs conversion history to work with; launching it signal-starved wastes the budget. - Audience: seed the audience signal with your highest-value converters, and let the campaign expand from there.
- Event tracking: driven by the same
closed_wonprimary action and its values; generates newLeadevents across every Google surface, all threaded back through the same click IDs. - Conversion objective: the
closed_wonconversion action. Performance Max uses the conversion signals AnyTrack sends as its optimization input.
The Optimization Loop
From here on, your sales team trains Google Ads without knowing it. Every stage a rep drags a deal through triggers its webhook, AnyTrack matches it to the click that started the thread and sends it on the spot, and a closed deal lands in Google’s bidding models carrying its value and Enhanced Conversions data. Each close answers the only question Smart Bidding ever asks: which searcher turns into a customer? Google takes those answers in on its own clock (about 3 hours for last-click, up to 15 for other models), and nothing along the way touches a spreadsheet upload or a batch job.
Your part is a weekly reading of what the pipeline taught it:
- Measure. Segment the Conversions column in Google Ads by conversion action, then read cost per
closed_wonand conversion value for each campaign. The AnyTrack Conversions Report is your cross-check that every stage change made the trip. - Improve. Budget belongs with the campaigns that produce closers, not the ones that produce leads. Prune keywords that stack up
Leadconversions without alead_qualifiedto show for them; those keywords buy names, not pipeline. - Expand. Once value bidding holds, launch the Performance Max build above. And if your sales cycle has a reliable mid-stage, promote it to its own webhook branch: bidding hears from your pipeline sooner than the close alone could tell it.
The bidding side of this improves with every deal your reps were going to update anyway. Your side is that weekly reading, moving budget to wherever the closing actually happens. Neither loop asks your team to work differently.
Wrapping Up
Here’s what you shipped:
- A click ID threaded from the ad click, through the form, into every CRM record.
- Pipeline stage changes flowing back as webhooks, matched to the original click, with deal values attached.
- Google Ads conversion actions per stage, fed server-side, with Enhanced Conversions data raising the match rate.
- A search and Performance Max stack bidding on closed deals, plus a weekly loop that keeps budget on the campaigns that close.
The next time someone asks which campaigns produce customers instead of leads, the Conversions column answers for you.
Explore Related Playbooks
Send GoHighLevel Phone Closes to Facebook Ads
Your deals close on the phone, days after the click, and Facebook Ads never finds out. This playbook connects your GoHighLevel funnel and pipeline to the Facebook Conversion API, so Meta optimizes toward callers who pay instead of leads who ghost.
The Advertorial + Shopify Playbook
Run Taboola traffic to an advertorial, follow every reader across domains to your Shopify checkout, and retarget the ones who mattered on Meta and Google. One Tracking Tag, zero lost signals.
Build TikTok Custom Audiences from High-Value Buyers
TikTok can find more of your best customers, but only if it knows who they are. This playbook sends full order values server-side, so you can build value-based audiences and lookalikes from the buyers who move your AOV.

