Skip to content
Back to Overview
Revenue

Shopify revenue attribution for Meta ads

Clicks are what an ad platform can see. Orders are what your store knows. Revenue joins the two: install one script, connect Shopify's order webhook, and every paid order arrives signed from your store, matched to the visit and the campaign that produced it.

The ledger behind the campaign

Every order, and the visit that produced it.

Revenue

Shopify connected

Revenue

$24,180

Orders

186

From ads

71%

AOV

$130.00

Transactions

Last 7 days
#1187Meta · Solara UGC 03Reels → product page → checkout$142.00Verified
#1186Meta · Glass Skin staticFeed → collection → checkout$89.50Verified
#1185Organic searchBlog post → product page → checkout$64.00Verified
#1184Point of saleNever passed through the storefront$214.00No campaign

Illustrative preview with sample data. Verified orders are Shopify's own signed statement about money it processed; an order that never passed your storefront carries no visitor id and is credited to no campaign.

Setup

Two changes in Shopify, then it runs on its own

  1. 01

    Install the script once

    Add the tracker to theme.liquid before the closing head tag. It measures storefront visits and writes the visitor id into the cart — no extra code, and the attribute stays hidden from your customers at checkout.

  2. 02

    Point Shopify's webhook at Revenue

    Create an Order payment webhook in Shopify Settings using the URL shown in Revenue settings, then paste the signing secret back. Add a Refund create webhook to the same URL if you want refunds subtracted.

  3. 03

    Watch the orders land

    Shopify copies the cart attribute onto the order, so each sale arrives credited to the visit and the campaign that produced it. Retries of the same order never count twice.

Shopify's checkout will not run this script, or any other — checkout.liquid closed in August 2025 and Additional Scripts stopped running on the thank-you and order-status pages in August 2026. That is why orders come from the webhook rather than a page. Data starts only after the script is installed and the required analytics consent is granted.

The AdRiseLab workflow

From account data to your next campaign

  1. 01

    Understand performance

    Review spend, delivery and response in your connected Meta account.

  2. 02

    Decide what to do next

    Ask the AI agent to investigate a change and explain the evidence behind a proposed action.

  3. 03

    Build the next creative

    Turn a product input and test hypothesis into visual and copy concepts.

  4. 04

    Publish to Meta

    Review the campaign settings and confirm launch, then follow the results in reporting.

  5. 05

    Measure the revenue

    Connect your store and credit each order back to the visit and the campaign that produced it.

Review results and plan the next test

Verified, not browser-reported

Shopify orders are the store's own signed statement about money it processed. Website-reported orders from the tracker's purchase call are labelled unverified, so you always know where a number came from.

The visit behind the sale

Every order carries the journey that produced it — the source, the campaign, the pages in between. Attribution stops being a platform claim and becomes a record on your own side.

Meta comparison on the same screen

Your website ledger sits above Meta's own reported conversions. It is a separate measurement, shown side by side rather than merged, so a gap between the two is visible instead of averaged away.

One currency, one timezone

Currencies are never added or silently converted. Choose the same currency and timezone as your Meta ad account when you register the site and both sides of the comparison stay readable.

Honest about what it cannot credit

A point-of-sale sale, a draft order or some subscription apps never pass the storefront, so they carry no visitor id. They count as revenue and are credited to no campaign, rather than inflating one.

Works beyond Shopify

Any platform that lets you run code after a successful order can report one with the tracker's purchase call, and a payment backend can send a signed server event instead of trusting the browser.

Close the loop on orders, not clicks

Connect your store and your Meta account, and judge each campaign against the revenue your own store confirmed.

Get Started

Plans from $39/mo · Cancel any time · Review settings before confirming launch

Frequently Asked Questions

How do I connect Shopify orders to my Meta ads?
Two steps. Add the AdRiseLab script to theme.liquid before the closing head tag, which measures storefront visits and writes the visitor id into the cart. Then create an Order payment webhook in Shopify Settings pointing at the URL shown in Revenue settings. Shopify copies the cart attribute onto the order, so the sale is credited back to the visit and the ad behind it.
Do I need to add tracking code to the Shopify checkout?
No, and you cannot. Shopify closed checkout.liquid in August 2025 and Additional Scripts stopped running on the thank-you and order-status pages in August 2026, so no script can observe a Shopify order from the page. Adding a purchase call to a Shopify theme will never run. Orders come from Shopify's own webhook instead.
What is the difference between verified and unverified revenue?
Verified orders arrive signed from the store itself, like Shopify's order webhook or a signed server event from your payment backend. Unverified orders are reported by the browser through the tracker's purchase call. Both count toward revenue; the label describes where the number came from, not a setup error.
Why does revenue not match what Meta Ads Manager reports?
They measure different things. Your website ledger counts orders your store confirmed; Meta counts conversions it attributes within its own attribution window, which includes view-through. The Meta comparison sits beneath the website figure on the same screen as a separate measurement, and currencies are never silently converted, so use the same currency and timezone in both.
Can I use revenue analytics without Shopify?
Yes. Install the script on every page of your site, then call the tracker's purchase method on your order-confirmation code with the order id, total and currency. Any platform that lets you run code after a successful order works. A payment backend can also send a signed server event instead of relying on the browser.
Which orders cannot be credited to a campaign?
An order that never passed through your storefront carries no visitor id: point-of-sale sales, draft orders and some subscription apps. Those count as revenue but are credited to no campaign. Orders placed before you created the webhook are not imported either, because Shopify does not replay them.
Does revenue tracking need cookie consent?
With consent set to required the tracker waits and sends nothing until your consent manager reports analytics permission. Withdrawal stops sending and clears the tracker cookies. Traffic that declined is not counted at all, so Revenue cannot report what share of visitors refused.

Explore Other Modules

Continue through the AdRiseLab workflow without returning to the home page.

See It Applied to Your Setup

How teams like yours run Meta ads, and what it costs to start.