Your ROI Isn't in Your Ad Dashboard. It's in Your CRM.
By Rajesh Kumar, Founder, Attribi ·

If you run paid ads for lead generation and the deals close in a CRM weeks later, your ad platforms are flying blind. They see form fills, not revenue. They keep optimizing for more leads, not for the ones your sales team actually closes. The best way to measure ROI on paid leads that close in the CRM is to close that loop: send CRM outcomes (qualified and closed-won) back to your ad platforms as offline conversions, so you, and the bidding algorithms, measure against closed revenue instead of raw lead counts. Start your free trial to see the closed loop in your own account.
What measuring ROI on paid leads actually means
ROI on paid leads is the revenue those leads create after they close in your CRM, divided by the ad spend that produced them. Because deals close days or weeks after the click, accurate measurement requires sending CRM outcomes back to the ad platforms, a process called offline conversion tracking or closed-loop attribution.
But measuring ROI on paid leads is not just about assigning credit. Too many marketers stop at multi-touch attribution, a model that tells you which campaigns influenced the deal. That gives you the reporting truth, but it does not change what your ad platforms optimize for. To actually improve ROI, you need the platforms to receive the closed-revenue signal, so they bid toward real value, not just any form fill. So ROI measurement here has two parts: accurate attribution that credits every touch, and closed-loop optimization that feeds CRM outcomes back to the ad platform.
Why your ad platform's lead count is not ROI
If your only conversion signal is a lead form fill, the platform will drive more form fills. Your dashboard might show rising lead volumes, but your CRM could tell a very different story.
The broken loop
When a lead clicks an ad and fills a form, the ad platform records a conversion. Then the deal moves into your CRM and closes three, six, or twelve weeks later. The platform never learns that it closed, so it never adjusts its bidding toward the customers who actually bought something. Things get worse when buyers interact with multiple channels before they fill a form: the platform where they clicked first gets no revenue signal at all. If you are relying on platform-reported leads alone, your ad account is optimizing on fiction.
Junk leads pollute the signal
In real estate particularly, paid forms attract brokers, job seekers, and service providers, mixed in with real buyers. A raw lead count tells you nothing about revenue. When you optimize only on leads, you are effectively encouraging the platform to find more form fills, which often means more junk. This is why we wrote about how to stop optimizing real estate ads on leads. The principle holds for any lead-gen business where the sale happens inside the CRM, not on the website.
The method: close the loop

The fix is offline conversion tracking, sometimes called closed-loop attribution. It works in three steps.
Step 1. Capture the click and the lead
When a visitor lands on your form, the platform's click ID (GCLID, fbclid, li_fat_id, ttclid, msclkid) is captured along with the lead's information. The entire multi-touch journey is tracked and written into the CRM, so every lead record carries the ad source and the full path that brought them in. This step alone records 16 attribution fields inside your CRM.
Step 2. Record the outcome in your CRM
Your CRM already knows which leads qualified and which deals closed. You map pipeline stages to "qualified" and "closed-won," and those status changes become conversion events. With Salesforce, for example, the closed-won pull matches by email and phone, so the event is matched to the originating ad without requiring a click-ID match on the opportunity. That makes the loop reliable even when the deal moves through a long sales cycle.
Step 3. Push CRM outcomes back to the ad platforms
Qualified and closed-won events are uploaded as offline conversions via conversion APIs (CAPI) to every ad platform you run. Attribi pushes these signals to six platforms, Google, Meta, LinkedIn, Microsoft, TikTok, and Snapchat, so each algorithm can optimize for the leads that are actually turning into revenue. Instead of chasing random form fills, the platforms learn to find more of the prospects who look like the ones your CRM already closed.
Attribution and optimization: why you need both
Multi-touch attribution gives you the reporting picture: you know which channels and campaigns contributed to a closed deal. CAPI-fed offline conversions give the platforms the optimization fuel. Without attribution, you cannot answer "where should I spend more?" Without the closed-revenue signal, the platforms cannot adjust bids toward real value. The loop must go both ways.
Connect your CRM and start tracking closed-loop ROI free. You will see the full journey from click to closed revenue in one connected view.
What the numbers should look like
The ROI formula is simple: (Revenue from attributed closed deals ÷ Ad spend) × 100. But the input numbers are where it breaks. Your ad platform might report 500 conversions this month. When you match those to actual CRM records that reached "qualified" or "closed-won," you might find only 350 are real buyers, and the other 150 were junk leads. That gap is your Truth Gap, and it directly distorts your ROI calculations. Closing the loop replaces the platform's optimistic count with CRM-verified reality, so your ROI math reflects actual revenue.
An honest look at the tools that answer this question
There are three broad ways to solve the offline-conversion measurement problem, and they differ sharply in what they deliver.
- Native per-platform offline conversion imports. Google, Meta, LinkedIn, and others let you manually upload offline events or set up an API feed. It is free but fragmented. You must build and maintain uploads separately for each platform, and you get no cross-channel view or multi-touch attribution.
- Multi-touch attribution platforms. Tools like Dreamdata focus on mapping the buyer journey across channels and attributing pipeline to campaigns. They give you a revenue dashboard that shows which sources influenced a deal. Check their current features to see if they push the attribution signal back to every ad platform for optimization.
- Closed-loop tools. Attribi, Wicked Reports, and AnyTrack combine multi-touch attribution with offline conversion uploads across multiple ad platforms, closing the feedback loop. Attribi does this across 6 ad platforms and 7 CRMs plus Google Sheets and webhooks, with 5 attribution models (first touch, last touch, linear, position-based, and data-driven). Wicked Reports takes a similar offline-ROI position. AnyTrack calls its approach "closed-loop ROAS." If your main question is "which ads made money, and is the platform using that to optimize," this category is where you should look.
Frequently asked questions
What is the best way to measure ROI on paid leads? Close the loop: capture the click, record the CRM outcome, and push qualified and closed-won conversions back to the ad platforms so both you and the algorithms measure against closed revenue.
How do you measure ROI on leads that close in a CRM? The same three-step process: capture the click ID and multi-touch journey at lead capture, map CRM pipeline stages to conversion events, and upload those events to the ad platforms via server-side APIs.
What is closed-loop attribution? Closed-loop attribution is the combination of multi-touch attribution and offline conversion tracking: it credits every touch in the buyer journey while also feeding CRM-verified revenue signals back to the ad platforms.
Why does my ad platform report more leads than my CRM closes? Because the platform counts every form fill as a conversion, but many of those are junk leads, brokers, job seekers, service providers, that never reach a qualified stage in your CRM. The time delay between form fill and CRM closure also breaks the tracking without a dedicated offline conversion feed.
How do ad platforms use CRM data to optimize? When you send qualified and closed-won events back via conversion APIs, the platforms use those signals to adjust who they show your ads to. Instead of bidding broadly toward "people who fill forms," they learn to target people who look like the ones your CRM already closed.
The takeaway
Measuring ROI on paid leads requires more than a dashboard of form fills. You need the platforms to see the real outcomes that live in your CRM. The best way to do that is to close the loop: capture the click, record the outcome, and push CRM-verified conversions back to every platform. That is how you move from counting leads to tracking real revenue. Try Attribi free. The forever-free tier covers up to 1,000 monthly visitors, enough to close the loop on a small volume and see the Truth Gap for yourself.