GDPR and Ad Tracking in the EU: What Needs Consent
What GDPR and the ePrivacy rules mean for Google Ads and Meta tracking in the EU and UK: what needs consent, what Google requires, and server-side limits.
Set up offline conversion tracking in Google Ads and Meta: capture click IDs and send CRM stages back with Data Manager or the Conversions API.
Most lead generation accounts start the same way. You launch a Google or Meta campaign, add a “form submitted” conversion and start running ads. Some leads are great, most are average, and a few are junk.
The campaign optimizes and cost per lead drops. Then your sales team complains about lead quality, your close rate slips, and acquisition cost stays flat or rises while the dashboard says you’re improving.
That gap between what the ad platform counts and what sales closes is the problem offline conversion tracking solves.
When you tell Google to optimize for form submissions, it finds people who submit forms. That group is much wider than the group who become customers. It includes:
The algorithm can’t tell them apart. It counts each one as a success and looks for more people like the average form filler. The fix is to tell it what happened next.
Offline conversion tracking sends data from your CRM back to the ad platforms. When a lead becomes qualified or a closed deal, you send that event to Google or Meta along with an identifier that ties it to the original ad click.
The platforms then learn which clicks turn into customers, and bidding shifts from “find more form fillers” to “find more buyers”.
Google has reshaped its offline import options, so older guides are out of date.
Enhanced conversions for leads (recommended). Google calls it an upgraded version of offline conversion import. Your Google tag or Tag Manager captures hashed customer data, such as the email from your lead form, and when the lead converts in your CRM you import the outcome with the same hashed data (Google Ads Help, enhanced conversions for leads). Google asks you to include the GCLID with uploads whenever you can, and requires it if you don’t use a tag to collect user-provided data (Google Ads Help, upgrade guide).
Data Manager. Google Ads Data Manager is the setup screen for imports inside Google Ads. It connects sources such as HubSpot, Salesforce, Zoho CRM, Google Sheets, BigQuery and Shopify (Google, Data Manager supported sources).
Data Manager API. For custom integrations, Google moved offline conversion uploads from the Google Ads API to the Data Manager API. Since June 15, 2026, the Google Ads API blocks these uploads for developer tokens that weren’t already using them (Google Ads API docs).
Legacy paths. Google labels file uploads of click conversions and its older Salesforce import as legacy (Google Ads Help, offline conversion imports). They may still work, but don’t build new setups on them.
Since April 2026, Google Ads accepts user-provided data from the website tag, Data Manager and API connections in one combined setting, so you no longer pick a single method (Google Ads Help).
Website leads. Capture the fbclid from the landing URL (Meta’s fbc value) and store it with the lead, along with email and phone. When the lead moves to a later stage, send that event through the Conversions API with the identifiers. Meta treats its old Offline Conversions API as legacy, so use the Conversions API for new work (Meta).
Meta lead ads (Instant Forms). Use the Conversions API for CRM. Store Meta’s lead ID in your CRM and send it back with each stage. The Conversion Leads performance goal, which optimizes for leads that convert later, works only with Instant Forms (Meta, Conversions API for CRM).
For the server-side part of a Meta setup, see the Meta Conversions API setup guide.
Three things:
Send several stages, not one:
Each stage gives the algorithm a stronger signal. Most accounts bid on a middle stage, such as qualified lead, because it happens often enough for the algorithm to learn from while still filtering out junk.
Closed-won events carry the most meaning but can be rare, above all in high-ticket B2B with long sales cycles. Use them as a secondary signal or for value-based bidding. To decide what each stage is worth, read lead quality scoring and conversion values.
No click ID or email captured at submission. Without an identifier stored with the lead, you have nothing to match later. Set this up before anything else, on top of a working Google Ads conversion tracking setup.
Slow status updates. If sales marks leads as qualified only after they close, the algorithm learns from stale data. Send qualification events as soon as sales can confirm them.
Messy CRM data. If sales doesn’t update lead status, the platforms learn the wrong patterns.
No conversion values. A yes/no event helps. A value, such as €500 of expected revenue for a qualified lead, helps more, and value-based bidding needs it.
Short conversion windows. Google Ads lets you set a click-through conversion window of up to 90 days, with 30 days as the default (Google Ads Help, conversion windows). If your sales cycle runs longer than your window, conversions won’t count.
You’ll see it in a few places:
Lead quality. Sales gets more leads that fit. Discovery calls improve.
Cost per qualified lead. Cost per raw lead may stay flat or rise, while cost per useful lead falls because you stop paying for junk.
Smart Bidding. Maximize Conversions, Target CPA and value-based strategies get data that reflects revenue, so the account gets easier to steer.
Scaling. With good signal, you can add budget and expect the algorithm to spend it on the right people.
Offline conversion tracking needs marketing, sales, the CRM admin and sometimes a developer. Setup takes weeks, and it only keeps working if sales keeps the CRM clean.
For an agency running many accounts, that’s friction. Reporting cost per lead is easier, and the client may not know better measurement exists.
Audit your conversion actions. If your primary conversion is a form submission, you’ve found the gap.
Map CRM stages to conversion events. List the stages a lead passes through and pick the ones worth sending back.
Pick the simplest path. If your CRM has a Data Manager connector, start there. For a custom CRM, scope a Data Manager API or server-side integration.
This is the core of how we run Google Ads for lead generation. Our tracking service builds the CRM connection, and our Google Ads management bids on the result.
It’s importing conversions that happen outside your website, such as a qualified lead or a signed contract in your CRM, and matching them to the original ad click with the GCLID or hashed customer data.
Classic offline import matches on the GCLID only. Enhanced conversions for leads also matches on hashed customer data such as email, so it can still attribute a conversion when the GCLID is missing. Google recommends enhanced conversions for leads.
A conversion only counts if it falls inside the conversion window of the action, which you can set up to 90 days after the click in Google Ads. Upload as soon as the stage changes so bidding learns from fresh data.
Since June 15, 2026, Google directs offline conversion uploads to the Data Manager API, and the Google Ads API blocks them for developer tokens that weren’t already sending them.
Meta treats it as legacy. Send offline and CRM events through the Conversions API instead.
We use cookies for analytics and advertising. You can opt out of the sale or sharing of your data at any time.Cookie Policy
Your browser's Global Privacy Control signal is on, so we don't share your data for advertising.