Share of Voice (SOV) tells you how much of the search results your brand owns versus everyone else competing for the same keywords. It's the visibility side of the equation — market share is the revenue side, and you need both. SOV usually moves before revenue does, which is what makes it the single most useful leading indicator a marketplace team can track.
The catch: SOV isn't a field you can read off a page. It's a calculation you run over a full search-results page — every organic and sponsored placement, for every keyword you care about, repeated on a schedule. That's exactly what a search-results API is for. This guide walks through what SOV means, how to calculate it three ways, and how to compute it automatically from Amazon search data using our search-results endpoint.
TL;DR
- SOV = your placements ÷ all placements on a search-results page, tracked over time.
- Track organic SOV and sponsored SOV separately, then blend for a leadership KPI.
- Weight it — a #1 position is worth far more than #40 — using position-weighted and fold-weighted models.
- The data source is a keyword rank feed. Amazon's search-results endpoint returns all 60 products per page with
rank, anis_sponsoredflag, and abrandsarray — everything you need to compute SOV in one call. - Try it free first with our keyword rank tracker, then automate the full calculation via the API.
What Share of Voice actually means
Share of Voice measures the visibility your brand captures in search versus everyone else. On Amazon that means how often your products (or ads) appear in the results for a given keyword, cluster, or category. Two views matter:
- Organic SOV — your presence in the organic (unpaid) results.
- Sponsored SOV — your presence in paid placements (Sponsored Products, Sponsored Brands, video).
Don't confuse it with two neighbors: Share of Shelf is on-page real estate on product pages and carousels, and market share is actual sales. They're related but not interchangeable — SOV is the visibility that leads to the sale.
Why SOV is worth tracking
- It's an early signal. SOV moves before revenue when you turn on campaigns, lose rankings, or a competitor raises their budget. You see the shift days before it hits your sales.
- It clarifies budget. It shows where to defend branded queries, where to conquest, and where you already dominate and can pull spend back.
- It gives category context. You see who actually wins the top positions for the keywords that matter — real data, not the story an ad platform tells you.
How to calculate Amazon Share of Voice
Start simple and add sophistication. We'll use a single keyword as the example.
1. Basic (unweighted) SOV
SOV (%) = your brand's appearances ÷ total appearances × 100.
If you hold 2 of the top 10 results, that's 20%. Fast to grab, but it misses a huge point: the #1 spot gets far more eyeballs than #9.
2. Position-weighted SOV
Give higher ranks more weight. A simple scheme for the top 10:
- Weights 10…1 for positions 1…10.
- Total page weight = 10 + 9 + … + 1 = 55.
- Hold positions 2 and 9 → points = 9 + 2 = 11.
- Weighted SOV = 11 / 55 = 20%.
This scales far better than a raw count once you're mixing ranks across dozens of keywords.
3. Fold / area-weighted SOV
Add weight for above-the-fold modules that eat more real estate, like a Sponsored Brands banner:
- Sponsored Brands banner = 12 points.
- Positions 1…10 = 10…1 points. Total page points = 12 + 55 = 67.
- Own the banner and rank #6 and #9 → 12 + 5 + 2 = 19.
- Weighted SOV = 19 / 67 ≈ 28.4%.
The rule that matters more than the model: pick one, write it down, and apply it identically every day. Consistency is what makes the trend line mean something.
Where the data comes from
You can eyeball a page and count logos, but the results shuffle constantly and manual tracking collapses the moment you scale past a handful of keywords. What you actually need is a keyword rank feed: for each keyword, the full ordered list of products on the page, with organic and sponsored placements flagged, pulled on a schedule.
That's precisely what the Asgard search-results endpoint returns. One call to /amazon/search/results gives you all ~60 products on a page, each with:
asinandtitle— to identify the product.rank— its position on the page (your weighting input).is_sponsored—truefor paid placements, so you can split organic vs sponsored SOV.- a page-level
brandsarray andrelated_keywords— for brand-level roll-ups and keyword expansion.
Because sponsored slots load dynamically and are the first thing to vanish on a single scrape, sponsored coverage is where most tools fall short. Asgard's retry logic returns roughly 98–99% of sponsored placements per keyword, which is what makes trustworthy sponsored SOV possible in the first place.
Computing SOV from the API response
Here's the whole thing end to end. Pull a keyword's results, then reduce them into organic and position-weighted SOV for your brand:
// 1. Pull the search-results page for a keyword
const res = await fetch(
"https://api-v2.asgardata.com/amazon/search/results" +
"?country=us&query=cat+toys&zip=10001&page=1",
{ headers: { "x-api-key": process.env.ASGARD_API_KEY } }
);
const { result } = await res.json();
const products = result.products; // ~60 items, each with rank + is_sponsored
// 2. Define your brand's ASINs (or match on brand/title)
const myAsins = new Set(["B0B73XM8ZB", "B0CHX3QBCH"]);
// 3. Basic organic SOV
const organic = products.filter((p) => !p.is_sponsored);
const mineOrganic = organic.filter((p) => myAsins.has(p.asin));
const basicSOV = (mineOrganic.length / organic.length) * 100;
// 4. Position-weighted SOV (higher rank = more weight)
const weight = (rank) => Math.max(0, 61 - rank); // rank 1 -> 60 pts
const totalWeight = organic.reduce((s, p) => s + weight(p.rank), 0);
const myWeight = mineOrganic.reduce((s, p) => s + weight(p.rank), 0);
const weightedSOV = (myWeight / totalWeight) * 100;
// 5. Sponsored SOV — same math over the paid placements
const sponsored = products.filter((p) => p.is_sponsored);
const sponsoredSOV =
(sponsored.filter((p) => myAsins.has(p.asin)).length / sponsored.length) * 100;
console.log({ basicSOV, weightedSOV, sponsoredSOV });
Run that across your keyword list on a schedule (a cron job, a queue, or a scheduled function), store each day's numbers, and you have a Share of Voice time series — no screenshots, no spreadsheets. Group the keywords into clusters that mirror how you budget, and roll the numbers up by brand using the brands array.
What to measure SOV on
To make it actionable, slice SOV the way you plan spend:
- By intent — branded, competitor, and generic non-branded terms.
- By unit — single keyword, keyword cluster, or category / browse node.
- By placement — organic vs Sponsored Products vs Sponsored Brands.
- By fold — top-of-search vs rest-of-search.
What's a good SOV target?
- Branded terms — aim for near-ownership. Below 70–80% on your own brand? Fix that first.
- Priority generics — 20–30% is a foothold that drives meaningful traffic.
- Core generics leadership — 40–50% looks like leadership; just confirm the unit economics still work.
Quick health check: if your SOV > market share, you're set up for growth. If SOV < market share, you're likely coasting on brand strength and need to invest in visibility.
Try it before you build it
Before wiring up the API, get a feel for the data with our free Amazon keyword rank tracker. Enter an ASIN and a keyword and it runs a live search, showing where that product lands in the organic and sponsored results — the same rank + sponsored data the SOV calculation above runs on, one keyword at a time. When you're ready to track a whole keyword set daily, move to the search-results API.
Frequently asked questions
Is SOV just a paid metric? No. Retail-media tools often define it in paid terms, but marketplace operators should track both organic and sponsored visibility for the full picture. The is_sponsored flag on each result lets you compute both from the same call.
What's the easiest way to start? Pick 20–30 priority keywords per product line, choose a position-weighted model, and trend SOV weekly. Expand to clusters and sponsored coverage once the workflow is stable.
How often should I measure it? Weekly catches meaningful trends. During peak events or ad tests, watch it daily — the API makes daily trivial.
Do I need perfect denominators? No. Be consistent — same keyword set, weighting, time window, and competitor list. Direction and deltas beat one-off precision.
Can I do this for Walmart too? The concept is identical; you'd weight position and fold the same way over that marketplace's placements.
Start tracking Share of Voice:
☞ Free Amazon Keyword Rank Tracker · Search-Results API · full docs at asgardata.com
