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.00Attributed
#1186Meta · Glass Skin staticFeed → collection → checkout$89.50Attributed
#1185Organic searchBlog post → product page → checkout$64.00Attributed
#1184Point of saleNever passed through the storefront$214.00No campaign

Illustrative preview with sample data. Every order is 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

    Create a Shopify app for your store

    In the Shopify Dev Dashboard, create an app with two permissions — read orders and manage script tags — and install it on your store. It is your app, in your own Shopify organization, and you can uninstall it at any time.

  2. 02

    Connect it in Revenue settings

    Paste the app's Client ID and secret. AdRiseLab installs the tracker on your storefront and registers the order and refund webhooks for you — nothing to paste into your theme. The script writes the visitor id into the cart, hidden from your customers at checkout.

  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

Reported by the payment provider

Every sale is Stripe's or Shopify's own signed statement about money it processed. Nothing a web page sends is counted as revenue, so a number cannot be inflated by a reloaded thank-you page.

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

Sites that sell through Stripe Checkout connect Stripe with a restricted key and pass the visitor id into the Checkout Session. Payments and refunds then arrive from Stripe itself.

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. Create an app for your store in the Shopify Dev Dashboard with the read orders and script tags permissions, and install it. Then paste its Client ID and secret into Revenue settings. AdRiseLab installs the script on your storefront, which measures visits and writes the visitor id into the cart, and registers the order webhooks for you. 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. Orders come from Shopify's own webhook instead.
Where do the revenue figures come from?
From your payment provider, never from your web pages. Stripe and Shopify each send a signed record of every payment and refund, and that is the only way a sale enters Revenue. The script on your site measures visits and supplies the visitor id that lets a payment be credited to an ad; it cannot report a sale.
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, if you take payments through Stripe Checkout. Install the script on every page of your site, connect Stripe in Revenue settings with a restricted key, and pass the visitor cookie into the Checkout Session's metadata where your server creates it. With any other payment provider, Revenue measures your visits but cannot show your revenue.
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.