conversion tracking5 min readBy Phloz team

Offline conversion tracking for agencies: the cross-platform rollout playbook

Offline conversion tracking across Google, Meta, and LinkedIn: the click-ID capture layer, stage mapping, upload cadence, match rates, and verification.

TL;DR

Offline conversion tracking closes the gap every lead-gen account lives with: platforms optimize toward form fills, but the business outcome happens days later in the CRM — and the two are connected only if you build the connection. The architecture is identical on every platform: capture the click identifier (GCLID, FBCLID, LinkedIn's click ID) onto the lead record at the moment of conversion, map exactly one well-defined CRM stage to the conversion you send back, upload on a steady cadence inside each platform's lookback window, and verify that imports actually land — because this is the most silently-failing tracking surface there is. The Google-specific wiring (offline conversion import, enhanced conversions for leads, the stage-mapping traps) is covered in depth in Google Ads CRM integration; this post is the cross-platform rollout: what changes on Meta and LinkedIn, the consent and match-rate realities, and the operational system that keeps uploads alive after launch month.


The pattern shows up in every lead-gen audit: the account "converts" beautifully, sales says the leads are garbage, and the platform keeps buying more garbage because garbage is what the conversion signal rewards. Smart bidding is a mirror — it optimizes toward exactly what you report back. Offline conversion tracking is how you change what it sees.

One architecture, three platforms

Capture. Everything downstream depends on the click ID landing in the CRM at lead creation: auto-tagging on, hidden form fields for gclid/fbclid/li_fat_id, CRM properties to receive them, and webhook handling for in-platform lead forms where the lead never touches the site. This is unglamorous plumbing with zero downside — wire it for every client at onboarding, per the Google integration guide's "job one." The hashed-email fallback (enhanced conversions for leads on Google, CRM events via Conversions API on Meta) survives lost click IDs and rising cookie loss — run both, not either.

Map. Send back exactly one CRM stage with a written, enforced definition — "sales-qualified," not "lead created" (teaches the platform nothing) and not a vibes-based stage (teaches it the inconsistency). The mapping decision is the highest-leverage and most-botched step; the full argument lives in the CRM integration post. Cross-platform corollary: send the same stage to every platform, or your cross-channel comparison is measuring different events under one name — the same coherence rule the multi-account pillar applies to all conversion definitions.

Upload. Daily or near-daily, inside each platform's import window, keyed on click ID or hashed email. Google's offline conversion import and Meta's CRM events via Conversions API both accept scheduled batches; LinkedIn's conversions API does the same for the B2B accounts where it matters most. One agency-side scheduler covering all clients beats per-client zapier-strings that each fail alone.

Verify. The defining property of offline tracking is that it fails silently: the CRM field stops populating after a form rebuild, the upload job loses auth, match rates sag — and the platform UI just shows slowly drifting numbers, no error anywhere. Diagnostics exist (import summaries, match-rate reports) but only for whoever looks. This is verification-shaped work in the strictest don't-trust-the-dashboard sense: a weekly recurring check — did yesterday's upload land, what share matched, is the CRM still capturing click IDs on new leads — owned by a person, attached in Phloz to the conversion nodes on the client's tracking infrastructure map with a last-verified date.

The realities that bite

Match rates are a metric, not a guarantee. Click-ID matches are near-perfect when capture works; hashed-email matching runs materially lower and varies with data hygiene (typos, personal-vs-work emails in B2B). Watch the platform-reported match rate per upload — a sag is your earliest capture-layer alarm. Below roughly half, the imported signal is too thin to bid on; fix capture before expecting results.

Lag changes what reports mean. A lead qualified eleven days after the click lands back on the click's date, restating history — the same effect that makes blind-append spend tables drift, and the reason the BigQuery export series re-fetches a trailing window. Month-end reporting on offline conversions needs a settling allowance, and clients should hear that framing once, early, per the PPC reporting system.

Consent is a prerequisite, not a footnote. CRM data flowing to ad platforms is exactly the flow privacy regulation regulates. The client's privacy policy must cover it, consent signals must ride along where required (Google's consent mode, Meta's processing options), and the agency's role is to refuse to ship the upload until the client's counsel signs off on the basis. Slower by a week; safer by a lawsuit.

Volume gates the payoff. Bidding algorithms need a steady diet — single-digit qualified leads per month won't steer anything. Thin-volume accounts still benefit from the measurement (you finally know which campaigns produce pipeline), but keep bidding on the upstream conversion until the qualified volume can carry it.

The agency rollout

Per client: wire capture at onboarding (an hour, forever valuable); confirm the qualified-stage definition in writing with sales; ship uploads to the primary platform first (usually Google — the integration guide is the walkthrough), Meta second, LinkedIn where B2B; switch bidding to the offline conversion only after four to six weeks of stable, verified imports; and put the weekly verification task on the cadence before launch, not after the first silent failure. Done across a client roster, this is also the agency's quiet differentiator: most competitors still report form fills. You're reporting pipeline — and bidding on it.