Notes

Google Ads Offline Conversion Tracking: How to Tell Google Which Clicks Became Customers

Offline conversion tracking lets you report outcomes that happen away from your website, such as an attended consultation, a signed contract or a paid invoice, back to Google Ads, matched to the original ad click by its click ID. Bidding then optimizes toward customers you can verify in your CRM and stops chasing form fills.

Key takeaways

Contents

  1. What is offline conversion tracking in Google Ads?
  2. Why the platform's numbers look better than your bank account
  3. What gets sent back, and what does not
  4. How to build it, in order
  5. CSV, API or Data Manager
  6. The failure modes nobody warns you about
  7. The volume problem
  8. Healthcare: what changes
  9. What it costs, by route
  10. Build it in-house, through the agency, or with a consultant
  11. What to check in your own account this week
  12. What this changes, and the uncomfortable middle
  13. Stop paying for form fills
Google Ads Offline Conversion Tracking: How to Tell Google Which Clicks Became Customers

Almost every owner has had this conversation. The dashboard says 84 conversions last month. The front desk says the schedule was not noticeably fuller. Both are telling the truth.

A conversion in Google Ads means whatever you told it to mean, and by default that is a form submission or a tap on a phone number. Neither is a customer. In any business with a sales process, elective healthcare, legal intake, B2B, home services quotes, the distance between "submitted a form" and "became revenue" is where most ad spend dies.

Offline conversion import loop from click to bidding
Form fills drop to secondary. Bidding learns from what your CRM can prove.

What is offline conversion tracking in Google Ads?

Offline conversion tracking is a Google Ads feature that imports outcomes recorded in your own systems and matches each one to the ad click that started it. The match is made with the Google click ID stored on the lead record, or with hashed contact details through enhanced conversions for leads. Google describes the feature under about offline conversion imports.

It is different from the tag on your thank-you page. That tag reports what happened in the browser. An import reports what happened in your business. If browser tracking is what you need to fix first, that is a separate guide: Google Ads conversion tracking, setup and troubleshooting.

Why the platform's numbers look better than your bank account

Between the enquiry and the revenue there are usually five steps. The enquiry has to be answered, qualified, turned into a booked consultation, attended, and converted into treatment or a signed deal. Each one leaks.

This matters more than it sounds, because Google's bidding is active. Smart Bidding searches for more of whatever you defined as success. Define success as a form fill and it finds the audiences most likely to fill in forms: price shoppers, students writing papers, people three states away, competitors. It is optimizing perfectly, toward the wrong thing. I go deeper into that loop in Smart Bidding on an incomplete signal and into the reporting gap in why Google Ads conversions do not match the CRM.

What gets sent back, and what does not

FieldWhat it is
Click IDThe string Google added to the URL at the click. See what a GCLID is
Conversion nameA label you chose, such as "Stage 2" or "Consultation attended"
TimeWhen the outcome happened
Value (optional)What the outcome is worth to you, or a flat weight

No names. No phone numbers. No email addresses. Nothing from a medical record.

One correction to a line you will read elsewhere, including in older versions of this page. The click ID is a pseudonymous string to you, but Google issued it and can connect it to the click and often to a signed-in user. So the import is a small disclosure and not a zero disclosure. For regulated businesses that changes how you name conversions, which I cover below and in full in click-ID-only conversion feeds.

How to build it, in order

1. Capture the click ID

When someone arrives from an ad, Google appends the ID to the landing page URL. It has to be caught at that moment and stored on the lead record when the form is submitted or the call is logged. A hidden field plus a small script does it. This is the most important step, and the one where accounts silently break: a form embedded from a third-party booking tool often drops the parameter, a redirect loses it, a phone call without call tracking never had one.

2. Choose the outcome that matters

Not the enquiry. Pick the first point where the person has shown real commitment and where your data is reliable. For most practices that is consultation attended, not consultation booked. No-shows are a large share of bookings, and counting them teaches bidding to find more people who book and vanish.

3. Assign values that mean something

A consultation for a full-arch reconstruction and one for a single filling should not carry the same value. Differentiated values move bidding from volume toward money. If real prices would reveal the procedure, use weights such as 1, 5 and 20.

4. Send it back on a schedule

Daily for any account with meaningful spend. Bidding weights recent data, and weekly batches slow learning. For a very small account a weekly manual upload is acceptable for a while. Manual uploads tend to be forgotten in the second month, and a gap in the data is worse than no data because it teaches something false. Google's upload instructions are under upload offline conversions.

5. Wait before you change bidding

Create the new conversion action as secondary and let roughly 30 days of clean imports accumulate. Pointing a campaign at a conversion action with no history is how accounts stall for six weeks. Then make the imported stage primary and demote form fills to secondary.

6. Check which pipe you are using

Through 2026 Google has been consolidating offline imports and enhanced conversions for leads into Data Manager, with older API routes closing behind it. The logic does not change: an ID, an outcome, a time, a value. The route does, and setups built two or three years ago are the ones that break without anyone noticing.

CSV, API or Data Manager

Comparison of offline conversion import methods
Whichever pipe you choose, reconcile it against a file you can read.
MethodReliabilityLatencyAudit trailVerdict
Scheduled CSV uploadHigh. You see every rowDailyFullSource of truth
API or Data Manager connectionMedium. Silent failures happenNear real timePartialUse with periodic CSV reconciliation
Automation middlewareDepends on the buildMinutesOnly if you log every sendSmall accounts, or with a written log

My standing position: run a scheduled CSV import as the source of truth, or an API connection with periodic CSV reconciliation. Never an API alone on a revenue-critical account. Webhooks fail, statuses flip back and forth, deduplication breaks between objects, and none of it raises an alarm.

If your CRM is Salesforce, the exact build is in GCLID to Salesforce offline conversion import. The phone half of the problem is in call tracking and the CRM.

GA4 can also receive offline events through the Measurement Protocol, which is useful for reporting. It does not feed Google Ads bidding the way a direct import does. If the goal is smarter bidding, import to Google Ads directly and keep GA4 for analysis.

The failure modes nobody warns you about

CauseWhat actually happensHidden costWhat you see in reportsRisk level
Lost click IDs: multi-step forms, call-only paths, CRM mergesOutcomes cannot be matchedBidding learns from a biased sampleCoverage below about 80% of paid leadsHigh
API pipeline drops events silentlySome outcomes never arriveUnder-reported results, wrong budget decisionsImport totals drift below CRM totalsHigh
Outcome arrives after 90 daysGoogle rejects the click as too oldLong cycles lose their final stage"Click too old" in diagnosticsMedium
Timezone or timestamp format errorsA share of rows failPartial data looks like complete dataRow errors in the upload reportMedium
Status flips back and forth in the CRMThe same outcome is sent twice, or retractedInflated or unstable numbersDuplicates, or adjustments nobody plannedMedium
Imported action made primary on day oneBidding has no history to work fromWeeks of stalled deliverySpend drops sharply after the switchHigh
Too few outcomes per monthThe algorithm cannot find a patternFeature abandoned as "not working"Erratic spend and cost per conversionHigh
Procedure names used as conversion namesHealth detail disclosed with every uploadA privacy problem created by the fixConversion list reads like a service menuHigh

Google documents the time limit under its import requirements. In elective healthcare, where months can pass between enquiry and treatment, that limit is a design decision and not a footnote.

The volume problem

There is a real constraint here, and any consultant who does not raise it is either inexperienced or selling you something.

Smart Bidding needs signal. If your practice converts eight patients a month, feeding the algorithm eight events a month is not enough for it to find a pattern. It will thrash, or it will stop spending. This is the most common reason offline imports are implemented and then abandoned.

The way through is to bid toward a mid-funnel event that happens often enough to teach the algorithm, such as a qualified enquiry or a booked consultation, while holding cost per verified patient as the number you judge performance by. Those are two different jobs. Treating them as one is how accounts with good tracking still end up managed badly.

Healthcare: what changes

The mechanism is identical. Three things are stricter.

Conversion names stay neutral. "Stage 2" or "Consultation attended", never a procedure or condition.

Enhanced conversions for leads, which match on hashed email or phone, are a privacy decision before they are a marketing one. Google's description is under enhanced conversions for leads. For a clinic, the click-ID route usually discloses less.

Someone with authority signs off on the payload. The import carries no name or record, but whether your configuration meets HIPAA, or PHIPA and the Health Information Act in Canada, is a question for your privacy officer or counsel and not for your marketer. I lay out the sources in the click-ID-only article linked above, and the wider setup under HIPAA-compliant conversion tracking.

What it costs, by route

Market figures were checked in September 2026 for the US and Canada. They are ranges, not quotes.

RouteTypical costTime to first verified importWhat it depends on
Manual CSV from a spreadsheetStaff time onlyDaysSomeone recording the click ID at enquiry
Developer builds capture and exportTypically a few hours of work for capture, more with booking tools and call tracking. Upwork lists tag manager specialists at $20 to $49 an hour (median $30); senior US consultants quote $85 to $175Days to weeksForms, booking tool, call tracking, CRM API
Agency adds it2026 agency price guides put one-time setup fees between $500 and $5,000, up to $10,000 for complex accounts, on top of management at 10% to 20% of ad spendDepends on their queueWhether the agency is given CRM access
I build it, fixed scope or inside managementAudit at $500 per ad account, credited toward the first month. The build is a fixed quote from the audit, or included in my $5,000 a month management retainerScoped in the audit. Bidding switches after about 30 clean daysEntry points, CRM, sign-off process
Leave itNo invoiceNeverEvery month on form-fill bidding compounds

Build it in-house, through the agency, or with a consultant

OptionCostTime to resultRiskWhen it makes sense
In-houseLowest cash costSlow unless someone owns itCapture gaps nobody testsYou have a developer and a marketer who talk to each other
Through your agencyUsually extraMediumMany agencies never see the CRM, so they cannot verifyThe agency already reports on CRM stages
ConsultantFixed projectFastDepends on one personYou want it built, documented and handed over
Do nothingNoneNoneBidding keeps learning from formsRarely. Only when volume is too low for any signal

An agency is the right choice when it already works inside your CRM. If it has never asked for CRM access, that tells you what its reports are based on.

What to check in your own account this week

What this changes, and the uncomfortable middle

Once outcomes flow back, three things happen in sequence. First, reporting stops flattering you. The real cost per patient is usually several times the reported cost per conversion, and seeing it is uncomfortable. Second, bidding shifts budget toward audiences and queries that produce attended consultations, which often looks like fewer leads at first. Third, over the following two months, cost per patient falls while lead volume stays flat or drops.

That middle phase is where most owners lose their nerve and revert. Lead count is going down, the dashboard looks worse, and the instinct is that something broke. Nothing broke. The account stopped buying leads and started buying patients.

From a live engagement: I inherited an underperforming account and rebuilt it; cost per acquisition came down by about 78% while spend grew. Same market, same services, same competitors. The account had been optimizing toward the wrong signal. The case write-up is here.

AUDIT · $500 PER AD ACCOUNT

The audit covers your ad account, the tracking and the path from enquiry to booked patient, and ends with a 90-day plan. It is credited toward the first month if you continue with me.

You work with me directly. There are no account managers and no juniors.

I build the click-ID-to-CRM loop as a fixed-scope project or as part of full account management: verified in your CRM, documented, handed over. The ongoing service is CRM-verified attribution. The audit is $500 per ad account, comes with a 90-day plan, and is credited toward the first month if you continue with me. You work with me directly. Book a call or write first.

Stop paying for form fills

Your account is optimizing toward something today. If you have never sent outcomes back, that something is the cheapest thing your campaigns can produce. Run the weekly check above. If click IDs are missing, fix capture before anything else. If they are present, choose one verified stage, send it daily, wait 30 days, and then let bidding see it. If you would like the loop built and documented by one person, start with the audit.

Written by Lev Brovtsev, independent performance marketing consultant. I do the work myself. Last updated: September 2026.

Frequently asked questions

Does offline conversion tracking work with Performance Max?

Yes. Performance Max respects imported conversions like any campaign type. It is one of the few reliable quality levers you have there, because imported outcomes steer its automation toward real customers. More in what Performance Max is and when to trust it.

What is the difference between offline conversion import and enhanced conversions for leads?

Enhanced conversions for leads match on hashed email or phone, which helps when click IDs are hard to keep. They can run together. Click-ID import is the more precise primary when capture is solid, and it discloses less.

How often should imports run?

Daily for any account with real spend. Bidding weights recent data, and weekly batches slow learning. A weekly manual upload is acceptable for a very small account while you automate.

How long after the click can I upload?

Up to 90 days. For longer cycles, send an earlier verified stage inside that window and keep the final outcome for your own reporting.

Do I need a developer?

Usually a small amount. Someone has to store the click ID on the lead record and expose the stage data. Most modern CRMs, including HubSpot and Salesforce, support the field and the export. For clinics, see what a BAA covers in a marketing CRM.

What if my CRM is a spreadsheet?

It still works and the upload is manual. What matters is that the click ID is recorded at the moment of enquiry.

Does this work with Microsoft Ads and Meta?

Yes. Microsoft has its own click ID and offline import. Meta uses the Conversions API. The principle is the same and the plumbing differs. I put the two search platforms side by side in Microsoft Ads vs Google Ads for high-ticket services.

Who does the work, and how do I verify it?

I do the work myself. You verify it in three places: the click ID field in your CRM, the upload diagnostics in Google Ads, and a monthly reconciliation of imported stages against CRM stages. If the three agree in direction, it is working.

Related

Dental PPC ConsultantDental SEO That Produces Implant Patients, Not PDFsDental Implant Marketing for 5-Figure Cases

Related notes

Sending Offline Conversions to Google Ads with n8nHubSpot to Google Ads: Sending Verified Stages Back as Offline ConversionsEnhanced Conversions for Leads: What It Sends, and When a Clinic Should Not Use It