Playbooks

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

StepCoversWhy it matters
1. The advertiser foundationAd platforms, tracking domain, scriptSyncs spend and tracks every click – nothing attributes without it.
2. Map your store's funnelCart, checkout, order, repeat, refundDecides which events you send and what your reports show.
3. Send your orders to LeadJourneyThe completed order + its valueThe headline conversion – unlocks ROAS, AOV and cost per order.
4. Add the cart & checkout signalsAddToCart, InitiateCheckoutUpper-funnel signals to optimise toward and to spot where the funnel leaks.
5. Repeat orders, refunds & valueRepeatPurchase, RefundTurns one-off ROAS into real AOV and customer LTV.
6. E-commerce reportingROAS, AOV, CPA, repeat rate, LTVThe 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 stageEvent typeHow you send itRevenue?
Visit / product view(tracking script)Automatic
Newsletter / accountLeadForm listener or server route
Add to cartAddToCartClient event or store webhook
Checkout startedInitiateCheckoutClient event or store webhook
Order completedWonClientStripe / order webhook / client event✓ order value
Repeat orderRepeatPurchaseOrder webhook
Refund / returnRefundOrder webhooknegative

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 WonClient with the amount as revenue. (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 as WonClient with the order total as revenue and 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 with revenue so campaigns are judged on the customer LTV they bring, not just the first sale. Decide how it accumulates with the WonClient mode: Keep original data, increment payout totals each customer's spend, or treat each order as its own conversion.
  • Refund / return (Refund) – send a negative revenue (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 revenue value 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 Refund with negative revenue keeps 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.

On this page