Skip to content
<- Guides
Amazon Ads · Reporting

What Is Amazon Marketing Stream? Datasets and Setup

Amazon Marketing Stream is Amazon Ads' push-based reporting feed. Version 2 writes Parquet files to your own S3 bucket. What each dataset sends, how v1 retires, and how your AI creates, manages and queries Stream data.

Amazon Marketing Stream v2 delivers Amazon Ads data as Parquet files to your own S3 bucket. Its datasets, setup, the v1 cutoff, and how your AI uses it.

Kuudo
Reviewed by Kuudo Engineering
ChatGPT managing Amazon Marketing Stream Version 2 through the Amazon Ads MCP: a flow from choosing a dataset such as ads-performance-v1, to creating the subscription against an S3 bucket and SQS queue, to an ACTIVE subscription that backfills 70 days, to Parquet files landing with the highest streamBatch.version kept per record (a SUSPENDED subscription needs a new one), ending in the AI querying the data in the lake.
The Amazon Ads MCP manages the Version 2 subscriptions. Parquet lands in your S3 bucket, Kuudo lands it in your lake, and your AI queries it there.
TL;DR
  • Amazon Marketing Stream Version 2 writes Amazon Ads data as Apache Parquet files to an S3 bucket you own, with an SQS notification for each file, as often as every 15 minutes.
  • Version 1 is deprecated and shuts off on June 30, 2027. One v2 dataset, ads-performance-v1, replaces the four v1 performance datasets.
  • Two v2 datasets: ads-performance-v1 (hourly) and ads-converted-product-v1 (daily, ASIN level). Both restate for 70 days.
  • Each record carries the total for its time window. Keep the row with the highest streamBatch.version per record.
  • A v2 subscription is ACTIVE on creation, backfills the restatement period, and can't be resumed once SUSPENDED or ARCHIVED.

Amazon Marketing Stream is Amazon Ads' push-based reporting feed. In Version 2, the current version, you subscribe an advertiser account to a dataset, and Amazon writes Parquet files to an S3 bucket you own, as often as every 15 minutes, with an SQS notification for each file. Amazon charges no fee, and Version 1 shuts off on June 30, 2027.

An agency's analytics lead asked me: "what is Amazon Marketing Stream, what data does it send, and how would our AI use it?" Amazon now documents two versions side by side, and Version 1 is deprecated. Much of what you find about Stream still describes the queue-and-delta design Version 2 replaces.

Stream is only useful once its data sits somewhere you can ask questions of. Our agent created and checked the Version 2 subscriptions through the Amazon Ads MCP, Kuudo landed the data in our own data lake, and the agent queried it there through Amazon Agent Flow. Amazon Agent Atlas held Amazon's Version 2 rules, which is where the traps below come from.

Amazon Marketing Stream v2 writes Amazon Ads data to your S3 bucket instead of waiting for report calls

Amazon calls Stream Version 2 the primary programmatic reporting surface for Amazon Ads. It delivers the metrics and dimensions the reporting API exposes, unified across ad products, as Apache Parquet files in an S3 bucket you own, with an SQS notification as each file lands. Each record carries the total for its time window, and a restated record arrives again with its new total.

Your needAmazon's recommendation
Intraday bid and budget changesStream v2
Real-time dashboardsStream v2
Many brands or thousands of accountsStream v2
AI and predictive modelingStream v2
Predefined stakeholder-ready reportsReporting API
Daily, weekly or monthly summariesReporting API

Amazon's reason is scale: the reporting API is built for ad-hoc reports and allows one concurrent report per advertiser and about 100 reports a day. Stream has no fee, though you pay AWS for the S3 storage and SQS notifications. It is available worldwide and delivers global account data. The Region only decides where you call the API and create the bucket and queue, which must sit in the same Region.

Through the Amazon Ads MCP, the subscription request comes from your AI client rather than a script someone has to maintain, using the advertiser access the account already authorized.

Version 1 is deprecated and shuts off on June 30, 2027

Migrate from Version 1 puts Stream v1 on a deprecation path: existing subscriptions keep delivering, some functionality may be limited before the shut-off, and v1 stops on June 30, 2027.

Version 1 (deprecated)Version 2
DestinationFirehose stream or SQS queueS3 bucket plus SQS notification
FormatJSONApache Parquet
ValuesDeltas per time windowTotals per time window
DeduplicationOn idempotency_idHighest streamBatch.version per record
DeliveryHourlyAs often as every 15 minutes
New subscriptionProvisioning; confirmation for SQS onlyACTIVE on creation

For v1 SQS destinations, the sequence is PROVISIONING → PENDING_CONFIRMATION → ACTIVE. Firehose destinations skip confirmation: PROVISIONING → ACTIVE.

One v2 dataset, ads-performance-v1, replaces the four v1 performance datasets for Sponsored Products, Sponsored Brands, Sponsored Display and Amazon DSP (demand-side platform): subscribe once and filter on adProduct.value. Amazon's migration order runs both versions side by side:

  1. Set up the S3 bucket and SQS queue.
  2. Create the v2 subscription for ads-performance-v1.
  3. Process the Parquet files, keeping the highest streamBatch.version per record.
  4. Build a resilient consumer that accepts non-breaking additions within the current dataset version. Breaking changes get a new dataset version; follow Amazon's consumer rules so additions do not break ingestion.
  5. Reconcile v2 totals against v1 for the same time windows.
  6. Archive the v1 subscriptions only after the totals match.

The Amazon Ads MCP carries both sets of subscription operations, so the agent can create the v2 subscription and archive the v1 ones from the same conversation once the totals reconcile.

Two v2 datasets replace Version 1's per-product feeds

Every Version 2 dataset spans Sponsored Products, Sponsored Brands, Sponsored Display, Sponsored TV and Amazon DSP, and follows the reporting API's metric and dimension names. The version is part of the ID, so a breaking change arrives as a new dataset rather than a changed one.

DatasetGrainRestatement windowWhat it carries
ads-performance-v1Hourly70 daysTraffic, engagement, cost, attributed conversions
ads-converted-product-v1Daily70 daysConversions per ASIN, including halo

Amazon Agent Atlas holds each dataset's field list, so the agent filters on the right field and computes what the dataset leaves out. Four dataset rules change how you read the data:

  • Ads performance has no calculated metrics. Compute return on ad spend (ROAS) or click-through rate from the base metrics after aggregating to your grain.
  • Time comes with its time zone. Each record carries date.value, hour.value and timeZone.value, the time zone the advertiser uses for reporting.
  • Small values are grouped. Below Amazon's reporting thresholds, a dimension value reports as (Other), and totals at every grain stay complete.
  • Ads converted product replaces the purchased product reports. It covers what spPurchasedProduct, sbPurchasedProduct, sdPurchasedProduct and dspProduct reported, split into promoted products and halo.

A v2 subscription is active on creation and cannot be revived

Create a subscription pairs one dataset with one advertiser account and one destination: an S3 bucket ARN and the ARN of its notification queue. The subscription becomes ACTIVE on creation, and the first delivery backfills the dataset's restatement period within about a day.

StatusMeansTerminal
ACTIVEDelivering dataNo
SUSPENDEDStream can't reach your destinationYes
ARCHIVEDDeleted by your applicationYes

Manage subscriptions adds three rules. A suspended or archived subscription never returns to ACTIVE, so resuming takes a new one. The destination is fixed at creation, and the same dataset, destination and account can't be subscribed twice. Each call must name the advertiser account the subscription was created for.

The Amazon Ads MCP carries the Version 2 subscription operations: create, retrieve, query and delete. The agent creates a subscription from a dataset ID, a bucket ARN and a queue ARN, reads the status back, and deletes what is no longer needed. The change goes through our workspace policy before it reaches Amazon.

Version 2 records are totals, so the newest version of each record wins

Data delivery sends only the records that changed since the last delivery, as inserts and updates, not a full snapshot. A record is keyed by its dimension fields. Process your data keeps the row with the highest streamBatch.version for each key in a staging layer, then aggregates from there, because a restated hourly record changes every total above it. A record is final only after its 70-day restatement window has passed.

Each Kuudo layer does one job:

JobKuudo layerWhat it does
Create, check, delete subscriptionsAmazon Ads MCPVersion 2 subscription operations
Keep the latest version of each recordAmazon Agent Flow pipelinesLands the data in your lake
Answer questions from the dataAmazon Agent Flow queriesFiltered, scan-budgeted lake queries

The data stays in storage you own, so the hourly history is as long as you keep it. The agent answers from data already in the lake instead of waiting on a report during the conversation.

What happens next: subscribe the dataset your decision needs

Start from the decision, not the catalog:

  • Intraday bidding and budget watching need ads-performance-v1.
  • Product-level halo questions need ads-converted-product-v1.
  • A team still on Version 1 runs both versions until the totals reconcile, well before June 30, 2027.
  • Scheduled, stakeholder-ready reports stay with the reporting API, where the Build the Right Amazon Ads Report Skill turns a report question into a validated request.

Amazon Agent Flow keeps the landed history queryable as subscriptions run. The Selling Partner MCP covers the orders and inventory the ads drive, and the weekly optimization routine is where hourly data earns its place.

Stream v2 is a subscription, a bucket you own, and a lake your AI can query: three layers, each with one job.

Next: Amazon PPC dayparting, built on hourly Stream data.

Private beta

Put Marketing Stream v2 to work from your AI

We'll connect the Amazon Ads MCP to the AI client your team uses, set up your Stream v2 subscriptions and destination, and land the data in your own lake so your AI can query hourly ads data.

Book a working session

What you need to run Amazon Marketing Stream subscriptions

MCP
Amazon Ads MCP for Marketing Stream Version 2 subscriptions: create, retrieve, query and delete. Amazon Agent Flow lands the data in your lake and queries it.
Atlas collection
amazon_ads, the Amazon rules behind this guide (playbooks: Amazon Marketing Stream Version 2 overview; Migrate from Version 1; Ads performance; Ads converted product; Create a subscription; Manage subscriptions; Data delivery; Process your data)
Required subscriptions
An Amazon Ads account, and an S3 bucket plus an SQS notification queue in the same AWS Region.
Related reading

Keep exploring Amazon Marketing Stream subscriptions

Use these companion guides to understand the inputs, follow-on analysis, and adjacent workflows behind this playbook.

FAQ

What is Amazon Marketing Stream?

Amazon Marketing Stream is Amazon Ads' push-based reporting feed. In Version 2 you subscribe an advertiser account to a dataset, and Amazon writes Parquet files to an S3 bucket you own, with an SQS notification for each file, as often as every 15 minutes.

What is the difference between Amazon Marketing Stream v1 and v2?

Version 1 sends JSON deltas to a Firehose stream or SQS queue, hourly, deduplicated on idempotency_id. Version 2 writes Parquet files with total values to your S3 bucket, as often as every 15 minutes, deduplicated by keeping the highest streamBatch.version per record.

When does Amazon Marketing Stream v1 shut off?

June 30, 2027. Amazon says v1 is on a deprecation path, existing subscriptions keep delivering until then, and some v1 functionality may be limited before the shut-off.

Is Amazon Marketing Stream free?

Amazon charges no fee for Stream. You pay AWS for the S3 storage of the Parquet files you keep, the SQS notifications, and whatever you use to read the data.

Should I use Marketing Stream or the reporting API?

Amazon recommends Stream v2 for intraday optimization, real-time dashboards, large-scale reporting and AI modeling, and the reporting API for predefined, stakeholder-ready and periodic reports. The reporting API allows one concurrent report per advertiser and about 100 reports a day.

Why does my Stream v2 subscription show SUSPENDED?

Stream could no longer reach your destination: the S3 bucket or SQS queue was deleted, or the permission Stream uses was removed. SUSPENDED is terminal, so fix the destination and create a new subscription.

Can you change a Marketing Stream subscription's destination?

No. A v2 subscription's destination is fixed at creation. Delete the subscription and create a new one that points to the new destination.

Sources