Magento and Adobe Commerce
Magento attribution, from the first ad click to the paid order
Server-side tracking in your storefront, the paid order handed over by webhook or the REST API, and the revenue back in Google, Meta and Microsoft Ads with its value.
- Server-side, first-party
- Multi store and multi currency
- Hosted in the EU, DPA signed
Rated by the teams who connected their stack
How the data moves
- Touchpoints and spend flowing in
- Conversions and revenue going back
- Organic search
- Organic social
- AI search
AI Attribution Engine
LeadJourneyServer-side tracking, every channel in one journey- Server-side tracking of every visit
- Multi-touch attribution per customer
- Paid orders sent back to the ad platforms
- Orders
- Customers
- Store views
The loop closes in the ad account. Every paid Magento order goes back to the platform that created the customer, so bidding optimises on revenue instead of add to carts.
Trusted by 100+ lead generation businesses, agencies and freelancers
The gap
Magento reports what you sold. GA4 and the pixels argue about who sold it.
The Magento admin is right about orders and says nothing about marketing, so the source of an order comes from GA4 and from each platform's own pixel. Those two disagree with the order list and with each other, and neither has your spend in it.
Magento tracking as most shops run it
GA4, a pixel per platform, and an export into a spreadsheet
- Magento's own reports are sales reports. There is no campaign, no channel and no cost of acquisition in them.
- GA4 counts the purchase in its own models, its own window and its own sampling, and stops agreeing with the order list within a week.
- Each ad platform's pixel claims the same order for itself, so Google, Meta and Microsoft together report more purchases than you shipped.
- The pixels run in the shopper's browser, so a declined consent banner, an ad blocker and Safari's storage limits each cost you conversions.
- A checkout spread over several domains or a hosted payment page breaks the session, and the order lands under direct.
- Attribution starts on the storefront. A click that landed on a campaign page or a blog elsewhere never joins the order.
- A repeat order is credited to whatever brought it back, so the channel that acquired a customer worth five orders is never rewarded for it.
- Nothing goes back to the ad account with the order value, so bidding optimises on carts rather than on revenue, and value based bidding runs on a flat number.
Magento with LeadJourney
One journey per customer, from the first click to the paid order
- Every storefront visit is recorded server-side and first-party at 95%+ accuracy, so a blocked pixel or a declined banner does not cost you the source.
- The anonymous first click is kept and stitched to the customer at checkout, so first click, last click, linear and position based models all become available.
- The order comes from Magento rather than from a browser event, so a hosted payment page or a checkout on another domain cannot lose it.
- Spend is pulled from Google, Meta, Microsoft and LinkedIn Ads, so ROAS and cost per order are calculated per campaign on paid order value.
- Orders carry their store view and currency, so a multi store build is read per store instead of summed into one number.
- Repeat orders are credited to the channel and campaign that acquired the customer, so lifetime value is reported per channel.
- Organic search, organic social, referral and AI search (ChatGPT, Perplexity, Gemini) are separate channels next to paid.
- The paid order goes back to Google, Meta, Microsoft and LinkedIn as an offline conversion with its value, matched on the click ID.
How it works
Magento orders in, attributed revenue back out
Both directions run on their own once the script is in the storefront and the order is being handed over. The first is what makes Magento attribution work across the whole journey. The second puts the paid order where the budget is decided.
1 Magento revenue attribution from the first click to the paid order
The journey is recording before the shopper reaches a product page.
Ad clicks, click IDs, campaign parameters and every storefront session are recorded server-side across paid, organic and AI search.
Magento hands the order over when it is placed and paid, through a Commerce webhook, the REST API or an automation step.
The order is matched to the journey that produced the customer, from the first anonymous click to the paid order.
Revenue, ROAS, cost per order and repeat order value, per channel, campaign, ad and store view.
2 The order goes back to the ad platform that earned it
So bidding optimises on paid orders instead of add to carts.
An order is placed and paid, a first time customer is created, a returning customer orders again.
LeadJourney turns it into a purchase event with the order value and currency, matched to the click ID that started the journey.
The event reaches the platforms server to server, as an offline conversion rather than a browser pixel.
Bidding learns which clicks become paying customers, so budget moves to the campaigns that sell.
The return path
Paid Magento orders, back in the ad account that earned them
An add to cart is not a result. Once the order is paid, LeadJourney sends that outcome and its value to the platform that produced the click, so bidding learns from orders rather than from carts.
Google AdsOffline conversion import
Orders matched on gclid, with the order value for value based bidding
MetaConversions API
Order paid and first order, with order value and currency
Microsoft AdsOffline conversions
Orders matched on msclkid, with the order value
LinkedIn AdsConversions API
Orders matched on li_fat_id, with the order value
You choose what counts as a conversion
Map any order event to any platform event. Order paid, first order, repeat order, or all three.
Value based bidding gets the real order value
The order total and its currency travel with the event, so tROAS strategies optimise on what was paid instead of a flat value.
Sent server to server
No pixel on the success page, so a hosted payment page, an ad blocker or a declined banner cannot remove the conversion.
Reporting
The questions the Magento admin and GA4 cannot answer together
Every one of these is a report in LeadJourney rather than a reconciliation. Magento stays the source of truth for orders, and LeadJourney supplies the journey that produced them.
Which campaign produced the orders we shipped last month, counting the first click and not only the last?
What does a new customer cost us in ad spend, per channel and per store view?
Why do Google, Meta and GA4 together claim more purchases than our order list has?
Which channel brings the customers who reorder, and which brings the ones who buy once?
How many orders started in ChatGPT, Perplexity or Gemini last quarter?
Which landing pages turn ad clicks into paid orders instead of abandoned checkouts?
LeadJourney and GA4 on Magento
Where GA4 and the pixels end and LeadJourney starts
GA4 counts sessions and purchases, the pixels count their own conversions, and the Magento admin counts orders. Three sources of truth is the problem this replaces.
| Capability | With LeadJourney | |
|---|---|---|
| Where the order's source comes from | With LeadJourneyOne journey per customer recorded server-side on your own domain, and the order read from Magento itself. | |
| One order, one count | With LeadJourneyOne attribution model across every channel, so each order is counted once and the numbers reconcile with the admin. | |
| Attribution models | With LeadJourneyFirst click, last click, linear and position based over the whole journey, on your own data, switchable in the report. | |
| Checkout on another domain or a hosted payment page | With LeadJourneyThe order arrives from Magento rather than from a browser event, so the payment page cannot lose it. | |
| Ad spend, ROAS and cost per order | With LeadJourneySpend pulled from Google, Meta, Microsoft and LinkedIn Ads, so ROAS is live per campaign on paid order value. | |
| Multi store and multi currency | With LeadJourneyRevenue and ROAS per store view and per currency, so one storefront's performance is not hidden inside another's. | |
| Repeat orders and lifetime value | With LeadJourneyRepeat orders credited to the channel and campaign that acquired the customer, so lifetime value is reported per channel. | |
| Purchase events back to the ad platforms | With LeadJourneyOne server-side purchase event per paid order with the real order value, matched on the click ID that started the journey. | |
| Organic search, social and AI search | With LeadJourneyOrganic search, organic social, referral and AI search are their own channels, with ChatGPT, Perplexity and Gemini named. | |
| Refunds and credit memos | With LeadJourneyRead alongside the order, so the revenue a campaign is credited with is the revenue you kept. | |
| Consent and GDPR | With LeadJourneyFirst-party by design and processed in the EU, with a data processing agreement. |
Keep Magento and keep GA4. Stop reconciling them by hand.
Magento stays the system of record for orders and GA4 stays your behavioural analytics. LeadJourney is the layer that joins the click, the spend and the paid order into one number your finance team recognises.
MCP server
Chat with your Magento revenue data
The same journeys, spend and paid orders are also served over MCP. Ask in Claude or ChatGPT, and the answer comes from your own numbers.
LeadJourney MCP connected, try any tab
Which campaigns produced our closed revenue last month?
Based on your LeadJourney data, 3 campaigns produced 148,200 EUR of closed revenue last month:
- Google Ads, Brand
- 38 leads, 9 closed deals, 61,400 EUR. Shortest path to signature.
- LinkedIn, Retargeting
- 21 leads, 6 closed deals, 48,900 EUR. Seven touchpoints on average.
- Meta, Lookalike DACH
- 54 leads, 5 closed deals, 37,900 EUR. Cheapest qualified lead.
Want this as a weekly summary in Slack?
Ask anything about your lead journeys
Where did our three biggest deals this quarter come from?
Your 3 largest deals this quarter all started somewhere the last click never showed you:
- 42,000 EUR
- First touch LinkedIn Ads, closed 63 days later after a webinar signup.
- 28,500 EUR
- First touch Google organic, paid click on day 11, demo on day 19.
- 21,800 EUR
- First touch a Meta video view, form filled from email six weeks on.
Want the full touchpoint list for any of them?
Ask anything about your closed deals
Which landing pages turn LinkedIn traffic into qualified leads?
3 pages take your LinkedIn traffic, and the qualified rate between them runs from 4% to 18%:
- /demo/attribution
- 18% qualified from 214 visits. Highest intent page on the site.
- /guide/server-side
- 9% qualified from 612 visits. Most journeys stall after the download.
- /pricing
- 4% qualified from 488 visits. Second most traffic, lowest intent.
Want the same breakdown for Google Ads traffic?
Ask anything about your landing pages
What did each channel cost per qualified lead last week?
3 channels spent budget last week. Cost per qualified lead ran from 41 EUR to 187 EUR:
- LinkedIn Ads
- 41 EUR per qualified lead. 2,300 EUR spent, 56 qualified.
- Google Ads
- 88 EUR per qualified lead. 4,400 EUR spent, 50 qualified.
- Meta Ads
- 187 EUR per qualified lead. 3,740 EUR spent, 20 qualified.
Want an alert the moment a channel passes 120 EUR?
Ask anything about your cost per lead
What do the journeys that close have in common?
3 signals show up in most of your closed deals and in almost none of the lost ones:
- Pricing page, 2+ visits
- In 71% of closed deals. In 12% of the ones that never closed.
- Demo within 14 days
- In 64% of closed deals. Median 9 days from the first click.
- Second contact
- In 58% of closed deals. A colleague of the lead arrives on site.
Want these three scored onto every lead in your CRM?
Ask anything about your lead journeys
Setup
Connected to Magento in about 21 minutes
One script in the storefront, one handover for the order, no re-platforming.
- 1About 5 minutes
Add the tracking script to your storefront
Add the LeadJourney script to your theme layout, or deliver it through the tag manager you already run. It records sessions, campaign parameters and click IDs across every store view.
- 2About 10 minutes
Hand the paid order over
On Adobe Commerce, a webhook on the order placed event posts it to LeadJourney. On Magento Open Source, the REST API or a Zapier, Make or n8n step reads the order and posts the same payload. Either way it is configuration rather than a module.
- 3Same day
Map order events to platform events
Choose which order events count as a conversion and which carry revenue. From then on every paid order flows back to the platform that earned it with the order value attached, and a first order can be told apart from a repeat one.
Original reviews
What our customers wrote, word for word
4.9 out of 5 across 11 public reviews. Quoted as they were left, shortened only by dropping whole sentences.
- 5 out of 5 starsGoogle
“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.”
GetreachBacklinks Marketplace (SaaS)
- 5 out of 5 starsG2
“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.”
Sascha LenzMarketing Manager
- 5 out of 5 starsTrustpilot
“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 - 5 out of 5 starsGoogle
“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
- 5 out of 5 starsG2
“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 - 5 out of 5 starsTrustpilot
“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 GmbH
Read the reviews where they were left
FAQ
What Magento merchants and agencies ask first
If yours is not here, our team answers in the chat within a few minutes.
Is there a LeadJourney extension for Magento?
Not today, and the page says so rather than implying one. Shopify is our one native shop integration. Magento connects with what the platform already gives you: the tracking script in the storefront, and the paid order handed over by a webhook on Adobe Commerce, or by the REST API or an automation step on Magento Open Source. No module to install and no core changes.
Does this work on Magento Open Source as well as Adobe Commerce?
Yes, with a different handover. Adobe Commerce has webhooks that fire on Commerce events, including the order placed event, so the order can be posted straight to LeadJourney. Magento Open Source does not have that feature, so the order is read through the REST API or handed over by a Zapier, Make or n8n step. The result in LeadJourney is the same payload either way.
What does server-side tracking change for a Magento shop?
Two things. The visit is recorded against your own domain and processed on the server, so a declined consent banner, an ad blocker or Safari's storage limits stop deciding whether the source of an order exists. And the order itself comes from Magento rather than from a pixel on the success page, so a hosted payment page or a checkout on another domain cannot lose it.
How does LeadJourney match a Magento order to an ad click?
The journey is recorded from the first anonymous visit, on the storefront and on any other page carrying the script. When the order is handed over, it is matched to that journey, and every later order from the same customer joins it. Nothing has to be stored in a custom attribute for this to work.
Does LeadJourney write anything into Magento?
No. The direction is one way: orders and credit memos come out, nothing goes in. Your catalogue, your checkout and your customer attributes are unchanged, and Transparent Logs show every record that moved and when.
We run several store views and currencies. How is that reported?
An order carries its store view and its currency, so revenue, ROAS and cost per order are read per store instead of summed. For a build serving several countries from one installation, that is usually the first report worth opening: the same campaign rarely performs the same in two markets.
Why do Google Ads, Meta and GA4 report more purchases than Magento?
Because each of them counts the conversions it believes it produced, under its own attribution window and model, and the same order can satisfy several of them at once. GA4 adds its own session logic on top. LeadJourney counts each order once, from the order itself, and then decides which touch gets the credit under the model you picked, which is why its total reconciles with the admin.
Which Magento events can I send back to Google and Meta?
Any event you map: order paid, first order, repeat order, or all of them. Each carries the order value and currency, and it reaches Google Ads as an offline conversion import matched on gclid, Meta through the Conversions API, Microsoft Ads matched on msclkid and LinkedIn through the Conversions API.
How are refunds and credit memos handled?
They are read alongside the order they belong to, so the revenue a campaign is credited with reflects what you kept. On a shop with a high return rate that difference decides which campaigns are really profitable.
Is this GDPR compliant?
LeadJourney processes and stores data in the EU, signs a data processing agreement, and tracks first-party and server-side, so consent decisions are respected rather than worked around. Card data never reaches LeadJourney: what arrives is the order total, its status and the customer record, not payment details.
95%+ accuracy, from first click to paid order
See which campaigns produce Magento orders with LeadJourney
Put the script in your storefront, hand the paid order over once, and watch every order line up against the campaign that brought the customer.


