AnyTrack

PLAYBOOK

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.

Google Ads Campaign
Ad click lands on your funnel
arrow-down.svg ui
Your Form + CRM
Click ID stored on every lead
arrow-down.svg ui
logo-alt.svg ui
AnyTrack
Webhook matched, enriched, attributed
arrow-down.svg ui
Google Ads
Stage conversions sent server-side
↺ Smart Bidding optimizes on closed-won, not form submissions
Playbooks / Feed Offline Lead Status to Google Ads with Webhooks

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.

Outcomes What This Playbook Unlocks
party-data.svg features
Audience building
Qualified leads and closed deals become signals Google Ads can build audiences and bidding strategies around.
data-orchestration.svg features
Audience enrichment
Every stage change is matched to the original click and sent with the hashed customer data Enhanced Conversions requires.
roas-tracking.svg features
ROAS increase
Smart Bidding optimizes toward deal value instead of raw lead volume, so budget follows the campaigns that close.
How it works

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.

Ad Click
Google click ID (gclid) collected
Campaign in the UTM parameters
Country, device & browser context
logo-alt.svg ui
Session Started
First-party data collected
Hidden form field filled with the click ID
logo-alt.svg ui
Lead Tracked
Form submission recorded as a Lead
Click ID lands on the CRM record
Identity threading begins
Deal Closed Won
Your CRM
Rep updates the pipeline stage
Webhook returns the stored click ID
Deal value & customer email included
Sent to
logo-alt.svg ui
AnyTrack
logo-alt.svg ui
Conversion Tracked
Event data processed
Matched to session & Google click ID
closed_won recorded with its value
Customer data hashed & normalized
Sent to Google Ads
Conversion API
Conversion data + Enhanced Conversions
In Google Ads within about 3 hours
Smart Bidding learns from closers

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.

Prerequisites Before You Begin
  • 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, or click
  • 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 accepts ref_id or email as 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 as lead_qualified or closed_won. Names are capped at 40 characters; see Custom Conversion Names for the syntax rules.
  • value and currency: 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 email and phone where 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 gclid and 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_qualified and the earlier stages stay secondary, feeding the reports without steering the bidding. Every click generates the Lead events that start the next thread.
  • Conversion objective: the closed_won conversion 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_won volume 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_won primary action and its values; generates new Lead events across every Google surface, all threaded back through the same click IDs.
  • Conversion objective: the closed_won conversion 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:

  1. Measure. Segment the Conversions column in Google Ads by conversion action, then read cost per closed_won and conversion value for each campaign. The AnyTrack Conversions Report is your cross-check that every stage change made the trip.
  2. Improve. Budget belongs with the campaigns that produce closers, not the ones that produce leads. Prune keywords that stack up Lead conversions without a lead_qualified to show for them; those keywords buy names, not pipeline.
  3. 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.

Ready to Feed Your Ad Platforms Better Data?

One Tracking Tag. Every conversion signal, sent server-side to every platform you run. Set up this playbook in under an hour.

14-day free trial · No credit card required