LeadJourney for E-commerce
The complete setup for online stores on Shopify, WooCommerce or any platform – connect your ad platforms, track the path from click to add-to-cart to completed order, bring order revenue in through Stripe, a webhook or your store's order events, net out refunds, and see true ROAS, AOV, cost per order and customer LTV per campaign, ad set and ad.
You sell products online, the purchase usually completes in one session, and the number that matters is revenue per order against what you paid to win it. This is the end-to-end playbook for online stores – Shopify, WooCommerce or any platform: connect your ad platforms, track the full path from click → add to cart → completed order, bring the order value in (through Stripe, a webhook, or your store's order events), net out refunds, and let LeadJourney show you ROAS, AOV, cost per order and customer LTV down to the individual ad.
What you'll be able to see
For every channel → campaign → ad set → ad: clicks, cost, add-to-carts, checkouts, orders, revenue, AOV, ROAS and profit – so you know which campaign brings buyers who spend and come back, and which one quietly fills your store with window-shoppers who never check out.
Same principle on Shopify, WooCommerce or anything else
LeadJourney is the measurement layer – it doesn't care which store platform you run. The job is always the same: record the click on your storefront, then send the completed order with its value back to LeadJourney. Shopify and WooCommerce just give you slightly different places to do that – the principle below is identical.
The chain you're building
LeadJourney stitches together the click you paid for, the cart it filled, and the order – with its real money – that followed:
Ad click → tracked visitor → add to cart → checkout → completed order → revenue → repeat orders & LTV.
The ecommerce-friendly part: unlike SaaS or iGaming, the purchase usually happens in the same session, minutes after the click – so the click ID is often still in the browser, and the customer's email is always captured at checkout. That makes attribution more forgiving. The one catch: most stores send shoppers to a hosted checkout on a different domain (Shopify's checkout, your payment provider's page), where your script – and the click ID – can drop. The fix runs through steps 1 and 3: make sure the completed order reaches LeadJourney with its value and the customer's email, even when checkout happened off-site. If you want the concept first, read How attribution works.
What you'll set up
| Step | Covers | Why it matters |
|---|---|---|
| 1. The advertiser foundation | Ad platforms, tracking domain, script | Syncs spend and tracks every click – nothing attributes without it. |
| 2. Map your store's funnel | Cart, checkout, order, repeat, refund | Decides which events you send and what your reports show. |
| 3. Send your orders to LeadJourney | The completed order + its value | The headline conversion – unlocks ROAS, AOV and cost per order. |
| 4. Add the cart & checkout signals | AddToCart, InitiateCheckout | Upper-funnel signals to optimise toward and to spot where the funnel leaks. |
| 5. Repeat orders, refunds & value | RepeatPurchase, Refund | Turns one-off ROAS into real AOV and customer LTV. |
| 6. E-commerce reporting | ROAS, AOV, CPA, repeat rate, LTV | The numbers a store actually steers on. |
Build the advertiser foundation
Connect the ad platforms you spend on so cost syncs automatically, add a first-party tracking domain, and install the tracking script on every storefront page so each click and product view is recorded. This is the same base every workspace needs – the Advertiser playbook walks through it once, then come back here for the ecommerce-specific parts.
Advertiser playbook
The foundation: connect ad platforms, set up a tracking domain, install the script.
Install the script on your order-confirmation page too
This is the ecommerce gotcha. On WooCommerce it's your own WordPress site, so the site-wide header script already covers the order-received page. On Shopify the checkout is locked down, so add the script (and the order event) to the Order Status page under Settings → Checkout → Additional scripts. That page is where the purchase fires and where the same-session click ID is still readable. If your checkout is fully locked down, skip this and send the order server-side instead (step 3).
Map your store's funnel
Decide which stages exist in your store and name each event after what your team already says. Each
event name is just the type you send.
| Funnel stage | Event type | How you send it | Revenue? |
|---|---|---|---|
| Visit / product view | (tracking script) | Automatic | — |
| Newsletter / account | Lead | Form listener or server route | — |
| Add to cart | AddToCart | Client event or store webhook | — |
| Checkout started | InitiateCheckout | Client event or store webhook | — |
| Order completed | WonClient | Stripe / order webhook / client event | ✓ order value |
| Repeat order | RepeatPurchase | Order webhook | ✓ |
| Refund / return | Refund | Order webhook | ✓ negative |
Events & the Events Manager
Create your funnel events – there's a ready-made E-commerce set – pick modes and get the Conversion API credentials.
You don't need every stage on day one
One stage already gives a usable funnel: Order completed (WonClient) with its revenue. That
alone gets you ROAS and cost per order. Add cart, checkout, repeat and refund once orders are
flowing.
Send your orders to LeadJourney
The completed order is the conversion that matters – the moment a visitor becomes a paying customer. There are three ways to get it in; pick whichever fits your store:
Three ways to send an order – pick what fits your store
- Stripe – no code. If you bill through Stripe (e.g. WooCommerce with the Stripe gateway),
connect it and map a payment succeeded event onto
WonClientwith the amount asrevenue. (Note: Shopify Payments isn't your own Stripe account, so Shopify stores use one of the next two.) - Your store's order webhook → Conversion API – most robust. Shopify (
orders/paid) and WooCommerce (order completed) both fire a webhook when an order is paid. Forward it to LeadJourney's Conversion API asWonClientwith the order total asrevenueand the customer's email – via a tiny server route or a no-code bridge (Zapier / Make). This survives ad blockers and off-domain checkouts. - Client-side on the order-confirmation page. Read the same-session click ID and post the order from the thank-you page. Simplest to set up and good as a primary or fallback, but it only fires if the buyer lands on a page that carries your script.
Connect Stripe
Bring orders and their revenue in automatically – no code – if you bill through Stripe.
No Stripe? Send orders straight to the Conversion API from your store's webhook, or wire it with a no-code tool using a personal token – see API access & tokens and the payload reference in Events & the Events Manager.
Email is your strongest match key in ecommerce
Unlike funnels where the conversion fires days later, an order carries the customer's email
every time and arrives within minutes. So even when the click ID was lost on an off-domain
checkout, LeadJourney can still match the order back to the visitor on email. Always send the
email; send the click_id too whenever you have it, for the most precise match.
Add the cart & checkout signals
AddToCart and InitiateCheckout are upper-funnel signals. Sending them lets you do two things:
optimise your ad platforms toward high-intent shoppers while you don't yet have enough purchase
volume, and see exactly where the funnel leaks – lots of carts but few orders points at a
checkout problem; lots of clicks but few carts points at the product, price or landing page.
Connect Meta Ads
Send carts and checkouts back so platforms can optimise toward shoppers who actually buy.
Optimise toward the order, not just the click
Early on, optimise toward InitiateCheckout for volume; once you have enough purchase data, switch
to optimising toward the order (WonClient) – the headline metric is cost per order / ROAS.
Turn Send back to Ads on for the stages you want platforms to learn from. See Events & the
Events Manager.
Track repeat orders, refunds & customer value
A first order is the start, not the finish – and in ecommerce, returns are part of life. Send the stages that turn a simple ROAS count into real profitability:
Events & the Events Manager
Pick how repeat revenue accumulates and net out refunds with a negative-revenue event.
- Repeat order (
RepeatPurchase) – send each subsequent order withrevenueso campaigns are judged on the customer LTV they bring, not just the first sale. Decide how it accumulates with theWonClientmode: Keep original data, increment payout totals each customer's spend, or treat each order as its own conversion. - Refund / return (
Refund) – send a negativerevenue(or map a Stripe refund) so a campaign full of returns doesn't look profitable. With ecommerce return rates often in double digits, this is what keeps ROAS honest.
Build e-commerce reporting
With spend on one side and orders/revenue on the other, the metrics a store lives on fall out of the data. Use the Report Builder to slice cost ÷ orders (cost per order), revenue ÷ orders (AOV), revenue ÷ cost (ROAS), repeat-purchase rate and revenue per customer (LTV) per campaign, then pin the views your team watches to a Dashboard. Add any non-API spend (influencers, affiliates, email/SMS tools, marketplace fees) under Channel Costs so ROAS isn't flattering.
Report Builder
Build ROAS, AOV, cost-per-order and LTV views per campaign and save them to a dashboard.
See your results
Once orders, carts, repeats and refunds are flowing, the reports answer the questions a store team lives on:
- Traffic Channel Report – every source side by side: clicks, cost, orders, revenue, ROAS and profit. Your "where should the budget go?" view.
- Campaign Report – drill campaign → ad set → ad, then sort by orders, AOV or revenue to find what to scale and what to cut.
- Lead Overview – the real customers behind the numbers, each with its full journey from first click through cart to order and repeat purchases.
- Report Builder & Dashboards – build ROAS, AOV and LTV views and pin them where the team will see them.
Just ask
Don't want to build a report? Ask in plain English with Ask Atlas – "Which campaign had the highest ROAS after refunds last month, and what was its average order value?"
Attribution for considered purchases
An impulse buy completes in one session, so last click tells the whole story. But a considered or high-ticket purchase takes days and several visits – the shopper clicks an ad, leaves, then returns via a brand search or direct visit to buy. With last click that order lands on Direct and the ad that introduced the product looks worthless. For those journeys, switch the report's Attribution dropdown to first click so the channel that created the customer gets the credit – and make sure your attribution window covers your real consideration time. It only changes the view, never the data. See Attribution models.
Tips for clean e-commerce data
- Always send a
revenuevalue on every order. Without it you get order counts but no ROAS, AOV or LTV. - Net out refunds and returns. Ecommerce return rates are high – a
Refundwith negativerevenuekeeps ROAS honest, so a campaign full of returns doesn't read as profitable. - Cover the order-confirmation page. Off-domain checkouts are where click IDs and purchases go missing – make sure the order reaches LeadJourney either from the thank-you page or a server-side webhook.
- Always send the customer's email with the order. It's your most reliable match key in ecommerce; the click ID is the bonus, not the requirement.
- De-dupe order webhooks. Store and payment-provider webhooks retry, so set events where one fire
per order is correct (like
Refund) to Ignore duplicate postbacks to keep counts honest. - Add non-API spend. Influencers, affiliates, email/SMS and marketplace fees won't sync from an ad platform – add them under Channel Costs so blended ROAS is real.
Consent and cookie banners are yours to own
Most stores serve shoppers in markets where tracking needs consent. LeadJourney is the measurement layer – it works regardless of your setup, but it's on you to fire tracking only after the shopper has consented and to respect your cookie/consent banner. Treat the patterns here as the technical how-to, not legal advice.
Running more than one store or brand?
Invite colleagues and control exactly what each person sees with Add users to your workspace. Selling under more than one store or brand? Keep each in its own workspace via Manage multiple workspaces.
Related articles
Connect Stripe
Bring orders and their revenue in automatically – no code.
Events & the Events Manager
Create your funnel events, pick modes, get the Conversion API credentials.
Advertiser playbook
The foundation: ad platforms, tracking domain and script.
API access & tokens
Send orders from any store or tool with a personal API token (Zapier, Make).
Attribution models
First vs last click – credit the right touch across a considered purchase.
LeadJourney for SaaS
The complete setup for SaaS companies – connect your ad platforms, track every lifecycle stage from sign-up to paying customer, bring purchases and MRR in through Stripe, fold your sales-assisted pipeline in via your CRM, and see true CAC, payback, LTV and ROAS per campaign, ad set and ad.
LeadJourney for iGaming & Sports Betting
The complete setup for sportsbooks, casinos and iGaming operators – connect your ad platforms, track every step from click to registration to First-Time Deposit (FTD), then fold in the value that comes after (qualifying deposits, redeposits and Net Gaming Revenue) through your player platform or CRM, and see true CPR, CPA per FTD, NGR and player LTV per campaign, ad set and ad.