Built for Ecommerce

Ecommerce attribution: order revenue matched to the click that produced it

Your Meta pixel and your Google tag each claim more revenue than Shopify recorded, and they claim some of the same orders as each other. Attribi takes the opposite approach: it reads paid orders from Shopify, matches each one to the click that produced it, and reports from that. Two things to know before you read further. Shopify is the only store platform it connects to. And it is a better fit for stores that also run Google than for stores that run Meta alone, for a reason spelled out below.

No credit card required · 5-minute setup

What breaks in ecommerce

Your platforms add up to more revenue than you made

Meta claims an order, Google claims the same order, and the total across your dashboards comfortably exceeds what landed in your bank. Everyone knows the number is inflated and nobody knows by how much, per campaign, which is exactly the granularity you would need to move budget with any confidence.

Pixel-reported revenue is an estimate you cannot audit

Browser-side tracking loses orders to ad blockers, privacy settings, in-app browsers and cross-device journeys, and the platforms fill the holes with modelling. The result is a number you cannot reconcile against Shopify, cannot break down, and cannot show a finance team without caveats.

The first order is not the customer, but it is all the reporting sees

A channel that brings buyers who order once and disappear looks identical, on day one, to a channel that brings buyers who come back. The difference shows up months later in the aggregate, by which point both channels have been scaled or cut on the strength of a first-order return figure.

Nobody can say what discounting and returns did to the real number

Ad platforms report the value the pixel fired with. Your actual margin sits behind a discount code, a shipping cost and a return window, none of which the pixel knows about. Campaign-level return on ad spend is computed on a revenue figure that is wrong before you start.

What Attribi does about it

Orders come from Shopify, not from a pixel

Shopify tells Attribi about every paid order over a webhook, with the real order total and the real currency. That is the revenue everything else is built from. It does not depend on a script running in the shopper browser, so it does not degrade with ad blockers, privacy settings or an in-app browser, and it can be reconciled line by line against your Shopify reports because it came from there.

Each order is matched to the click that produced it

Attribi records the click identifier when a visitor arrives from Google or Meta and keeps it against that shopper, so when the order arrives it can say which campaign produced it. Where the click identifier is missing, matching falls back to hashed email and phone. One order is credited once, which is what stops the double counting between platforms.

Real order revenue goes back to Google Ads and Meta

Each paid order is uploaded to your connected ad accounts as a conversion carrying the actual order value, so the reporting inside those platforms is built on transactions Shopify confirmed rather than on pixel estimates. Repeat orders each upload separately with their own value. What a campaign optimizes toward is still a decision you make deliberately in the platform, or through a recommendation you approve here; the upload itself does not change any of it.

Checkouts are recorded without a value being invented for them

A started checkout is recorded as a mid-funnel signal and deliberately carries no revenue figure, because nobody knows what an abandoned checkout was worth. You get the volume signal without a fabricated number flowing into a return-on-spend calculation that then looks better than reality.

What Attribi does not do for ecommerce

The gaps that matter most for this audience, so you can weigh them before you sign up rather than discover them afterwards.

Shopify is the only store platform

There is no WooCommerce, BigCommerce, Magento, Wix or custom-cart connection, and no marketplace connection for Amazon or similar. This is not a weaker integration for those platforms, it is no integration at all: if you are not on Shopify, Attribi cannot see your orders and there is no workaround. Worth knowing in the first minute rather than the first week.

Our revenue totals undercount repeat buyers, while the ad platforms get it right

When a shopper places a second order, our stored value for that shopper is replaced rather than added to, so a hundred followed by forty leaves forty. Every order is uploaded to Google and Meta correctly with its own value, so the numbers your ad platforms hold are right. It is the revenue and return figures on our own dashboard that run low for a store with meaningful repeat purchase, and they run low by exactly the repeat revenue you most want to see. The full per-order history is kept, so the fix is a reporting change on our side rather than lost data, but it is not done today.

The Google Ads conversion we create is a lead-gen shape, so map yours instead

If you let Attribi create your closed-won conversion action in Google Ads, it is created in the lead-gen category and counted once per click, which is wrong for a store where one click can legitimately produce more than one purchase. The way round it takes ten seconds and we would rather you did it: in the connection settings, map your existing Purchase conversion action instead of creating a new one. Attribi will upload to whichever action you point it at. A dedicated ecommerce shape for the create path is not built yet.

Funnel graduation does not fire if Meta is the only place you buy

Attribi can move what a campaign optimizes toward, on Google Ads and on Meta. It decides an account is ready by counting outcomes that came from a Google Ads click, so a store that spends only on Meta counts zero, never reaches the threshold, and never gets a recommendation. Since Meta-only is common in this category, assume this feature is not for you unless you also run Google Ads at volume. Everything else, including uploading order revenue to Meta, works normally either way.

No audience sync, no incrementality testing, no media mix modelling

Attribi sends conversions to ad platforms. It does not send audiences, so there is no way to push a high-value customer list for a lookalike or a suppression list for existing buyers. It also runs no geo holdouts, no lift tests and no channel-contribution model, so it cannot tell you what would have happened if you had switched a channel off. If those are central to how you buy media, Attribi is one tool in the stack rather than the stack.

Returns, refunds and discounts are not netted off

Revenue is the paid order total Shopify reported. A later refund or return does not walk the number back, and margin after discount and shipping is not modelled, so what you get is revenue by campaign rather than contribution by campaign. For stores with a high return rate that gap matters and you should size it before relying on the figure.

The stack we would put you on

These are the connections we recommend for ecommerce, not a list of everything Attribi connects to.

How it works

Frequently asked questions

Does Attribi work with WooCommerce or BigCommerce?

No. Shopify is the only store platform Attribi reads orders from. There is no partial support and no manual import path for the others, so if you are on WooCommerce, BigCommerce, Magento or a custom cart, Attribi cannot see your revenue and is not a fit today.

Why is your revenue figure lower than Shopify for repeat customers?

Because we currently keep one order value per shopper rather than a running total, so a second order replaces the first instead of adding to it. Your ad platforms are not affected: each order is uploaded separately with its own value, so what Google and Meta hold is correct. It is our own dashboard totals that run low, by the amount of your repeat revenue. Per-order history is stored in full, so this is a reporting fix rather than data we do not have, and it is not done yet.

How do I set up the Google Ads conversion for a store?

Map the Purchase conversion action you already have rather than clicking Create. The action Attribi creates for you is built in the lead-gen category and counted once per click, which is the wrong shape for a store. Mapping an existing action sidesteps that entirely and takes a moment in the connection settings; Attribi uploads to whichever action you point it at.

We only advertise on Meta. Is Attribi still useful?

For measurement, yes: Shopify orders are matched to Meta clicks and the real order revenue is uploaded back to your Meta account, which is the main thing most stores want. What you will not get is funnel graduation, because the check that decides an account is ready counts outcomes attributed to Google Ads clicks, so a Meta-only account never crosses the threshold. We would rather tell you that now than have you wait for a recommendation that is never coming.

How do I connect my Shopify store?

Through us, for now. Shopify stopped letting merchants create their own custom apps at the start of 2026, so a first-time store needs an install link from us rather than a button you click in your own admin. It is a short step and we do it during onboarding, but it does mean the Shopify connection is not fully self-serve today.

Do you count an abandoned checkout as revenue?

No. A started checkout is recorded as a signal with no value attached, on purpose, because assigning a revenue figure to an order that never happened inflates every return-on-spend number downstream of it. Only paid orders carry money.

Other industries

Updated

See it on your own data.

Connect your ad platforms and your CRM, and read the answer from your own account.

Start Free

No credit card · Free forever up to 1,000 visitors