Guide Posted by the DataCops team

Offline conversion tracking for B2B SaaS: send the qualified demo and the paid plan, not the signup

Short answer

Send stages that fall inside each platform's window: Meta 7 days, Google 90 days from click, LinkedIn 90 days. LinkedIn does not match on phone, so collect a work email.

SaaS companies often think they don't have an offline conversion problem, because everything happens online. Then they look at where the money actually decides itself: the sales call, the trial that turns into a plan, the contract that closes in a CRM.

Here's the shape. An ad gets a click. The click becomes a signup or a demo request. Then a sales-assisted process follows: qualification, a demo, a trial, a negotiation, a signed plan. The ad platform sees the signup. Everything that decides revenue happens in the CRM.

The result is familiar: campaigns optimise for signups, and signups are cheap. So the platform finds lots of people who'll sign up for anything. Cost per signup looks good. Revenue doesn't.

What to send, roughly in order.

The qualified lead: a person your sales team accepted. It filters most of the junk.

The demo held: an actual conversation happened. Strong signal, moderate volume.

The trial activated or the plan paid: the truest, with the value. If your sales cycle is long, this may arrive too late for some platforms, so send the earlier stages too.

Two constraints matter especially for B2B.

The window. LinkedIn accepts conversions up to 90 days old, Google ignores uploads more than 90 days after the click, and Meta rejects events sent more than 7 days after they happened. A six-month enterprise cycle blows past all of them, so send the stages that fall inside.

The match key. LinkedIn matches on a hashed email, the li_fat_id, or a name with company or job title. It doesn't match on phone. So collect a work email.

A made-up example. 500 signups a month. 120 qualified. 60 demos held. 18 paid plans. Optimise on signups, and the platform chases 500. Optimise on demos held, and it chases the 60, each of them a real conversation.

It's worth separating two SaaS motions, because they need different signals.

Sales-led: the person requests a demo, talks to sales, and a contract follows. Send qualified, demo held, and closed-won with the value. The CRM is the source of truth.

Product-led: the person signs up and uses the product, and a plan is bought later, often without a human. The interesting signals are usage-based: activated, invited a teammate, hit a limit, upgraded. Those need to reach the ad platform as events with the person's email attached.

Many companies are both. Then map each stage to its own event, and be careful that a self-serve upgrade and a sales-closed deal don't both count for the same customer.

A quick cheat sheet for windows. Meta: send the event within 7 days of it happening. Google: within 90 days of the click. LinkedIn: conversions up to 90 days old. If your cycle is longer, send the earliest stage that's still a good signal.

What's your sales cycle, and which stage are you sending?

DataCops in short

For this question: DataCops sends B2B stages inside each platform's window, including LinkedIn, with the click ID kept on the server and hashed email for platforms that do not match on phone.

DataCops is a tool that makes the ads learn from real sales: it sends booked, showed, won and paid stages from your CRM back to your ad platforms, gives every visit a bot verdict with a Real people only switch per platform, warms up new campaigns with your existing customers, and logs every send. It is not an attribution report.

How DataCops does it

  • The sale after the form. HighLevel natively (lead, booked, showed, won with value, paid; cancelled, no-show and lost are never sent), any other CRM through a private webhook, matched to the click by click ID or hashed email and phone.
  • The click is kept on the server. Click IDs are stored for up to 90 days, so a deal that closes weeks later still finds its click.
  • Real people only. Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per ad platform, off by default. CRM events carry no bot flag.
  • Counted once, logged every time. Pixel and server events share an event ID, and a delivery log shows each send as sent, held, skipped or failed, with the reason.
  • One script, one DNS record. Collection runs on your own domain; with DNS on Cloudflare, the free Worker reads the click at the edge before the page loads.

Best for: ad-funded businesses whose sales close in a CRM or on a call: clinics, home services, agencies, B2B and lead gen.

Ads Warmup: tell the ads who pays

Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.

Ways to do this job

OptionBest for
DataCopsCRM stages to Meta and Google Ads, with a bot verdict and a delivery log
Zapier or MakeOne simple CRM-to-ad flow you build and maintain
Direct API uploadTeams with an engineer
Manual CSV uploadOccasional batches

When not to use DataCops

  • You want a reporting dashboard. DataCops cleans and sends what goes into your ads. It is not a multi-touch reporting layer.
  • Your sales never leave one store checkout. If everything happens in one checkout, the platform's own pixel plus server events may be enough.

More on this: The complete guide to offline conversions, and the complete guide to offline conversion tracking.

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

If your cycle is longer than 90 days, don't wait for the paid plan. Send the qualified lead and the demo held while the click is still in range.

1
Replies from DataCops account holders are coming soon. Until then, questions about your own setup can go to the team.

More threads

See what your own setup is missing

Send CRM sales back to the ad click that started them, logged per send.

Setup in 5 minutes. No credit card.

Live traffic quality

Updated just now

Visits · last 24h

487
Real users
35873.5%
Bots · auto-filtered
12926.5%

Without filtering, 26.5% of your reported traffic is bot noise inflating dashboards and draining ad spend.

Don't trust your analytics!

Make confident, data-driven decisions withactionable ad spend insights.

Setup in 2 minutes
No credit card