22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.
68
93%
Does it follow best practices?
Impact
66%
1.65xAverage score across 22 eval scenarios
Medium
Suggest reviewing before use
Equivalent to v3 Sponsored_Products_Audience_report — 16 v3 columns mapped to v1 fields
This template replicates the v3 Sponsored Products Audience report on the Amazon Ads API v1 cross-product reporting endpoint (CreateReport). 15 of 16 v3 columns map cleanly to v1 fields; 1 ('Retailer') has no v1 equivalent.
The single most important mapping decision in this report: 'Audience Name' maps to target.value, NOT audienceSegment.name. The v1 audienceSegment. dimension family is for Amazon DSP, and the validator explicitly rejects every combination of audienceSegment with conversion metrics. Using the wrong field family would silently break the report.*
The 19-field payload was validated against the packaged v1 catalog: zero unknown fields, zero missing required, zero incompatible pairs.
Sponsored Products has three target types: keywords, products, and audiences. All three are stored in the same dimensional family — target.value (the targeting expression) and target.matchType (the modifier, when applicable). When an audience-type target serves an impression, target.value carries the audience expression — typically something like views(asin="B0...") for retargeting, purchases(asin="B0...") for cross-sell, or lookalike(...) for similar-shopper targeting.
The v1 catalog also has an audienceSegment.* family (audienceSegment.id, audienceSegment.name, audienceSegment.type, audienceSegment.classCode, audienceSegment.marketplace, etc.). These are used in Amazon DSP audience-segment reporting, where audience segments are an independent dimensional axis from campaigns and ads. Validator probes confirm: audienceSegment.id and audienceSegment.name are INCOMPATIBLE with metric.sales, metric.purchases, metric.unitsSold, metric.roas, and every Halo/Promoted/FromClicks variant. They cannot be used in an SP audience report.
If you need to produce a report ONLY for audience targets (not keyword or product targets), the cleanest approach is to filter target.value downstream by audience-expression prefix. SP audience expressions typically start with views(, purchases(, lookalike(, similarToPurchasers(, or matchProduct(. The exact prefixes can vary; sample your campaign data to confirm the patterns in use.
date.valueportfolio.portfolioIdportfolio.namecampaign.idcampaign.namecampaign.currencyCodecountry.codecountry.nametarget.valuebudgetCurrency.valuemetric.impressionsmetric.clicksmetric.ctrmetric.cpcmetric.totalCostmetric.salesmetric.purchasesmetric.unitsSoldmetric.roasadProduct.value = SPONSORED_PRODUCTS| v3 Column (Sponsored_Products_Audience) | v1 field_id | Role | Notes |
|---|---|---|---|
| Date | date.value | Time dimension | Required time dimension. |
| Portfolio name | portfolio.name | Dimension | Pair with portfolio.portfolioId. |
| — | portfolio.portfolioId | Dimension | Stable join key. |
| Currency | campaign.currencyCode | Dimension | Pair with budgetCurrency.value. |
| Campaign Name | campaign.name | Dimension | Pair with campaign.id. |
| — | campaign.id | Dimension | Stable join key. |
| Retailer | (no v1 equivalent — drop) | Dimension | Validator returns retailer.* as unknown. country.code already partitions Amazon's regional marketplaces. |
| Country | country.name | Dimension | Pair with country.code. |
| — | country.code | Dimension | ISO country code. |
| Audience Name | target.value (NOT audienceSegment.name) | Dimension | CRITICAL MAPPING NOTE: 'Audience Name' maps to target.value, NOT audienceSegment.name. SP audiences are one of three target types (alongside keywords and products). When an audience target serves an impression, target.value carries the audience expression (e.g. views(asin=...) or purchases(asin=...) or lookalike(...) ). The audienceSegment.* family in the v1 catalog is for Amazon DSP audience-segment reports — validator-confirmed incompatible with metric.sales/purchases/unitsSold/roas (and all click-only and halo/promoted variants). Using audienceSegment.* would break the report. |
| — | budgetCurrency.value | Required support | v1 minimal-baseline supporting field for currency-denominated metrics. |
| Impressions | metric.impressions | Metric | Direct. |
| Clicks | metric.clicks | Metric | Direct. |
| Click-Thru Rate (CTR) | metric.ctr | Metric | Direct. |
| Cost Per Click (CPC) | metric.cpc | Metric | Direct. |
| ROAS | metric.roas | Metric | Direct. |
| Spend | metric.totalCost | Metric | v1 renames 'spend' to totalCost. |
| Sales | metric.sales | Metric | All-attribution sales. The attribution window is set on the report request. |
| Orders | metric.purchases | Metric | Equivalent — orders → purchases. |
| Units sold | metric.unitsSold | Metric | Direct. |
Yellow row: Retailer has no v1 equivalent. The Audience Name row is highlighted because the mapping is non-obvious and getting it wrong silently breaks the report.
| Change | What it means for the request |
|---|---|
| 'Audience Name' maps to target.value, NOT audienceSegment.name | This is the most important difference in this report. The v1 catalog has an audienceSegment.* dimension family, but it's intended for Amazon DSP audience-segment reports — the validator confirms incompatibility with every conversion metric (metric.sales, metric.purchases, metric.unitsSold, metric.roas, plus their FromClicks/FromViews/Halo/Promoted variants). For Sponsored Products, audiences are one of three target types alongside keywords and products. When an SP audience target serves an impression, the audience expression (e.g. views(asin=...), purchases(asin=...), lookalike(...) ) is stored in target.value — the same field that carries keyword expressions and product-target expressions. Using audienceSegment.* would silently break the report. |
| The v3 SP Audience report is structurally a slice of SP Targeting filtered to audience targets | The same v1 query that produces the SP Targeting report produces the SP Audience data — there is no separate SP-audience grain in v1. Recover the audience-only slice by filtering target.value downstream to audience expression patterns (typical prefixes: views(, purchases(, lookalike(, similarToPurchasers(, etc.). If you don't filter, you'll get keyword and product targets in the same dataset; this is fine if downstream consumers don't mind the broader scope. |
| No 'Retailer' dimension | Retailer.* fields are unknown to the v1 catalog. country.code already partitions Amazon's regional marketplaces. |
| Filter on adProduct.value = SPONSORED_PRODUCTS | The v1 endpoint is shared across all ad products. |
| No metric.acos field | v3 doesn't include ACOS in this particular report (it's a slimmer column set than SP Targeting), but if you extend the report, derive as totalCost / NULLIF(sales, 0). |
| Attribution window leaves the field name | The window (typically 7-day for SP) is set on the report request itself; metric.sales/purchases/unitsSold are window-agnostic field names. |
| 'Spend' → metric.totalCost | Renamed across all ad products in v1. |
WHERE target.value LIKE 'views(%'
OR target.value LIKE 'purchases(%'
OR target.value LIKE 'lookalike(%'
OR target.value LIKE 'similarToPurchasers(%'Confirm the prefix list against your campaign data — Amazon's audience expression syntax can include other variants.
.tessl-plugin
skills
amazon-ads-accounts
amazon-ads-budget-pacing
amazon-ads-create-dsp-campaign
amazon-ads-creative-assets
amazon-ads-marketing-cloud
amazon-ads-reporting
assets
templates
sb
references
tests
amazon-ads-sb-performance-review
amazon-ads-sp-campaign-auditor
amazon-ads-sp-search-term-explorer
amazon-product-image
amazon-profitability-calculator
amazon-sp-fba-inbound
amazon-sp-listing-compliance
amazon-sp-listing-optimizer
amazon-sp-messaging-api
amazon-sp-refund-return-monitor
amazon-sp-repricing
amazon-sp-sales-traffic-analyzer
amazon-sp-sqp-asin-ngram
amazon-sp-stockout-prevention
connect-to-kuudo
using-kuudo