Optimising Lead Performance: Google Ads Offline Conversions & Meta CAPI for Agencies
Discover how to feed qualified leads back to Google and Meta, understanding real-world deadlines, agency workflows, and common pitfalls that degrade your signal.
by Cleverson Gouvêa

Google Ads offline conversions are the way to tell the algorithm which leads truly became customers, not just which ones filled out a form. Anyone managing budgets for ten, twenty, or forty clients knows the effect of not doing this: the cost per lead drops, the client complains, "we're only getting time-wasters," and confidence in the account erodes. This guide shows how to close this loop on Google and Meta, with a workflow that fits an agency's operations.
TL;DR
- Google and Meta optimise for the event you send. If you send "form submitted," they bring you people who fill out forms, not people who buy.
- For Google Ads offline conversions, the upload must happen within 90 days of the last click (63 days for enhanced conversions for leads), and the conversion action must exist before the click.
- From 15 June 2026, uploading offline conversions via the Google Ads API will migrate to the Data Manager API. Older integrations may have stopped working without notice.
- On Meta, the Conversions API accepts events with up to a 7-day delay, and CRM integration requires a minimum volume of 200 leads per month.
- The bottleneck is never the API. It's qualification: someone needs to say, every day, which lead was valuable. This is what takes up an account manager's time, and it's what can be systematised.
Why the algorithm prioritises the wrong leads
Google's Smart Bidding and Meta's delivery optimisation do exactly what you ask. If the only conversion configured is "lead submitted," the algorithm learns the profile of those who submit forms: people who click quickly, fill in anything, then disappear. The cost per lead plummets in the report. The cost per customer increases for your client's bottom line.
In the traffic management operations we run at Agathas Web, this pattern always appears the same way. The account manager celebrates a 30% lower CPL, and three weeks later, the client messages saying the sales team "can't cope with calling wrong numbers anymore." The algorithm didn't make a mistake. It optimised for the signal it received.
What changes when you feed back qualified leads
Feeding back qualified leads means sending a second event, after the first, stating: "this click here converted into an opportunity" or "this resulted in a sale worth £4,800." The platform then has two types of signals and can be configured to optimise for the most valuable one.
- Bidding focuses on quality: The campaign learns the profile of those who buy, not just those who click.
- Reports become accurate: The cost per qualified lead appears alongside the raw cost per lead.
- Client conversations elevate: You stop defending CPL and start discussing cost per sale.
That's why Google Ads offline conversions and Meta's Conversions API are no longer "just for large e-commerce businesses." For lead-generation businesses (e.g., clinics, schools, estate agents, B2B services), they are what separates accounts that scale from those that stagnate.
Google Ads offline conversions: how it works in 2026
The basic mechanism hasn't changed: on a click, Google generates an identifier called GCLID (Google Click ID), which goes into the destination URL when auto-tagging is enabled. Your form stores this GCLID along with the lead. When the lead converts into an opportunity or sale, you feed back to Google the GCLID + conversion name + date and time + value. Each line of this feedback is one of your Google Ads offline conversions attributed to the original click.
The rules that most trip up agencies are on the Google Ads import guidelines page:
- 90-day deadline: Conversions submitted more than 90 days after the last click are not imported. For enhanced conversions for leads, the limit is 63 days.
- Duplicate handling: The same identifier, same conversion, same date, and time count only once. Resubmitting the file for safety won't inflate the figures.
- Time to appear: According to Google, it takes about 3 hours for imported Google Ads offline conversions to appear in the account.
- Action created before the click: The Google Ads API documentation requires that the import-type conversion action already exists and is active when the click occurs. Creating the action today won't recover clicks from yesterday.
GCLID or enhanced conversions for leads?
Enhanced conversions for leads use, in addition to the GCLID, user-provided data (email and phone) hashed with SHA-256. This helps when the GCLID is lost along the way, which is common with browsers that block parameters or leads returning days later on a different device. Google recommends starting with these if you're not importing anything yet.
There's a trade-off: the window drops from 90 to 63 days, and you need to collect and process email and phone data with a lawful basis under UK GDPR. For short-cycle Google Ads offline conversions, such as clinics and short courses, the smaller window is rarely an issue.
What changed in 2026: Data Manager
The change that caught many off guard: from 15 June 2026, requests to upload offline conversions via the Google Ads API will fail for developer tokens that have never submitted this type of data, and the official path will become the Data Manager API. In the interface, the Data Manager became the entry point for configuring imports via file, Google Sheets, SFTP, or CRM connectors.
For agencies, the practical consequence is simple: file upload remains the most robust path and is less reliant on development work. This is how most small and medium-sized accounts should start using Google Ads offline conversions without needing a developer.
Meta Conversions API: the Facebook and Instagram side
On Meta, the equivalent is the Conversions API (CAPI). Instead of relying solely on the browser pixel, your server sends the event directly to Meta. This solves two problems: ad blockers and conversions that happen away from the website, such as offline sales or WhatsApp conversations.
The details that matter for your routine are in the event parameters reference:
- 7-day window: The
event_timecan be at most 7 days before the submission. If a single event in the batch exceeds this, Meta rejects the entire request. - Deduplication: If you send the same event via the pixel and CAPI, both must have the same
event_idandevent_name. Without this, the lead counts twice, and the reported CPL is half the actual figure. - Event source: The
action_sourcefield indicates where the event originated (website,chat,phone_call,system_generated, among others).
CRM integration: feeding back lead stages
For leads, Meta has a specific flow: the Conversions API integration with CRM. You send each lead stage change (qualified, meeting booked, sale), and Meta learns which leads matter. The published requirements are objective:
- at least 200 leads per month in the account;
- conversion rate for the optimised stage between 1% and 40%;
- the stage must occur within 28 days after lead generation;
- regular submission, at least once a day;
- preferably with the Meta lead ID (15 to 17 digits) stored in the CRM.
The old Offline Conversions API is treated by Meta itself as legacy. If any of your clients still use "offline event sets" from an old integration, it's worth checking if it has migrated to CAPI with datasets.
Google Ads offline conversions vs. Meta CAPI: what each requires
| Aspect | Google Ads | Meta (CAPI) |
|---|---|---|
| Main identifier | GCLID; email and phone with hash for enhanced conversions | Lead ID, fbclid/fbc, email and phone with hash |
| Submission deadline | 90 days from click (63 for enhanced conversions for leads) | 7 days from event in event_time |
| Simplest way to start | File upload (CSV or Sheets) | Website server submission |
| Minimum volume for quality optimisation | No single published threshold; depends on bidding strategy | 200 leads/month for CRM integration |
| Recommended frequency | Regular, without waiting until month-end | At least daily |
| Recent change | API upload migrates to Data Manager API (15/06/2026) | Offline Conversions API treated as legacy |
The table shows the difference that most impacts daily operations: Google tolerates delays, Meta does not. If you wait until month-end to upload qualifications, you lose out on Meta entirely and risk missing the Google Ads offline conversion deadline for older clicks.
The agency routine: who qualifies, when to upload, what value to send
Setting up Google Ads offline conversions can be done in an afternoon. What creates work is the ongoing routine, because it depends on three people who often don't communicate effectively: the traffic manager, the client's sales team, and the person who manages the website.
A proven step-by-step guide
- Capture the identifier with the lead. The form needs to record GCLID,
fbclid, UTM, and entry page. Leads without an identifier cannot be fed back to the algorithm. - Define what "qualified" means with the client, in writing. "Responded on WhatsApp and has a budget" is a criterion. "Seemed interested" is not.
- Create conversion actions before touching campaigns. On Google, an import action for "qualified lead" and another for "sale." Remember: it must exist before the click, or Google Ads offline conversions for that period will be lost.
- Set a fixed schedule. Daily for Meta. For Google, twice a week is sufficient for most lead-gen accounts.
- Send value when available. A sale of £4,800 and a sale of £600 shouldn't carry the same weight in bidding.
- Only change the optimisation goal after accumulating sufficient signal. Changing the campaign objective on the first day of new data unnecessarily throws the account into a learning phase.
Where the routine breaks down
It breaks down at step 2, and not due to Google Ads offline conversions themselves. The client's sales team doesn't update statuses, the shared spreadsheet becomes outdated, and the account manager spends Friday chasing, "Did that lead from the 12th close?" Multiply that by twenty clients, and you have a full day of the week spent on manual data mining, which no one pays for.
This is the same problem we discussed in our guide to marketing agency management systems: when spend, leads, and sales live in separate tools, no one can reconcile the figures. Here, the cost is even higher, because the missing data is precisely what would teach the algorithm.
When NOT to implement (yet)
Google Ads offline conversions and CAPI are not mandatory for every account. There are scenarios where setting up the flow now costs more than it returns:
- Very low volume. An account with ten leads per month doesn't have enough signal for the algorithm to learn funnel stages. Use the import to measure, not to optimise.
- Qualification that no one will maintain. If the client won't mark statuses, you'll train the algorithm with incomplete data, which is worse than not training it at all.
- Sales cycle longer than the window. A sale that closes in six months won't fit Google's 90-day window. Feed back an intermediate stage (e.g., meeting held, proposal sent) that occurs within the deadline.
- Account in crisis. If the campaign is out of budget or paused, resolve that first. We've already written about how to prevent this in our post on Meta Ads and Google Ads balance alerts.
Pitfalls I encountered during implementation
I implemented lead submission to the Conversions API on the Agathas Web website itself, running two Meta pixels in parallel. Some errors only appear when real data starts flowing:
The wrong IP behind Cloudflare
Our website sits behind Cloudflare. The X-Real-IP header that the server received was the Cloudflare edge IP, not the visitor's. Sending this IP to CAPI worsens event matching. The real IP only comes in the cf-connecting-ip header. If your client's website uses a CDN, check this before blaming Meta.
GCLID lost on the way to WhatsApp
Ads leading directly to WhatsApp don't go through a form, so there's nowhere to record the GCLID. Either you use an intermediate page that captures the parameter, or you accept that this lead returns to Google only via email and phone, using enhanced conversions for leads.
Other common stumbling blocks
- Time zone: Date and time without a time zone in the Google Ads offline conversions file result in a conversion on the wrong day or an import error.
- Pixel and CAPI without the same
event_id: Lead counted twice. - Poorly generated hash: Email with capital letters or leading/trailing spaces before SHA-256 won't match anything.
- UK GDPR overlooked: Feeding back hashed phone numbers is still personal data processing. It requires a lawful basis and a notice in the privacy policy.
The cost in agency hours
No one charges the client for the hours spent compiling conversion files. That's why it's worth calculating the cost before making promises.
An illustrative calculation: if each client requires 20 minutes per week for chasing status updates, compiling and uploading the Google Ads offline conversions CSV, a portfolio of 20 clients consumes over 6 hours weekly on this alone. In a month, that's almost a full week's work for an account manager. Add the reporting time, which we've shown how to cut in our guide to paid traffic reporting for clients without spreadsheets, and it becomes clear why overwhelmed account managers can't take on more clients.
The solution isn't to cut the routine, because it's what retains the client. It's to eliminate the manual labour from it: leads arrive with their source stamped, qualification happens within the workflow, and the file is ready to go. It's precisely this design that led us to build YESHUA, the ERP for agencies.
How Agathas Web addresses this
YESHUA was born from Agathas' own operations: client ad accounts, leads, billing, and invoices. For leads and conversions, it closes the spend → lead → qualification → feedback to the algorithm chain as follows:
What's included
- Leads with stamped origin: Each lead arrives with network, campaign, and entry point. Client website forms come via a WordPress plugin, and WhatsApp leads from ads arrive via Voyia or the Evolution API.
- Automated WhatsApp qualification: Unanswered conversations automatically become invalid leads. The account manager no longer manually flags junk leads.
- The client registers the sale themselves: On the client portal, whoever closed the deal with each lead marks the sale. The status you used to chase on Friday now arrives without prompting.
- Website leads sent to Meta's Conversions API, so the Facebook and Instagram side also learns from incoming leads.
- Offline conversions file for qualified leads, ready for Google Ads upload. You download and import, instead of compiling CSV line by line.
- Alerts when a client stops receiving leads, in addition to new lead notifications via push, email, and team WhatsApp.
How your Monday routine changes
In practice, the account manager's Monday changes like this: instead of opening twenty spreadsheets, they open the dashboard, see the week's leads already filtered (invalid ones automatically removed), check the sales clients have registered in the portal, download the Google Ads offline conversions file for each client, and upload it to the corresponding account. What used to take a morning becomes a short task. This reclaimed time allows the same account manager to serve more clients without compromising quality.
And as the client sees their own leads, investment, and ROI in the portal, renewal conversations shift from CPL to sales. Clients who see results stay longer.
How to get started
YESHUA doesn't have a fixed price list: the cost depends on how many clients the agency serves, how many ad accounts will be connected, and which modules are relevant. You fill out the analysis request on the YESHUA page, we schedule a meeting, demonstrate the system running with live data, and the proposal follows. Implementation includes the creation of users and access roles, connection of accounts via each platform's official flow (no passwords are entered into the system), and historical data import.
Conclusion: the algorithm is only as good as the signal it receives
Google Ads offline conversions and Meta's Conversions API solve the same problem: teaching the platform the difference between a lead and a customer. The technical part is documented and can be handled in an afternoon. What determines success is the qualification routine, every day and for every account in your portfolio.
If today this routine relies on spreadsheets and manual chasing, start with the basics: capture the GCLID, define the qualified lead criterion with each client, and upload your first Google Ads offline conversions file this week. When your portfolio grows to the point where this becomes a full day's work, request a YESHUA analysis and see the routine running with live data.
Related posts

Paid Media Manager Tools: Your 2026 Toolkit
Scheduler, connector, CRM, billing, and spreadsheet: what a standalone toolkit truly costs and at what client portfolio size an agency ERP pays for itself.

Price Anchoring: What Santander's 8% Regular Saver Teaches Us About Offers
Santander launched a regular saver shouting 8% — but the effective return is half that. The price anchoring lesson behind the headline and how to apply it.

David Lloyd Leisure: How Buying Aspria Reshaped European Fitness
How David Lloyd Leisure turned a loss into profit and bought Aspria — and what the strategy teaches about customer acquisition and retention.