Offline Conversion Tracking Playbook
Feed qualified leads, opportunities and revenue back into Google and Meta without corrupting the optimisation signal.
Import fewer, better-defined outcomes. A clean Qualified Lead event is more useful than five overlapping CRM status events with inconsistent timestamps.
Use this resource when
1. Define the conversion hierarchy
Write the CRM stages, entry rule, owner and typical delay after the original lead. Select one optimisation event with enough volume and business meaning. Keep later stages as secondary observations until volume is stable.
- Lead: valid contact created
- Qualified Lead: ICP and need confirmed
- Opportunity: commercial process opened
- Customer: revenue confirmed
2. Preserve identifiers and consent
Capture GCLID, GBRAID and WBRAID for Google where available, plus first-party identifiers such as normalized email or phone when the platform and consent basis allow it. Store the landing timestamp, source and campaign with the CRM record.
3. Build the event contract
For each imported event define the exact event name, CRM trigger, timestamp, value, currency, order or lead ID, deduplication key and retry behaviour. This contract prevents engineering, marketing and sales from interpreting the same event differently.
4. Test with a controlled batch
Upload 10–20 records first. Validate accepted rows, match diagnostics, duplicates, timestamps and account timezone. Keep imported actions secondary until counts reconcile with the CRM.
5. Reconcile before bidding
Compare CRM events with accepted imports by day and source. Document attribution differences instead of forcing exact equality. Only move the event into bidding after the feed is stable.
6. Monitor the production feed
Create alerts for zero-event days, sudden volume shifts, stale timestamps, duplicate IDs and schema failures. Review the event definition whenever sales changes its lifecycle stages.

Practical questions
Questions that change the decision
Should I import revenue or qualified leads?
Import both when reliable, but optimise to the deepest event that still has sufficient and timely volume.
Do I still need GCLID with enhanced conversions for leads?
Google recommends continuing to include GCLIDs whenever possible because they help attribute events to specific ad clicks.
When should I switch bidding to the offline event?
After the feed is stable, definitions are trusted and event volume is sufficient for the chosen bid strategy.
What usually breaks first?
Identifier capture, inconsistent stage definitions, wrong timestamps and duplicate uploads are the most common operational failures.
Sources and platform documentation
Platform features change. These links point to the primary documentation used for the implementation details above.
