Ad reports
Performance for every ad type — from your synced ad reports instantly, or a fresh report from Amazon when you need one — plus brand metrics.
In short
Most ad questions are answered from your synced Sponsored Products, Brands and Display reports in seconds. When you need a report shape that is not synced, your agent requests it from Amazon, waits for it and reads the rows.
Two ways to get the numbers
Ask your synced reports first
Campaign, ad group, keyword, target, search-term and placement reports sync on a schedule. query_report_data filters and totals them instantly — "SP campaigns with ACoS above 40% last month" never waits on Amazon. The tables are listed on the Data tab.
Request a fresh report when you need one
ads_create_async_report asks Amazon for a report with the columns, grouping and dates you choose. Amazon builds it in the background; ads_get_async_report checks the status and returns the rows when it is complete.
Brand metrics
ads_generate_brand_metrics_report and ads_get_brand_metrics_report return brand awareness and consideration KPIs — also built in the background.
Try asking
"Generate a Sponsored Products campaign performance report for last month."
"From the last 30 days of search terms, find the converting ones I'm not targeting yet."
"Show me my brand metrics report."
A fresh report, both ways
MCP — you ask: "Get last month's Sponsored Products campaign report." Your agent calls ads_create_async_report, then polls ads_get_async_report until it is done.
In an AI client (MCP)
{
"name": "ads_create_async_report",
"arguments": {
"store": "myStore-US",
"countryCode": "US",
"body": {
"name": "SP campaigns last month",
"startDate": "2026-09-01",
"endDate": "2026-09-30",
"configuration": {
"adProduct": "SPONSORED_PRODUCTS",
"reportTypeId": "spCampaigns",
"format": "GZIP_JSON",
"groupBy": [
"campaign"
],
"columns": [
"campaignName",
"impressions",
"clicks",
"cost",
"sales14d"
],
"timeUnit": "SUMMARY"
}
}
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_create_async_report \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","countryCode":"US","body":{"name":"SP campaigns last month","startDate":"2026-09-01","endDate":"2026-09-30","configuration":{"adProduct":"SPONSORED_PRODUCTS","reportTypeId":"spCampaigns","format":"GZIP_JSON","groupBy":["campaign"],"columns":["campaignName","impressions","clicks","cost","sales14d"],"timeUnit":"SUMMARY"}}}'Tools on this page
| Tool | Access | What it does |
|---|---|---|
query_report_data | read | Query the synced report warehouse (rpt_* tables) — rows without calling Amazon. |
ads_create_async_report | read | Request an Amazon Advertising performance report (async — not immediately available; poll with ads_get_async_report until status=COMPLETED, then read data.report rows). |
ads_get_async_report | read | Poll an Amazon Advertising report's status; auto-downloads and returns the rows in data.report once status=COMPLETED. |
ads_generate_brand_metrics_report | read | Request a Brand Metrics report — your brand's shopper-funnel metrics in a category against category peers (engaged-shopper rate, customer conversion rate, new-to-brand customer rat |
ads_get_brand_metrics_report | read | Poll a Brand Metrics report; when the server sees it finished, the same call also downloads the file, so there is no separate download step. |
FAQ
Synced or fresh?
Synced for anything over a date range — it is instant and does not use Amazon's rate limits. Fresh when the shape you need is not synced. See Synced reports.
How far back can a fresh report go?
Most Ads report types look back at most 95 days.
Is there a skill for this?
Yes — the amazon-ads skill carries ready-made report request bodies. See Install the skills.