← Back to skumetrica.com

Reference

Advertising

What the ads cost, what they brought back, and — the question everything on this page is arranged to answer — whether that spend is paying for itself.

ACoS

Advertising Cost of Sale: what the ads cost, as a percentage of the sales Amazon credited to them. Amazon's own term for it.

Good: Never against zero — against Break-even ACoS, shown beside it everywhere ACoS appears. Below break-even the spend is making money; above it, each advertised sale is losing money, whatever ACoS's own number looks like on its own.

From: ad_totals()['acos'] account-wide, or spend ÷ sales per row, in public/inc/metrics.php: spend ÷ attributed sales × 100.

ACoS that still meets your target

The stricter line beneath Break-even ACoS: the ACoS at which a campaign starts clearing the profit this business told Settings it has to make, not merely covering its own costs.

Good: Sits exactly the required-profit bar below Break-even ACoS. A campaign priced between the two "looks" profitable against break-even alone while quietly failing to cover overhead — that gap is the single most important idea on this page. It can go negative, which is a finding — this product mix cannot meet the target at any spend at all — not an error.

From: target_acos() in public/inc/metrics.php: Break-even ACoS minus the required-profit percentage set on Settings, via target_totals(). Needs both unit costs and a target configured to appear at all.

Actual CPC

What a click on this target actually cost, on average — separate from Bid, which is only the ceiling you set.

Good: Read against Bid: a click costing far less than the bid means the auction is cheap and there may be room to bid up for more of it; a click costing near the whole bid means you are paying close to your ceiling for every visit.

From: computed in public/advertising.php from ad_targets_top() in public/inc/metrics.php: that target's spend ÷ clicks.

Actual, per day

What a product actually sold, per day, once its advertising was running — the before-and-after test's "after" figure.

Good: Read against Expected, not against Before, per day: Expected already accounts for however much the whole shelf grew on its own, so it is the fairer comparison for what the advertising itself added.

From: ad_lift() in public/inc/metrics.php: the row's on_rate, sales in the advertised window divided by its length.

Ad spend

What was actually paid for advertising in the period.

Good: Compare with the prior period, shown on the badge beside it — spending more is not by itself worse, so this figure is not judged against zero or coloured for or against you; ACoS carries the judgement.

From: ad_totals()['spend'] in public/inc/metrics.php, summed from ad_spend.

Ad type

Which advertising product the spend belongs to — Sponsored Products, Sponsored Brands, Sponsored Display, or Sponsored Brands video.

Good: Not a figure — a label. Each type is shown separately because they credit a sale to a click over different windows (see Window), so summing them blends two measurements into one.

From: ad_by_ad_product()['ad_product'] in public/inc/metrics.php.

Ads’ share

How much of what this product sold in total Amazon credited to an ad — capped at 100% even if attribution briefly credits more than the product sold in the window.

Good: Read beside TACoS, not instead of it: this is the fraction of the product's own sales the ads claimed, while TACoS is the ad cost as a share of the same total.

From: computed in public/advertising.php: that product's attributed ad sales ÷ its total revenue from by_product(), × 100.

Attributed

The sales Amazon credited to advertising for this row — a campaign, a product, a search term or the account as a whole — because a shopper clicked an ad within the attribution window before buying.

Good: Read against Spend, via ACoS, rather than on its own — a high attributed figure with an even higher spend is still a loss.

From: ad_totals()['sales'] account-wide, or the row's own sales column from ad_by_campaign() / ad_by_asin() / ad_series() in public/inc/metrics.php.

Before, per day

What a product sold, per day, in the period immediately before its advertising started.

Good: Not the comparison to judge the advertising by on its own — see Expected, which moves this figure by however much the unadvertised shelf grew over the same stretch.

From: ad_lift() in public/inc/metrics.php: the row's off_rate, sales in the pre-advertising window divided by its length.

Bid

The most you told Amazon you would pay for a click on this target.

Good: Read against Actual CPC — the gap between them is the useful reading, not the bid alone.

From: ad_targets_top()['bid'] in public/inc/metrics.php.

Break-even ACoS

The ACoS at which a campaign's advertised sales exactly cover Amazon's own fees and the cost of the goods sold — spend past this point and the sale itself is now a loss, before the advertising is even weighed.

Good: This is the line ACoS itself is judged against everywhere it appears on this page, not zero: below it a sale is making money, above it every advertised sale is losing money. See ACoS that still meets your target for the stricter line beneath it.

From: break_even_acos() in public/inc/metrics.php: (revenue + refunds + fees − cost of goods) ÷ revenue × 100. Needs unit costs entered in Settings to exist at all.

CPC

Cost per click: what this campaign paid on average for one click.

Good: No fixed target — compare a campaign against its own history, since cost per click varies by how competitive that keyword or placement is.

From: computed in public/advertising.php: a campaign's spend ÷ clicks, from ad_by_campaign() in public/inc/metrics.php.

Campaign

The name of the advertising campaign this row is about.

Good: Not a figure — an identifier for everything else on the row.

From: ad_by_campaign()['campaign_name'] in public/inc/metrics.php, falling back to the campaign's own ID when Amazon has not sent a name.

Clicks

How many times an ad was clicked.

Good: A volume figure — read alongside Orders or Conv. to see whether the clicks are turning into sales, not on its own.

From: ad_totals()['clicks'] account-wide, or the row's own clicks column, summed from ad_spend.

Conv.

This campaign's click-to-order rate — how many of its clicks became an order.

Good: Read alongside CPC and ACoS — a campaign can convert well and still cost too much per sale.

From: computed in public/advertising.php: a campaign's orders ÷ clicks × 100.

Cost per click

What one click cost, on average, across every campaign in the period — the account-wide version of CPC shown per campaign further down the page.

Good: No fixed target — compare against this account's own history, since cost per click moves with how competitive the keywords and placements being bid on are.

From: ad_totals()['cpc'] in public/inc/metrics.php: spend ÷ clicks, account-wide.

Expected

What a product would have taken with no advertising — its own Before, per day rate, moved by however much the account's unadvertised products grew or shrank over the same switch-on.

Good: The fair baseline for Actual, per day — not Before, per day on its own, which would count ordinary growth as an advertising effect.

From: ad_lift() in public/inc/metrics.php, using the control products' own growth as the mover.

Headroom

How many percentage points of ACoS sit between what this account is actually spending and its own Break-even ACoS.

Good: Positive means there is room to spend more before a sale stops paying for itself; negative means every advertised sale already costs more than it returns.

From: ad_context()['headroom'] in public/inc/metrics.php: Break-even ACoS minus ACoS.

Impressions

How many times an ad was shown to a shopper.

Good: A volume figure, read alongside Clicks — a target with many impressions and few or no clicks is being shown to the wrong shoppers rather than being outbid.

From: ad_totals()['impressions'] or ad_targets_top()['impressions'], summed from ad_spend.

Lift

How much a product's sales rate changed once advertising started, against what was Expected — as a percentage.

Good: Positive means the advertising is adding sales beyond ordinary growth; the size of it is what to weigh against the spend behind it, shown as Net after costs on the same row.

From: ad_lift(): (Actual, per day − Expected) ÷ Expected × 100, in public/inc/metrics.php.

Marketplace

Which Amazon storefront the advertising ran on.

Good: A label, not a figure — the verdict column beside it compares each storefront against the account's overall break-even, so treat it as a ranking between marketplaces rather than a verdict on any one of them: a marketplace with different prices or fees has a break-even of its own.

From: ad_by_marketplace()['marketplace_id'] in public/inc/metrics.php, named via marketplaces().

Matched by

The keyword or product target that caused your ad to show for this search term, and how it was matched — broad, phrase or exact.

Good: Not a figure — tells you which target to add the negative keyword against.

From: ad_search_terms_top() / ad_wasted_terms() in public/inc/metrics.php: target_text and match_type.

Net after costs

What the extra sales this test attributes to the advertising are worth once the cost of goods and Amazon's fees are taken out — using the same break-even math as the rest of this page — minus the ad spend it took to get them.

Good: Compare against zero: positive means this row of the test paid for itself after its own costs, not merely that it attracted attributed sales. Shown as "—" wherever unit costs are not entered, because the figure cannot be computed without them.

From: ad_lift() / ad_pause_test() / ad_dose_test() in public/inc/metrics.php: the lift or extra sales for the row, valued at break_even_acos(), less the spend behind it.

Orders

How many orders Amazon attributed to advertising for this row.

Good: Read alongside Clicks — the ratio between them is the click-to-order rate for that row.

From: ad_totals()['orders'] or the row's own orders column, summed from ad_spend.

Per click

What one click on this search term cost, on average.

Good: Not judged alone — every row in this table already had real clicks and zero orders, so the whole row is the finding.

From: computed in public/advertising.php: that term's spend ÷ clicks, from ad_wasted_terms() in public/inc/metrics.php.

Per dollar spent

What is left over, on average, once an advertised sale's own costs and the ad that won it are both paid for — for every dollar of ad spend.

Good: Compare against zero: above it the next dollar spent is worth spending, below it is not.

From: ad_context()['per_dollar'] in public/inc/metrics.php: (attributed sales × break-even ÷ 100 − spend) ÷ spend.

Period

Which day, week or month a row of the spend and return table covers, depending on the granularity chosen above the chart.

Good: A label for the row, not a figure.

From: the bucket boundary computed for the chosen granularity, in ad_series().

Product

The advertised listing this row is about.

Good: Not a figure — an identifier for everything else on the row.

From: the product catalogue, joined to the advertising row by ASIN.

ROAS

Return on ad spend: how many dollars of attributed sales came back for every dollar spent.

Good: Higher is better in the direction it points, but it does not say whether that spend cleared the cost of the goods behind it — ACoS against break-even answers that question; ROAS answers a narrower one.

From: ad_context()['roas'] in public/inc/metrics.php: attributed sales ÷ spend.

Sales from ads

The total sales Amazon attributed to advertising across the account in the period.

Good: Compare with the prior period, shown on the badge beside it, and read alongside Ad spend via ACoS rather than as a figure to grow on its own.

From: ad_totals()['sales'] in public/inc/metrics.php.

Search term

The exact words or phrase a shopper typed into Amazon before your ad was shown and clicked.

Good: Not a figure — read against Attributed and ACoS on the same row to judge whether that phrase is worth bidding on.

From: ad_search_terms_top()['search_term'] in public/inc/metrics.php, from the search-term report.

Share of spend

What portion of total advertising spend this campaign or marketplace accounts for.

Good: Shares across the table add to 100%; a single share is worth reading beside the others, not against a fixed number.

From: this row's spend divided by the total spend across the rows shown, computed in public/advertising.php.

Spend

What was paid for advertising for this row.

Good: Read via ACoS against what it brought back, not judged on its own.

From: the row's own spend column from ad_by_campaign() / ad_by_asin() / ad_by_marketplace() / ad_by_ad_product() in public/inc/metrics.php.

Spent

What was paid for clicks on this search term — every row in this table with real click volume and not one resulting order.

Good: Compare against total Ad spend, shown in the hint below the table, for a sense of scale — this is the most directly actionable figure on the page, since removing it is one negative keyword away.

From: ad_wasted_terms()['spend'] in public/inc/metrics.php.

TACoS

Total Advertising Cost of Sale: advertising spend as a share of everything the account sold, advertised or not — unlike ACoS, which only divides by the sales credited to an ad.

Good: No fixed target — watch it against your own trend. A TACoS that falls while ACoS holds steady means advertising is becoming a smaller share of a growing business rather than the business growing because of the advertising.

From: profit_totals()['tacos'] in public/inc/metrics.php: ad spend ÷ gross revenue × 100 — both order-side and complete, so it does not wait on Amazon to finish filing fees.

Target

The keyword or product you are bidding on — the text of it, or its ID when Amazon has not sent a readable one.

Good: Not a figure — an identifier for the bid, cost and result shown beside it.

From: ad_targets_top()['target_text'] in public/inc/metrics.php, from the targeting report.

Total sales

What this product sold in total in the period, advertised or not — the same figure the Products page shows for it.

Good: The denominator for TACoS and Ads’ share on the same row, not a figure to read alone here.

From: by_product()['revenue'] in public/inc/metrics.php, matched to the advertised row by ASIN.

Verdict

Whether this row's advertising is profitable, break-even, losing, has no sales attributed to it, or cannot be judged at all.

Good: "unknown" is a real answer, not a missing one — without unit costs there is no break-even to compare against, and calling every campaign "losing" instead would be a confident wrong answer.

From: ad_verdict() in public/inc/metrics.php: compares the row's ACoS against Break-even ACoS with a ten-percent margin either side, so a rounding difference does not flip the label.

What the shopper typed

The exact search term that led to a click and real spend, with no order to show for it in this whole window.

Good: Not a figure — the phrase worth adding as a negative keyword to the campaign named beside it.

From: ad_wasted_terms()['search_term'] in public/inc/metrics.php: terms with at least ten clicks and zero orders, the floor below which a term has not had enough of a chance to say anything yet.

Window

How many days after a click Amazon will still credit a sale to that ad type — seven days for Sponsored Products, fourteen for Sponsored Brands and Display.

Good: Not a figure to judge — the reason a combined ACoS across ad types is a ratio measured over two different periods at once, and why the rows are meant to be compared to each other rather than summed.

From: ad_by_ad_product()['attrib_days'] in public/inc/metrics.php, from the advertised-product report.

← Back to the course map