Products
Offline conversion tracking
Most sales do not finish on the website. They close later, in your CRM, over the phone, or in the clinic. Offline conversion tracking sends those sales back to Meta, Google Ads and TikTok, matched to the ad click that started them, so the platform learns from the deals that actually closed, not just the forms that were filled.
What offline conversions are
An offline conversion is a sale or a qualified lead that happens away from the website: a deal your sales team closes in the CRM, a booking taken by phone, an order paid in store, a subscription that becomes revenue weeks after the click. The person clicked your ad, but the money arrives later and somewhere else. Offline conversion tracking is how that later event gets reported back to the ad platform and tied to the ad that caused it.Why they matter
Ad platforms optimise on the conversions you send them. If you only send the form fill or the add-to-cart, the platform learns to find people who fill forms, not people who buy. When you send the real outcome, the closed deal or the paid order, the platform learns to find people who become revenue.
- Meta and Google bid toward your actual buyers, not your window shoppers.
- A lead worth $50 and a lead worth $12,000 stop looking the same to the algorithm.
- You can prove which campaigns produced revenue, not just clicks and leads.
The problem: by the time the sale closes, the click is gone
An offline sale is hard to report for two reasons.
- The click ID is lost. When a deal closes in your CRM a week later, nobody has the original ad click. Without it, an upload to Meta or Google matches poorly or not at all, and the conversion is credited to nothing.
- The manual paths are fragile. Exporting a CSV by hand, or wiring a raw Zapier upload, breaks quietly, sends unmatched rows, and has no view of what actually landed. Most teams either skip offline conversions or ship a version that barely matches.
How DataCops solves it
If DataCops saw the visitor when they clicked the ad, it already has their ad click stored first-party. So when the sale closes later, you send DataCops the outcome, matched by email or phone, and DataCops reattaches the original click when it can find it, then delivers the conversion server-side to each platform you connected. When no click is found, the conversion still goes out matched on hashed email or phone.Connect each ad account once. Point your CRM, store, or a simple upload at DataCops. From then on, a sale that closes offline is sent as one clean conversion to every platform you connected.
Where the sale can come from
DataCops takes the offline conversion from wherever the sale is recorded:
| Source | When it sends |
|---|---|
| Shopify | Through the DataCops Shopify app, when an order is paid |
| Any tool, by the sales webhook | Funnelish, your CRM, your own app, Zapier, Make, n8n or your CRM workflow posts each sale to one private URL. Funnelish needs no mapping. See the sales webhook guide |
| Zapier or the conversions API | Send a row when a sale happens. Each row has an ID, so a resend is not counted twice |
| A CSV upload (Ads Warmup) | A spreadsheet of people with an email or phone. You preview it, pick the event and platforms, then send |
| Stripe and Paddle | Coming soon. You can save the connection today, but it does not send sales yet |
Whichever source you use, the conversion follows the same clean path before it is delivered.
Supported platforms
One offline sale is sent to every platform you connect, each in its own format with the match key it needs:
| Platform | Matched with | Sent as |
|---|---|---|
| Meta (Facebook and Instagram) | fbclid, or hashed email and phone | Offline and CRM conversions via the Conversions API |
| Google Ads | gclid, gbraid, wbraid, or hashed email and phone | Click conversion upload through the Google Ads API |
| TikTok | ttclid, or hashed email and phone | Events through the Events API |
| li_fat_id, or hashed email | Offline conversions via the Conversions API |
Matched to the original click
This is the part a manual upload cannot do. When the offline sale comes in, DataCops looks up the person by their hashed email or phone. If that person clicked one of your ads and DataCops recorded it, the original ad click, its first-party and edge-captured value, is attached to the conversion.
So an offline conversion that a plain upload would have sent with just an email can go out with the ad click as well. That gives the platform a better chance to connect the sale to the campaign that caused it. The longer-lived durable identity is being switched on site by site.
Clean before it sends
An offline conversion runs through the same delivery gates as an on-site one, so what you send is real:
- Deduplicated, so the same deal is not counted twice when your CRM or tool sends it again with the same ID.
- Consent-checked where required, so you only send what you are allowed to. See the consent manager.
- Bot and fraud filtered, so a fake lead never becomes an offline conversion. See bot and fraud detection.
- Sent with the real value and currency, so a $12,000 deal is reported as a $12,000 deal.
See what was sent, and why
Every offline conversion is logged, one record per platform: sent, skipped, or failed, with the platform's own reason and which detail it matched on. You can see, per sale and per platform, what delivered and why. One gap: Google Ads can reject single rows inside an accepted upload, and DataCops does not read those row-level errors yet.
For agencies
If you manage many clients, offline conversions work the same across every client account under one agency login. Connect each client's CRM or store once, and their offline sales go to their own ad accounts, logged per client. See DataCops for agencies.