Store
Which ads earned sales
The Ads page of a store: credit by channel, campaign, ad set and ad, how a visit is matched to an ad, every column and its formula, overlap and live orders.
The Ads page answers one question: which channels, campaigns, ad sets and ads brought in the orders of the period, and what each of them cost. It lays the spend an ad platform reports next to the revenue your store recorded, credited by the model you pick in the top bar.
The date range and the comparison apply. Filters do not. The model menu works as on every store page: see Attribution models.
Levels #
The switch at the left of the top bar picks the level of the table:
- Channels. One row per channel: Meta Ads, Google Ads, TikTok Ads, Pinterest Ads, Amazon Ads, Microsoft Ads, Email, Organic search, Organic social, Referral, AI, Direct, Other campaigns and Not attributed.
- Campaigns. One row per campaign. An ad platform's campaigns are named as the platform names them. A tagged link that matches no spend, such as an email flow, is a row of its own named after its
utm_campaign. - Ad sets. One row per ad set or ad group.
- Ads. One row per ad.
At the ad set and ad levels a muted line under the name shows the rows above it, such as "Fall Collection › Prospecting | Broad".
How a visit is matched to an ad #
The channel of a visit comes from what the visit carried when it arrived. An ad click id, read when Match sales to ads is on, names the platform for certain. Without one, a paid UTM medium such as cpc or paid_social and the UTM source decide the platform. A link tagged utm_source=facebook with the medium social is an organic post, not an ad, and lands on Organic social. A page view later in the same visit keeps the ad click of the visit, so the last click of a journey is still tied to its ad.
To find the campaign, ad set and ad of a paid visit, the rules below run in order and the first that matches wins:
- The
utm_idof the link equals the id of an ad, an ad set or a campaign in the spend. Meta and Google write this id into links when the tracking template asks for it. - The
utm_campaignequals a campaign id, or reads the same as a campaign name once both are written in lower case with every other character turned into a hyphen. "Fall Collection" andfall-collectionmatch. Inside that campaign,utm_termis matched to the ad sets andutm_contentto the ads in the same way. - Nothing matches. The credit goes to a campaign row named "(no match)" under the platform, so it is never lost.
When two ads carry the same name, the one with the lowest id wins, every time.
The table #
The Sources card holds a search box, a column picker and the table. Click a column heading to sort by it, and click again to turn the order around. The table starts sorted by spend, highest first. On a phone it scrolls sideways inside its card, with the name column pinned.
A row that has spend and no visit matched it is marked "no visits matched". A row that has visits and no spend says "no spend". The last line of the table holds the totals of the rows listed, so a search narrows them too. Its ROAS, CPA, NC-ROAS and cost per new customer count only the revenue credited to ad platforms, so with no search the line's ROAS equals Blended ROAS. A line under it names the spend that matched no visit at this level.
With a comparison on, each number shows its change under it on wider screens.
Columns #
The column picker shows or hides any column, and the choice is kept in the address. Columns marked as reported by the platform carry a small "platform" tag, and the Spend column a "spend" tag, for spend synced or uploaded. On a phone the tags show in the legend above the table, not in the headings.
| Metric | How it is worked out | What it covers |
|---|---|---|
| Spend | What the ad platform reports as spent. Spend in another currency than the report is listed apart and never added | Spend as synced or uploaded, in the account currency |
| ROAS | Credited revenue divided by spend | Orders credited by the chosen model |
| Platform ROAS | Platform revenue divided by spend | As the ad platform reports it |
| Orders | Orders the model credits to the row. Under Linear a row holds its share of each order | Orders credited by the chosen model |
| Revenue | The amounts of the orders the model credits to the row, before refunds | Orders credited by the chosen model |
| CPA | Spend divided by credited orders | Orders credited by the chosen model |
| NC-ROAS | Credited revenue of new customer orders divided by spend | Orders credited by the chosen model |
| New customer orders | Credited orders that were a customer's first order | Orders credited by the chosen model |
| Cost per new customer | Spend divided by credited new customer orders | Orders credited by the chosen model |
| Average order | Credited revenue divided by credited orders | Orders credited by the chosen model |
| Impressions | Times the ads were shown, as the platform counts them | As the ad platform reports it |
| Clicks | Clicks on the ads, as the platform counts them | As the ad platform reports it |
| CTR | Clicks divided by impressions | As the ad platform reports it |
| CPC | Spend divided by clicks | As the ad platform reports it |
| CPM | Spend per 1,000 impressions | As the ad platform reports it |
| Platform purchases | Purchases the platform reports for its ads, after a click or a view | As the ad platform reports it |
| Platform revenue | The value of those purchases, as the platform reports it | As the ad platform reports it |
| View purchases | Purchases the platform reports after a view only. The view models credit them as an estimate | As the ad platform reports it |
| Blended ROAS | Revenue the model credits to an ad platform, divided by all spend in the currency of the report | Orders credited by the chosen model |
| MER | Every paid order of the period, before refunds, divided by all spend in the currency of the report | Orders paid in the period, before refunds |
Above the table, six tiles hold the totals of the period: Ad spend, Credited revenue, Blended ROAS, MER, CPA and NC-ROAS.
Orders are whole numbers under every model but Linear. Under Linear, an order shared between four page views adds a quarter to each of their rows, so the rows still add up to the orders of the store.
Channel overlap #
The Channel overlap card draws the channels that touched the most orders as circles, each sized by its orders and overlapping by the orders they share. Under it a table lists every pair of channels that touched the same order, and a line counts the orders one channel touched, the orders two or more touched, and the orders with no visit at all.
Overlap counts touches, not credit. An order that Meta and email both touched counts in full for Meta, for email and for the pair, whatever the model credits.
Live orders #
The Live orders card lists the orders of the period, newest first: the order number, the amount, how long ago it was paid, and whether it came from a new or a returning customer. A row of small logos shows every channel the order touched, oldest first, with a ring around the one the model credits. A dot marks credit that is an estimate. The list adds more as you scroll, and on a range that runs up to now it refreshes on its own.
On a phone the two cards sit behind two tabs.
Before there is spend #
A site with orders and no spend still has this page: the tiles show the store's numbers, the table shows channels such as email and organic search marked "no spend", and a panel says how to add spend. Ad accounts cannot be connected yet (what works today says so), so spend comes from a CSV upload under Settings, Costs: see Costs and CSV upload.
Next: Attribution models, Creative report, Costs and CSV upload