
Tax and accounting
54% better lead quality after using LeadJourney for marketing
Karsten Guhr
Managing Director
Read the storyOffline conversion tracking
A call, a booked meeting, a lead marked qualified, a deal closed weeks later: each one goes back as it happens.
Rated by teams whose deals close off the browser
Offline conversion tracking for teams at
What the pixel never sees, sent back
Every event carries the click ID, hashed email and phone and the deal value, so the platform can match it and bid on it.
The definition
In short
Offline conversion tracking sends the conversions that happen outside the browser (a phone call, a booked meeting, a lead marked qualified, a deal closed in the CRM) back to the ad platform that produced the click, matched on the click ID or on hashed contact data, so Google Ads, Meta, LinkedIn and Microsoft Ads optimise on customers instead of on form fills.
Store the gclid, fbclid, li_fat_id and msclkid at the first click and keep it for months, because the conversion arrives long after the cookie is gone. See UTM and click ID tracking.
The conversion is a stage change in HubSpot, Pipedrive, Close or Salesforce, not a page view, so the software has to listen to the CRM and know which stage means what.
Offline conversion import and enhanced conversions for Google Ads, the Conversions API for Meta and LinkedIn, offline conversions for Microsoft Ads, with the value and the currency on the event.
Count once against a running pixel through shared event IDs, hash every identifier before it leaves, and send nothing a consent decision rules out. The glossary entry has the background.
Why the pixel stops too early
A pixel can only report what happens in the browser. After that every platform is bidding blind: it knows who submitted, not who signed.
The result is a campaign report that rewards volume. The ad set producing your customers is often the one being cut for a high CPL.
Watch it
How closed revenue and lead quality reach Meta and Google, so the algorithm buys customers rather than cheap form fills.
Case studies
One measured result per customer, with the person, the role and the company behind it.

Tax and accounting
54% better lead quality after using LeadJourney for marketing
Karsten Guhr
Managing Director
Read the story
SEO agency
€500k MRR reached profitably, scaling an SEO agency on performance marketing
Nikita Yatsun
Managing Director
Read the story
Klickkraft GmbH
Business coaching
€10-20k in monthly Meta spend, tied to qualified leads and revenue per ad
Florian Buck
Managing Director
Read the story
LinkedIn growth agency
2x customer retention, once every LinkedIn touchpoint was tracked to revenue
Marc Richard
CEO
Read the story
![]()
Digital publishing
Which article produced the lead and the revenue, across AI and organic search
Andreas Malkow
CEO & Head of PR
Read the story
SEO and GEO agency
Proven ROI on every retainer, from organic and AI search leads through to revenue
Philipp Nessmann
Managing Director
Read the storyGetreach
Backlinks marketplace (SaaS)
How the data moves
The click ID is stored on your own tracking domain before a redirect or a cookie limit can lose it. The CRM reports the stage change, LeadJourney matches it to that click and sends it back through each platform's API.
Sends offline conversions to
LeadJourney
Outcomes back to their clicks
Read from the CRM as they happen
Listens to stage changes in
Integrations
The ad platforms and channels a touchpoint can come from, and the CRMs the outcome is read back from. Open any tile for what exactly moves between LeadJourney and that tool.
Spend, campaign structure and click IDs come in. Closed deals go back out as offline conversions.
The traffic your analytics still files under direct. No setup, the tracking script separates it.
Lead stage and deal value flow in. Every campaign sees the revenue it actually produced.
What the software does
Map qualified, call booked, opportunity and closed won once, and each stage change goes back as its own conversion the moment the CRM records it. See CRM integration.
The gclid, fbclid, li_fat_id and msclkid are captured first-party at the ad click and stored for as long as the sales cycle takes, so a deal that closes in week six still has a click to land on.
Events go server to server with the click ID, hashed email and phone from the CRM record, the value and the currency, and a shared event ID so a running pixel does not count the same lead twice.
A phone call through call tracking or a meeting booked in Calendly is matched to the click that produced it and sent back as a conversion, so the campaign that makes the phone ring stops reporting zero.
Not only the closed deal. The qualified lead and the booked call go back as events, the won deal with its amount, so bidding can weigh €54,000 against €2,000.
A log of each conversion sent: the stage, the platform, the click ID it matched and the platform's response. So a drop in conversions is a fact you can look up.
Why it works
Smart Bidding and Meta's delivery optimise on the conversion actions they receive. Told about form fills, they find people who fill forms. Told about qualified leads and closed deals with the value attached, they find buyers. Sending it from the CRM stage rather than a monthly upload keeps the lesson current.
The mechanics
Three conversion actions went back on the way: qualified on day 3, opportunity on day 12, closed won on day 31.
Google Ads and the gclid
Google matches on the gclid it appends to the landing URL. LeadJourney stores it at the click and imports the conversion with the four fields Google expects: gclid, action, time and value. Enhanced conversions cover the lead that arrived without one.
Disqualified stays unmapped on purpose: the platform learns from buyers, not from everyone who filled the form.
Meta and the Conversions API
Meta offline conversions travel through the Conversions API: the event your stage maps to, the fbclid captured at the click, hashed email and phone from the CRM, and the deal value. A shared event ID deduplicates it against a running pixel.
Sent back counts qualified leads, booked calls and closed deals. Revenue is the closed-won amount in the CRM.
What changes in the account
Once the platforms learn from closed deals, the report changes with them: cost per customer instead of cost per form fill, and the expensive CPL turns out to be the one that closes.
Live in 21 minutes
No CSV template, no Zapier chain, no engineering ticket. The click IDs are captured from the first minute and the stage map is done on a call if you want it.
Add one script on your own tracking subdomain. From that moment every ad click is recorded first-party with its gclid, fbclid, li_fat_id or msclkid, and kept.
Connect Google Ads, Meta, LinkedIn and Microsoft Ads for the conversion APIs, and your CRM for the stages. Native for HubSpot, Pipedrive, Close and Attio, a webhook for Salesforce and the rest.
Choose which CRM stages count, what each is called on each platform and which carry a value. From the next stage change on, the conversions flow back by themselves.
How it compares
| What you need | Manual CSV upload | LeadJourney | |
|---|---|---|---|
| Has a click ID to match on | Partly: Only if the form stored the gclid in the CRM | Partly: Only what the form passed through | Yes: Captured first-party at the click, kept for months |
| Sent when the stage changes | No: Whenever someone runs the upload | Partly: Per zap, per stage, breaks silently | Yes: Within minutes of the CRM update, automatically |
| Deal value and currency on the event | Partly: A column filled in by hand | Partly: If the field mapping still holds | Yes: From the CRM deal, per event |
| Deduplicated against the pixel | No: Counts twice if the pixel also fired | No: No shared event ID | Yes: Shared event IDs, counted once |
| Every platform from one stage map | No: One template per platform | Partly: One workflow per platform and stage | Yes: Google, Meta, LinkedIn, Microsoft from one map |
| Setup and upkeep | Partly: Free, and a recurring chore | Partly: Days to build, yours to maintain | Yes: 21 minutes, no developer |
What changes
When the platform optimises on qualified leads and closed deals, the price of an actual customer falls, whatever happens to the CPL.
The algorithm chases people who look like your closed customers, so the share of leads sales wants to talk to rises.
Google and Meta receive the deal amount, so a €54,000 deal and a €2,000 deal stop counting the same.
Nobody exports a CSV, nobody re-maps a zap. The stage change is the trigger and the log shows it went.
A deal that closes in week six still lands on its click, because the click ID outlived the cookie.
Campaigns that produce customers at a high CPL stop looking like losers, in the platform and in your own report.
Original reviews
4.9 out of 5 across 11 public reviews. Quoted as they were left, shortened only by dropping whole sentences.
“Before LeadJourney, we had no reliable tracking concept for our five-figure ad spend. We were manually building spreadsheet and CRM reports, inaccurate and time-consuming. Within two days, everything was set up. For the first time, I know exactly what I pay per lead and which campaigns actually bring in the best-qualified prospects.”
Florian BuckCEO, Klickkraft GmbH“With LeadJourney we are able to track all our leads and connect them with sales and attribution data to make better decisions. In the first month of using it we scaled from 0 to 100k revenue from paid ads only.”
“LeadJourney finally fixed my Marketing Analytics. It goes way beyond basic Ad Tracking Software. The Customer Journey Report saves hours of digging, and capturing everything from Offline Conversions to AI Search Tracking makes it the Best B2B Attribution Platform available.”
“Connected LeadJourney for 2 clients, setup took literally 20 minutes each. The data became more accurate, the reports actually make sense. Now clients look at the dashboard and the 'why don't the numbers match?' questions are gone.”
Alexander SamarPerformance Marketing Agency“With LeadJourney, we have finally found a tool that provides us with the data we need to scale our performance marketing campaigns. The most important KPI is no longer lead price but cost per qualified lead.”
Steffen SiesingCEO, Bilanzmanufaktur GmbH“The ability to track both online and offline conversions in one unified dashboard has given us insights we never had before. Our ROI has improved dramatically since we started integrating LeadJourney with our CRM. We're finally able to see the full customer journey, and it's been a game changer for our strategy.”
Andre WitzelFounder, Trading.de“The ability to seamlessly integrate data from multiple channels and see real-time insights has significantly improved our campaign results. We now focus on metrics that truly matter, like ROI and qualified leads.”
Nikita YatsunCEO, RLV Media GmbHRead the reviews where they were left
Common questions
What advertisers want to know before they stop uploading CSVs.
Anything that happens away from the browser and matters to the business: a lead marked qualified, a call booked, a phone call taken, a proposal accepted, an opportunity opened, a deal closed won. In LeadJourney each of those is a CRM stage or an event from a connected tool, and you choose which of them go back to which platform and which carry a value. A disqualified lead can be kept out of the signal on purpose.
Google Ads matches an imported conversion on the gclid, the click ID it appends to your landing page URL when auto-tagging is on. LeadJourney stores that gclid first-party at the click. When the mapped CRM stage changes, it imports a conversion against that gclid with the conversion action name, the conversion time, the value and the currency, server to server. Google's click-through window for imported conversions can be set up to 90 days, so the click ID has to be kept at least that long, which is why LeadJourney keeps it for months. A lead that came in without a gclid goes back through enhanced conversions for leads instead, matched on hashed email and phone from the CRM record.
Through the Conversions API. LeadJourney sends an event with the name your stage maps to (Lead, Schedule or Purchase), the event time, the fbclid captured at the click, hashed email and phone from the CRM record, and the deal value with its currency. A shared event ID means a pixel that is still running does not count the same lead twice. Meta accepts an event up to seven days after it happened, which is one reason the sync runs on the stage change and not as a monthly batch.
No. The CSV template is the manual version of the same thing: a gclid, a conversion name, a time and a value per row, exported from the CRM and uploaded to Google Ads or Microsoft Ads by hand. LeadJourney reads the stage change from HubSpot, Pipedrive, Close or Attio natively, from Salesforce and 100+ others by webhook, Zapier, Make or n8n, and sends the conversion itself. The guide to tracking offline conversions walks through both ways.
In LeadJourney the journey has no window: the deal is credited to the click that started it whatever the cycle length, and the report matches revenue to the ad. The platforms apply their own windows to what they receive (up to 90 days after the click on Google Ads, LinkedIn and Microsoft Ads, seven days on Meta's default click attribution), so a very late deal mainly improves optimisation and audience quality there rather than the platform's own conversion count. Sending the earlier stages, qualified and opportunity, is what gives the platform a signal inside its window.
Yes. A call through LeadJourney's call tracking is matched to the click that produced it, and a meeting booked in Calendly arrives as an event on the same lead. Both can be mapped to a conversion the same way a CRM stage is, so the campaign that makes the phone ring stops reporting zero conversions in the ads manager.
No. Events sent to Meta carry a shared event ID, so a conversion the pixel also saw is counted once in Events Manager. On Google Ads the imported conversions are their own conversion actions, separate from your website conversion actions, so you decide which of them count toward bidding, and the closed deal never duplicates the form submit unless you map it to the same action.
Identifiers are hashed before they leave, you control which stages and which fields are in scope, and nothing is sent that you have not mapped. Tracking is first-party and consent-aware, LeadJourney is hosted in Frankfurt, and a data processing agreement is part of every plan. The GDPR and security pages list the controls in detail.
See it on your own ad account
Book a demo and we look at your ad account and CRM live: what the pixel reports, what the CRM knows, and which stages should be going back.
The pixel stops at the form. The CRM stages are what tell the platform who actually buys.