@comchatx/cx-sponsored-ads-playbook 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -2
  3. package/README.zh-CN.md +15 -0
  4. package/package.json +128 -4
  5. package/prompts/ads-brand.md +5 -0
  6. package/prompts/ads-change-review.md +5 -0
  7. package/prompts/ads-harvest.md +5 -0
  8. package/prompts/ads-launch.md +5 -0
  9. package/prompts/ads-margin.md +5 -0
  10. package/prompts/ads-review.md +5 -0
  11. package/prompts/ads-season.md +5 -0
  12. package/research/README.md +616 -0
  13. package/research/areas/ads-organic-and-total.md +757 -0
  14. package/research/areas/bids-and-placements.md +796 -0
  15. package/research/areas/budgets-and-pacing.md +1225 -0
  16. package/research/areas/campaign-structure.md +1467 -0
  17. package/research/areas/diagnosis.md +1110 -0
  18. package/research/areas/keyword-and-product-targeting.md +1542 -0
  19. package/research/areas/launch.md +1124 -0
  20. package/research/areas/search-terms-and-negatives.md +1233 -0
  21. package/research/areas/seasons-and-deals.md +1341 -0
  22. package/research/beyond/ad-products-and-eligibility.md +790 -0
  23. package/research/beyond/automation-and-amazon-tools.md +725 -0
  24. package/research/beyond/brand-defense-and-competition.md +872 -0
  25. package/research/beyond/goals-and-economics.md +1084 -0
  26. package/research/beyond/metrics-and-attribution.md +837 -0
  27. package/research/beyond/vendors-and-hybrid.md +1254 -0
  28. package/research/method/ads-api-surface.md +2023 -0
  29. package/research/method/change-measurement.md +800 -0
  30. package/research/method/reporting.md +1453 -0
  31. package/skills/ads-bids-and-budgets/SKILL.md +36 -0
  32. package/skills/ads-bids-and-budgets/references/auction.md +38 -0
  33. package/skills/ads-bids-and-budgets/references/automation.md +59 -0
  34. package/skills/ads-bids-and-budgets/references/bidding.md +86 -0
  35. package/skills/ads-bids-and-budgets/references/budgets.md +79 -0
  36. package/skills/ads-bids-and-budgets/references/writes.md +30 -0
  37. package/skills/ads-change/SKILL.md +42 -0
  38. package/skills/ads-change/references/designs.md +57 -0
  39. package/skills/ads-change/references/findings.md +32 -0
  40. package/skills/ads-change/references/history.md +21 -0
  41. package/skills/ads-change/references/tests.md +42 -0
  42. package/skills/ads-change/references/writes.md +28 -0
  43. package/skills/ads-economics/SKILL.md +40 -0
  44. package/skills/ads-economics/references/evidence.md +39 -0
  45. package/skills/ads-economics/references/fees.md +47 -0
  46. package/skills/ads-economics/references/margin.md +32 -0
  47. package/skills/ads-economics/references/total-sales.md +62 -0
  48. package/skills/ads-economics/references/vendors.md +62 -0
  49. package/skills/ads-launch/SKILL.md +34 -0
  50. package/skills/ads-launch/references/accounts.md +27 -0
  51. package/skills/ads-launch/references/first-campaign.md +32 -0
  52. package/skills/ads-launch/references/new-product-ranking.md +24 -0
  53. package/skills/ads-launch/references/new-products.md +52 -0
  54. package/skills/ads-launch/references/products-and-policy.md +91 -0
  55. package/skills/ads-review/SKILL.md +38 -0
  56. package/skills/ads-review/references/decomposition.md +27 -0
  57. package/skills/ads-review/references/metrics.md +65 -0
  58. package/skills/ads-review/references/reads.md +30 -0
  59. package/skills/ads-review/references/reports.md +71 -0
  60. package/skills/ads-review/references/serving.md +50 -0
  61. package/skills/ads-review/references/vendors.md +25 -0
  62. package/skills/ads-search-terms/SKILL.md +38 -0
  63. package/skills/ads-search-terms/references/negatives.md +51 -0
  64. package/skills/ads-search-terms/references/search-term-report.md +31 -0
  65. package/skills/ads-search-terms/references/terms.md +41 -0
  66. package/skills/ads-seasons/SKILL.md +44 -0
  67. package/skills/ads-seasons/references/api-events.md +24 -0
  68. package/skills/ads-seasons/references/calendar.md +27 -0
  69. package/skills/ads-seasons/references/claims.md +35 -0
  70. package/skills/ads-seasons/references/deals.md +42 -0
  71. package/skills/ads-seasons/references/measurement.md +26 -0
  72. package/skills/ads-seasons/references/spend.md +44 -0
  73. package/skills/ads-seasons/references/vendors.md +26 -0
  74. package/skills/ads-structure-and-targets/SKILL.md +38 -0
  75. package/skills/ads-structure-and-targets/references/brand-and-competitors.md +60 -0
  76. package/skills/ads-structure-and-targets/references/sponsored-brands-and-display.md +44 -0
  77. package/skills/ads-structure-and-targets/references/structure.md +75 -0
  78. package/skills/ads-structure-and-targets/references/targets.md +68 -0
@@ -0,0 +1,1110 @@
1
+ # Finding why spend or sales moved
2
+
3
+ Read 2026-11-09 by the research seat.
4
+
5
+ Tags: [official] is an Amazon page (Amazon Ads help, library, API docs and OpenAPI models, the Amazon Ads status page, aboutamazon.com, Amazon's public GitHub models), cited by page name and URL and read 2026-11-09 unless another date is given. [opinion] is a named practitioner, vendor, journalist or other non-Amazon party, with the person or firm given; a government complaint is tagged [opinion] with the agency named, because it is an allegation. [research] is a peer-reviewed paper, a conference paper or a preprint. [seat] is this seat's own reading and is never a position. Figures (percentages, dollar amounts, day counts, retention windows) are recorded with page and date **for human readers only**. A skill reads the live figure at run time from the operation named in *What cx must read at run time*.
6
+
7
+ ## What this covers
8
+
9
+ This file covers how a change in an advertiser's spend or attributed sales can be traced to its source, using what Amazon documents and what named practitioners and researchers add. It covers:
10
+
11
+ - the two identities that split a movement into parts: spend = impressions × click-through rate × cost per click, and attributed sales = clicks × conversion rate × average order value; and Amazon's own definitions of each part, including the definitions that trap a reader;
12
+ - the documented causes that stop or change serving: the Featured Offer gate, out of stock, suppressed or ineligible listings, moderation, budget caps at campaign, portfolio and account level, payment failure, account eligibility, end dates, pausing and archiving; with the serving status and delivery reason values that the Sponsored Products v3 API and the Amazon Ads API v1 return;
13
+ - data that moves after the fact: reporting latency, invalid-traffic removal, conversion restatement, null values, report warnings and incidents on the Amazon Ads status page;
14
+ - time zones and currencies as sources of apparent movement;
15
+ - Amazon changes dated 2025–2026 that move spend or sales without any change by the advertiser: new placements (prompts, off-Amazon and creator placements, Alexa+, Rufus, Amazon Business), bid and budget mechanics, deprecations of recommendation endpoints, and the reserve-price mechanics Amazon described in its response to the FTC lawsuit of 2026-08-31;
16
+ - competitor entry and cost-per-click inflation, as Amazon's impression share and benchmark metrics expose them;
17
+ - demand and seasonality as Brand Analytics Search Query Performance exposes them, and the offer-side data in the Sales and Traffic report;
18
+ - price as a cause of an impression drop: the competitive external price, Pricing Health and the Featured Offer price rules, the 2026 removal of seller eligibility, and the Product Pricing reads that expose them;
19
+ - conversion-side causes on the listing and the offer: coupons and deals ending, price changes, ratings and review counts (including the 2026 review-sharing change across variations), main images, variation merges and splits, browse-node changes and stock, each with its SP-API or Keepa read;
20
+ - which Amazon surfaces are push-only (SP-API notifications, Marketing Stream) and the polling reads that stand in for them;
21
+ - the change history API and its limits;
22
+ - differences between console figures and API figures;
23
+ - named practitioners' diagnostic sequences, stated as theirs;
24
+ - research on multiplicative decomposition, root-cause attribution in advertising systems (including Amazon's own, public in DoWhy), tests of whether a movement exceeds noise (control charts for counts, CUSUM, EWMA, changepoints, seasonal anomaly detection), the noise floor of advertising measurement, and reserve prices.
25
+
26
+ It stays in its lane. These are owned elsewhere and only cross-referenced here:
27
+
28
+ - a new ASIN with no history and the launch readiness gates: `areas/launch.md`;
29
+ - campaign shapes: `areas/campaign-structure.md`;
30
+ - targets and match types: `areas/keyword-and-product-targeting.md`;
31
+ - search-term harvesting and negatives: `areas/search-terms-and-negatives.md`;
32
+ - bid strategies, placement adjustments and how a bid becomes a price: `areas/bids-and-placements.md`;
33
+ - budget rules, out-of-budget mechanics and monthly averaging: `areas/budgets-and-pacing.md`;
34
+ - event calendars and deals: `areas/seasons-and-deals.md`;
35
+ - organic rank and total sales: `areas/ads-organic-and-total.md`;
36
+ - which ad products a seller may run and what each may advertise: `beyond/ad-products-and-eligibility.md`;
37
+ - attribution windows and metric definitions in full: `beyond/metrics-and-attribution.md`;
38
+ - targets, break-even and profit: `beyond/goals-and-economics.md`;
39
+ - competitor conquest and brand defense: `beyond/brand-defense-and-competition.md`;
40
+ - Amazon's own automation and agent tools: `beyond/automation-and-amazon-tools.md`;
41
+ - the operations, headers and limits of the API surface: `method/ads-api-surface.md`;
42
+ - report requests, report lifecycles and retention in full: `method/reporting.md`;
43
+ - measuring whether a change caused an effect (before/after, holdouts, causal impact): `method/change-measurement.md`.
44
+
45
+ The line between this file and `method/change-measurement.md`: this file covers locating where a movement came from, which part of the identity moved, and which documented cause fits. Whether an intervention caused the movement is that file's.
46
+
47
+ ## Amazon's own rules and guidance
48
+
49
+ Each subsection marks RULE (a mechanism or constraint Amazon states as fact) or GUIDANCE (Amazon's advice). Verbatim quotes are given where the wording bears weight.
50
+
51
+ ### A. The parts of spend and sales, as Amazon defines them
52
+
53
+ RULE [official]. In unified reporting (the Amazon Ads API v1 reporting surface; "Metrics library", https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/library, is an index, and the definitions below are on its metric family pages "Clicks (Delivery)", "Impressions (Delivery)", "Costs" and "Purchases", all read 2026-11-09 through their markdown sources on the docs host):
54
+
55
+ - `metric.impressions` is "The number of times the ad was displayed. This excludes impressions that were deemed invalid by traffic quality filters. Impressions = gross impressions - invalid impressions". The 12-field Impressions family carries `metric.invalidImpressions` and `metric.invalidImpressionRate` but no gross-impressions field; gross impressions are the v3 column `grossImpressions` (section K).
56
+ - `metric.clicks` is gross clicks minus invalid clicks. The family carries `metric.grossClicks`, `metric.invalidClicks` and `metric.invalidClickRate`.
57
+ - `metric.ctr` is clicks divided by impressions.
58
+ - `metric.cpc` is cost divided by clicks. `metric.cpcConverted` is the same figure in the converted currency.
59
+ - `metric.totalCost` is the field whose v3 name is `spend` (v3 column `cost` for most report types).
60
+ - `metric.purchases`, `metric.sales` and `metric.unitsSold` are the attributed conversion counts and value. `metric.sales` requires `budgetCurrency.value`.
61
+ - `metric.purchaseRate` is purchases divided by **impressions**. The per-click rate is a separate field, `metric.purchaseRateOverClicks` (purchases from clicks divided by clicks), whose v3 name is "14 Day Conversion Rate".
62
+ - `metric.salesPromoted` and `metric.salesHalo` split attributed sales between the advertised product and other products (the `productRelevance.value` dimension carries the same split as promoted or halo).
63
+ - `metric.roas` is sales divided by cost.
64
+
65
+ RULE [official]. "Understand unified reporting" (Amazon Ads help, https://advertising.amazon.com/help/GMH8A8AJSH4ATV6T, read 2026-11-09) states: "While underlying measurement logic remains unchanged, metrics may appear under different names than in previous reports." It gives one example of a definition that widened: "Detail page views now includes promoted and halo conversions, while Detail page views (promoted) captures promoted only." It also says: "Conversion metrics now report conversions on traffic date and reflect the lookback window applicable to each campaign type." It states a shutdown date for console reports: "We are shutting down sponsored ads reports and Display, Video, and Audio campaigns reports by December 31, 2026."
66
+
67
+ RULE [official]. The v1 reporting overview ("Reporting overview" for the new reporting API, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/overview, read 2026-11-09) states that Sponsored Products base conversion metrics use a 7-day window for sellers and a 14-day window for vendors, and that other ad products use 14 days. It states that Sponsored Products and Sponsored Brands cost-per-click campaigns "will continue to report 0 for conversions from views". It defines reporting on the **traffic date**: a conversion is reported on the date of the ad interaction it is attributed to, not on the date of the purchase.
68
+
69
+ RULE [official]. "Placement report for Sponsored Products" (Amazon Ads help, https://advertising.amazon.com/help/G89VFUTQUWFFN2VU, read 2026-11-09) defines Clicks as "The number of times the ad was clicked, excluding general and sophisticated invalid traffic", Impressions likewise, Cost as "Cost is assessed per click or per 1,000 views depending on cost type", and CPC as "dividing total Cost ... by the total number of clicks". For sellers, Purchases and Sales are "within 7 days from the date that your ad was clicked"; for vendors, 14 days.
70
+
71
+ RULE [official]. Sponsored Display campaigns carry a `costType` of `cpc` or `vcpm`: "vcpm | The performance of this campaign is measured by the viewed impressions triggered by the ad. $1 is the minimum bid for vCPM." (Sponsored Display OpenAPI, https://advertising.amazon.com/API/docs/en-us/sponsored-display/3-0/openapi, read 2026-11-09). On a vCPM campaign, spend is not clicks × CPC.
72
+
73
+ [seat] On these definitions, the two identities hold exactly for cost-per-click campaigns, row by row:
74
+
75
+ - spend = impressions × (clicks / impressions) × (cost / clicks) = impressions × CTR × CPC;
76
+ - attributed sales = clicks × (purchases / clicks) × (sales / purchases) = clicks × CVR × AOV, where CVR is `metric.purchaseRateOverClicks` and AOV is sales per attributed purchase.
77
+
78
+ They do not hold where a row has zero clicks or zero purchases (the ratio is undefined), where conversions from views are included, or where the purchase rate read is `metric.purchaseRate` (per impression). A halo sale is part of `metric.sales`, so CVR × AOV on the advertised product alone differs from total attributed sales. The sum of row-level products is not the product of account-level ratios: a change in the mix of campaigns, placements or search terms moves account CTR, CPC and CVR even when no row's ratio moves.
79
+
80
+ ### B. The Featured Offer and stock gate
81
+
82
+ RULE [official]. Amazon Ads "FAQs" (https://advertising.amazon.com/resources/faq, read 2026-11-09): "If you create an ad for a product listing that is not eligible for the Featured Offer, your ad will not display ... Ads that are not eligible are flagged in the campaign manager." And: "If your product isn't the Featured Offer or is out of stock, your ad will not display."
83
+
84
+ RULE [official]. An Amazon staff reply ("Manny_Amazon") in the Seller Forums thread "Sponsored Products and Buy Box" (https://sellercentral.amazon.com/seller-forums/discussions/t/b55bc259-e982-43bb-a660-58ad413c95ea, public page, read 2026-11-09; the reply's timestamp is 2026-02-13): "Amazon will only display your Sponsored Products ads when your product is the Featured Offer at the time the customer views the ad." The same reply: "the advertising itself doesn't directly influence Featured Offer eligibility." [seat] On that wording the gate is evaluated at view time, so a product that holds the Featured Offer part of the day can serve part of the day.
85
+
86
+ RULE [official]. "How to improve your product detail page for advertising" (Amazon Ads library guide, https://advertising.amazon.com/library/guides/improve-your-products-for-advertising, read 2026-11-09): "Your products need to be in-stock in order to be the featured offer and be eligible for inclusion in a Sponsored Products campaign. If a product you are advertising goes out of stock, it will be automatically paused within your campaign."
87
+
88
+ RULE [official]. "Best practices for your Sponsored Products ads" (Amazon Ads library guide, https://advertising.amazon.com/library/guides/sponsored-products-best-practices, read 2026-11-09): "Sponsored Products only appear when your advertised items are in stock". It defines the Featured Offer as "an automated window that appears at the top right of a product detail page above the Buy Now button."
89
+
90
+ GUIDANCE [official]. The same two guides advise competitive pricing, Prime eligibility and positive reviews as factors in winning the Featured Offer and in ad performance.
91
+
92
+ RULE [official]. The offer side is measurable outside the ads API. The Selling Partner API "Sales and Traffic" report schema (amzn/selling-partner-api-models, `schemas/reports/sellerSalesAndTrafficReport.json`, https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerSalesAndTrafficReport.json, read 2026-11-09) carries `buyBoxPercentage`, "The percentage of page views where the buy box (the add to shopping cart link) appeared on the page for customers to add your product to their cart", together with `sessions`, `pageViews`, `unitSessionPercentage`, `orderedProductSales`, `unitsOrdered`, `averageSellingPrice` and `averageOfferCount`, at DAY, WEEK or MONTH granularity and PARENT, CHILD or SKU ASIN granularity, for one marketplace per request, with a start date no more than two years back. Its `refundRate` description reads "calculated by dividing unitsOrdered by unitsRefunded", which is the inverse of a refund rate as the field name implies.
93
+
94
+ ### C. Serving status in the Sponsored Products v3 API
95
+
96
+ RULE [official]. In the Sponsored Products v3 OpenAPI (https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/SponsoredProducts_prod_3p.json, the file the docs site renders at https://advertising.amazon.com/API/docs/en-us/sponsored-products/3-0/openapi/prod, read 2026-11-09), the list operations `POST /sp/campaigns/list`, `/sp/adGroups/list`, `/sp/productAds/list`, `/sp/keywords/list` and `/sp/targets/list` return an `extendedData` object when the request sets `includeExtendedDataFields: true`. That object holds `creationDateTime`, `lastUpdateDateTime`, `servingStatus` and `servingStatusDetails`, a list of objects with `name`, `message` and `helpUrl`. The same model's request field `includeExtendedDataFields` is described, on all nine list requests (the five above and the four negative keyword and negative targeting lists), as "Whether to get entity with extended data fields such as creationDate, lastUpdateDate, servingStatus"; the response schemas (`SponsoredProductsCampaignExtendedData` and its eight siblings) name the returned fields `creationDateTime` and `lastUpdateDateTime`, and no field named `creationDate` or `lastUpdateDate` occurs anywhere in the model (re-read 2026-11-09). A reader of the request description alone gets the shorter names; the fields a response carries are the `...DateTime` ones. Each operation's content type is entity-specific (for example `application/vnd.spCampaign.v3+json`, `application/vnd.spProductAd.v3+json`, `application/vnd.spTargetingClause.v3+json`).
97
+
98
+ The user-set `state` is a separate field. `SponsoredProductsEntityState` values: ARCHIVED, ENABLED, ENABLING, OTHER, PAUSED, PROPOSED, USER_DELETED.
99
+
100
+ The campaign serving status enum (`SponsoredProductsCampaignServingStatus`) lists: ACCOUNT_OUT_OF_BUDGET, ADVERTISER_ARCHIVED, ADVERTISER_EXCEED_SPENDS_LIMIT, ADVERTISER_OUT_OF_BUDGET, ADVERTISER_PAUSED, ADVERTISER_PAYMENT_FAILURE, ADVERTISER_POLICING_PENDING_REVIEW, ADVERTISER_POLICING_SUSPENDED, CAMPAIGN_ARCHIVED, CAMPAIGN_INCOMPLETE, CAMPAIGN_OUT_OF_BUDGET, CAMPAIGN_PAUSED, CAMPAIGN_STATUS_ENABLED, ENDED, OTHER, PENDING_REVIEW, PENDING_START_DATE, PORTFOLIO_ARCHIVED, PORTFOLIO_ENDED, PORTFOLIO_OUT_OF_BUDGET, PORTFOLIO_PAUSED, PORTFOLIO_PENDING_START_DATE, PORTFOLIO_STATUS_ENABLED, REJECTED.
101
+
102
+ The ad group serving status adds: AD_GROUP_ARCHIVED, AD_GROUP_INCOMPLETE, AD_GROUP_LOW_BID, AD_GROUP_PAUSED, AD_GROUP_POLICING_CREATIVE_REJECTED, AD_GROUP_POLICING_PENDING_REVIEW, AD_GROUP_STATUS_ENABLED.
103
+
104
+ The product ad serving status (`SponsoredProductsAdServingStatus`) carries the offer and listing causes as their own values: AD_ELIGIBLE, AD_INELIGIBLE, AD_LANDING_PAGE_NOT_AVAILABLE, AD_MISSING_DECORATION, AD_MISSING_IMAGE, AD_NOT_BUYABLE, AD_NOT_IN_BUYBOX, AD_NO_PURCHASABLE_OFFER, AD_OUT_OF_STOCK, AD_PAUSED, AD_POLICING_PENDING_REVIEW, AD_POLICING_SUSPENDED, AD_STATUS_LIVE, the AD_CREATION_FAILED and AD_CREATION_OFFLINE values, CAMPAIGN_ADS_NOT_DELIVERING, CAMPAIGN_ENDED, CAMPAIGN_PENDING_START_DATE, NOT_IN_BUYBOX, NO_INVENTORY, OUT_OF_STOCK, PIR_RULE_EXCLUDED, SECURITY_SCAN_PENDING_REVIEW, SECURITY_SCAN_REJECTED, STATUS_UNAVAILABLE, the TARGETING_CLAUSE_* values, and the campaign and portfolio values above.
105
+
106
+ The reason enum for an ad (`SponsoredProductsAdServingStatusReason`) adds the finer causes: ADULT_PRODUCT, ASIN_QUARANTINED, BRAND_REMOVED, CBA_NOT_SUPPORTED, CLOSED_GL, CP_INELIGIBLE, CP_INELIGIBLE_ASIN, CP_INELIGIBLE_UNKNOWN, CP_INELIGIBLE_VENDOR, INELIGIBLE_CONDITION, INVENTORY_INCOMPLETE, ITEM_MISSING, LANDING_PAGE_INELIGIBLE, OFFER_MISSING_DETAIL, RESTRICTED_GL, SKU_DEFECTIVE, VARIATION_PARENT, and a moderation set ending in `_PV_DETAIL`: MODERATION_ADULT_NOVELTY, ADULT_PRODUCT, ADULT_SOFTLINES, CLAIM_WEIGHTLOSS, CONTENT_NUDITY, CONTENT_PROVOCATIVE, CONTENT_SMOKING, CRITICAL_EVENTS, ERROR_404, GRAPHICAL_SEXUAL_IMAGES, HFSS_PRODUCT, LANGUAGE_OFFENSIVE, NOT_COMPLIANT_TO_AD_POLICY and SMOKING_RELATED, each prefixed `MODERATION_` and suffixed `_PV_DETAIL`.
107
+
108
+ Keyword and product-target serving status adds TARGETING_CLAUSE_ARCHIVED, TARGETING_CLAUSE_BLOCKED, TARGETING_CLAUSE_PAUSED, TARGETING_CLAUSE_POLICING_SUSPENDED and TARGETING_CLAUSE_STATUS_LIVE.
109
+
110
+ The full SP product-ad serving status enum has 73 values; besides those listed it carries ADVERTISER_ACCOUNT_OUT_OF_BUDGET, ADVERTISER_STATUS_ENABLED, ELIGIBLE, INELIGIBLE, LANDING_PAGE_NOT_AVAILABLE, MISSING_DECORATION and MISSING_IMAGE.
111
+
112
+ RULE [official]. Sponsored Brands v4 (https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/4-0/openapi.json, listed in the docs host's `contracts.json`, read 2026-11-09) has `CampaignServingStatus` (27 values), `AdGroupServingStatus` (34) and `AdServingStatus` (39). The only values in these three that appear in none of the SP v3 serving status enums are ADVERTISER_OUT_OF_PREPAY_BALANCE and UNKNOWN. Sponsored Display ("Sponsored Display OpenAPI", read 2026-11-09) has an 18-value campaign `servingStatus` that includes STATUS_UNAVAILABLE, INELIGIBLE, AD_POLICING_PENDING_REVIEW and ADVERTISER_ACCOUNT_OUT_OF_BUDGET. The three ad products do not share one enum.
113
+
114
+ [seat] The value names put the level of the cause in the name: ADVERTISER_ and ACCOUNT_ values are account-wide, PORTFOLIO_ values cover every campaign in a portfolio, CAMPAIGN_ and AD_GROUP_ values their own level, and AD_ values one advertised product. A campaign can read CAMPAIGN_STATUS_ENABLED while every product ad under it reads AD_NOT_IN_BUYBOX or AD_OUT_OF_STOCK; the campaign status alone does not show that.
115
+
116
+ ### D. Delivery status and delivery reasons in the Amazon Ads API v1
117
+
118
+ RULE [official]. The Amazon Ads API v1 merged OpenAPI (https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALLMerged_prod_3p.json, read 2026-11-09) separates two concepts on Campaign, AdGroup, Ad, AdExtension and Target:
119
+
120
+ - `state` is user-defined. Values: ARCHIVED ("permanently stopped ... Terminal end state"), DRAFT, ENABLED ("set active by user and eligible for delivery"), PAUSED ("stopped by user"), PROPOSED.
121
+ - `status` is delivery, with `deliveryStatus`, `deliveryReasons` (up to 50) and `marketplaceSettings`. `DeliveryStatus` values: DELIVERING, LIMITED ("partial delivery ... global resources that have different delivery status across marketplaces"), NOT_DELIVERING, UNAVAILABLE.
122
+
123
+ The query operations are `POST /adsApi/v1/query/campaigns`, `/query/adGroups`, `/query/ads`, `/query/targets` and `/query/adExtensions`, with filters such as `stateFilter`, `campaignIdFilter`, `adProductFilter`, `portfolioIdFilter` and `nameFilter`, `maxResults` up to 1000, and the optional headers `Amazon-Ads-AccountId` and `Amazon-Advertising-API-Scope`.
124
+
125
+ The `DeliveryReason` enum is one list across ad products. Grouped by layer (the grouping is this seat's; the values are Amazon's):
126
+
127
+ - account and billing: ADVERTISER_ARCHIVED, ADVERTISER_INELIGIBLE, ADVERTISER_OUT_OF_BUDGET (described as "out of budget for Sponsored Products campaigns for sellers"), ADVERTISER_OUT_OF_POSTPAY_CREDIT_LIMIT, ADVERTISER_OUT_OF_POSTPAY_MONTHLY_BUDGET, ADVERTISER_OUT_OF_PREPAY_BALANCE, ADVERTISER_PAUSED, ADVERTISER_PAYMENT_FAILURE, ADVERTISER_POLICING_PENDING_REVIEW, ADVERTISER_POLICING_SUSPENDED, SPEND_LIMIT_EXCEEDED, OUT_OF_REWARD_BUDGET;
128
+ - portfolio: PORTFOLIO_ARCHIVED, PORTFOLIO_END_DATE_REACHED, PORTFOLIO_OUT_OF_BUDGET, PORTFOLIO_PAUSED, PORTFOLIO_PENDING_START_DATE;
129
+ - campaign: CAMPAIGN_ARCHIVED, CAMPAIGN_END_DATE_REACHED, CAMPAIGN_INCOMPLETE, CAMPAIGN_OUT_OF_BUDGET, CAMPAIGN_PAUSED, CAMPAIGN_PENDING_REVIEW, CAMPAIGN_PENDING_START_DATE, CAMPAIGN_POLICING_SUSPENDED, CAMPAIGN_REJECTED;
130
+ - ad group: AD_GROUP_ARCHIVED, AD_GROUP_ENDED, AD_GROUP_INCOMPLETE, AD_GROUP_INELIGIBLE_GOAL_KPI, AD_GROUP_LOW_BID, AD_GROUP_MISSING_CONVERSION_TRACKING_SELECTIONS, AD_GROUP_PAUSED, AD_GROUP_PENDING_REVIEW, AD_GROUP_PENDING_START_DATE, AD_GROUP_POLICING_PENDING_REVIEW, AD_GROUP_POLICING_SUSPENDED, AD_GROUP_REJECTED, and the AD_GROUP_TOO_FEW_ and AD_GROUP_TOO_MANY_ values; AD_GROUPS_NOT_RUNNING;
131
+ - ad and creative: AD_ARCHIVED, AD_CREATION_FAILED, AD_CREATION_IN_PROGRESS, AD_CREATIVES_NOT_RUNNING, AD_INELIGIBLE, AD_MISSING_DECORATION, AD_MISSING_IMAGE, AD_NOT_APPROVED_FOR_ALL_AD_GROUPS, AD_NOT_ASSOCIATED_WITH_AD_GROUP, AD_NOT_DELIVERING, AD_PAUSED, AD_POLICING_PENDING_REVIEW, AD_POLICING_SUSPENDED, CREATIVE_MISSING_ASSET, CREATIVE_PENDING_REVIEW, CREATIVE_REJECTED, and the AD_EXTENSION_ARCHIVED, _PAUSED, _POLICING_PENDING_REVIEW and _POLICING_SUSPENDED values;
132
+ - offer and listing: NOT_BUYABLE, NOT_IN_BUYBOX, NO_INVENTORY, NO_PURCHASABLE_OFFER, OUT_OF_STOCK, LANDING_PAGE_INELIGIBLE, LANDING_PAGE_NOT_AVAILABLE, BRAND_INELIGIBLE, PIR_RULE_EXCLUDED;
133
+ - moderation and policy: the MODERATION_*_POLICY_VIOLATION values, MODERATION_ERROR_404, MODERATION_NOT_COMPLIANT_TO_AD_POLICY, NOT_IN_POLICY, SECURITY_SCAN_PENDING_REVIEW, SECURITY_SCAN_REJECTED;
134
+ - target: TARGET_ARCHIVED, TARGET_BLOCKED, TARGET_PAUSED, TARGET_POLICING_SUSPENDED;
135
+ - catch-alls: OTHER, STATUS_UNAVAILABLE.
136
+
137
+ RULE [official]. The v1 Campaign model also carries `startDateTime`, `endDateTime`, `budgets`, `optimizations`, `siteRestrictions`, `countries`, `marketplaces`, `portfolioId`, `creationDateTime`, `lastUpdatedDateTime` and `ineligibleAutomatedTargetingTactics`. `lastUpdatedDateTime` dates the most recent change to the entity without saying what changed.
138
+
139
+ RULE [official]. "Campaign management" for v1 went generally available on 2025-12-01 ("Release notes", https://advertising.amazon.com/API/docs/en-us/release-notes/index, read 2026-11-09).
140
+
141
+ ### E. Product eligibility, as the Eligibility API reports it
142
+
143
+ RULE [official]. The Eligibility OpenAPI (https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Eligibility_prod_3p.json, read 2026-11-09) defines `POST /eligibility/product/list`. Its description: "Requests are permitted only for products sold by the merchant associated with the profile." A response can return several SKUs for one ASIN. Each result carries an `EligibilityStatus` with a `name` and a `severity`:
144
+
145
+ - `name` values: ADULT_PRODUCT, CLOSED_CATEGORY, INELIGIBLE_CONDITION, INELIGIBLE_OFFER, INELIGIBLE_PRODUCT_COST, LISTING_SUPRESSED (spelled so in the model), MISSING_IMAGE, MISSING_TITLE, NOT_IN_BUYBOX, OUT_OF_STOCK, RESTRICTED_CATEGORY, VARIATION_PARENT;
146
+ - `severity` values: INELIGIBLE ("cannot be included in an advertisement") and ELIGIBLE_WITH_WARNING ("may not receive impressions").
147
+
148
+ [seat] ELIGIBLE_WITH_WARNING is the documented state for a product that is in a campaign and allowed, but may draw no impressions. A NOT_IN_BUYBOX or OUT_OF_STOCK warning on an ASIN that was serving is a documented mechanism for a fall in impressions without any campaign change. The product-level detail is in `areas/launch.md` section C; this file uses it as one layer of a diagnosis.
149
+
150
+ RULE [official]. The same model defines `POST /eligibility/programs` (header `Amazon-Ads-AccountId`), which answers whether the account may run an ad program. Its reason codes include ACCOUNT_SUSPENDED, ADS_TERMS_NOT_ACCEPTED, BILLING_ACCOUNT_NOT_FOUND, EXPIRED_PAYMENT_METHOD, NOT_BRAND_REPRESENTATIVE, PAYMENT_METHOD_NOT_FOUND, PAYMENT_METHOD_NOT_VALID, PREPAY_BALANCE_TOO_LOW, TAX_INFO_NOT_COMPLETE and VETTING_FAILURE, at the levels INELIGIBLE and INELIGIBLE_WITH_RESOLUTION.
151
+
152
+ RULE [official]. Listing state on the selling side is a separate system. The Listings Items API model 2021-08-01 (`models/listings-items-api-model/listingsItems_2021-08-01.json`, https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/listings-items-api-model/listingsItems_2021-08-01.json, read 2026-11-09) gives a listing summary `status` of BUYABLE and/or DISCOVERABLE, and an `Issue` object with `code`, `message`, `severity` (ERROR, WARNING, INFO), `categories` and `enforcements.actions`, whose actions are `LISTING_SUPPRESSED` ("takes down the current listing item's buyability"), `ATTRIBUTE_SUPPRESSED`, `CATALOG_ITEM_REMOVED` ("all offers against it in the applicable Amazon store are non-buyable") and `SEARCH_SUPPRESSED` ("the catalog item is hidden from search results"). The Selling Partner API notification schemas in the same repository include `ListingsItemStatusChangeNotification`, `ListingsItemIssuesChangeNotification`, `AnyOfferChangedNotification`, `FBAInventoryAvailabilityChangeNotification` and `PricingHealthNotification`, each a pushed event for one of these layers, delivered only to an Amazon SQS queue or an Amazon EventBridge destination (section U).
153
+
154
+ ### F. Moderation
155
+
156
+ RULE [official]. The Moderation OpenAPI (https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Moderation_prod_3p.json, read 2026-11-09) defines `POST /moderation/results` (content type `application/vnd.moderationresultsrequest.v4.1+json`, permission `advertiser_campaign_view`, `maxResults` up to 10) for the ad programs SB_PRODUCT_COLLECTION, SB_STORE_SPOTLIGHT, SB_VIDEO, SPONSORED_DISPLAY and SPONSORED_PRODUCTS.
157
+
158
+ - `moderationStatus` values: APPROVED, FAILED, IN_PROGRESS, REJECTED.
159
+ - When IN_PROGRESS, `etaForModeration` gives an expected completion time in UTC.
160
+ - When REJECTED, `policyViolations` lists `policyDescription`, `policyLinkUrl` and the violating text, image, video or ASIN contents, with evidence positions.
161
+ - `componentModerationResults` (image, text, video) exists only for SPONSORED_PRODUCTS.
162
+
163
+ RULE [official]. "Troubleshoot your campaign status" (Amazon Ads help, https://advertising.amazon.com/help/GEC8BVH43CU9UNYH, read 2026-11-09): "Campaign review can take up to 3 business days". The help pages "General requirements" (https://advertising.amazon.com/help/GEGABVAQZ3P46HBK), "Prohibited content across all supply" (https://advertising.amazon.com/help/GCYTNMH84AJ537JG) and "Prohibited products and services across all supply" (https://advertising.amazon.com/help/GYTHJ2AC4RFHTDZU), all read 2026-11-09, are the policy texts a rejection cites; "General requirements" and "Prohibited products and services across all supply" say that "Additional country-specific and supply-specific restrictions may apply." (the sentence was not found on "Prohibited content across all supply").
164
+
165
+ ### G. Account, payment and billing
166
+
167
+ RULE [official]. "Resolve a payment failure" (Amazon Ads help, https://advertising.amazon.com/help/G2SQRLBPB8TY587E, read 2026-11-09):
168
+
169
+ - "When Amazon can't charge your default payment method, your campaigns will pause."
170
+ - For sellers paying from the seller account: "Advertising charges will be deducted from the Funds Available in your Seller Account- not your Total Balance. If you've recently sold or shipped products, it can take up to 7 days for proceeds from a sale to appear. If your Amount due exceeds the Funds available, your payment will fail (even if your Total Balance appears to have enough money to cover the charges)."
171
+ - "We retry the payment at a fixed frequency. The payment won't go through until the next attempt where there's sufficient balance."
172
+ - With a backup card, "Amazon will try charging your backup payment method without pausing your campaigns."
173
+ - After the method is updated, "we automatically retry your payment and reactivate your account if the payment is successful."
174
+ - For single global accounts, the outcome is shown per country: "If some countries fail: review the failure reasons shown for each country."
175
+
176
+ [seat] A payment failure stops every campaign in the account at once, and a seller-balance failure can arise from reserves and holds while the total balance looks sufficient. Recovery is on Amazon's retry schedule, so a pause and a resume can both happen without any action in the ads account on that day.
177
+
178
+ RULE [official]. The Billing OpenAPI (https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/AdvertisingBilling_prod_3p.json, read 2026-11-09):
179
+
180
+ - `POST /billing/statuses` returns a `billingStatusCode`: ACCOUNT_BILLING_ISSUE, INVALID_PAYMENT_REGISTRATION, PAYMENT_METHOD_EXPIRED, PAYMENT_METHOD_VERIFICATION_FAILED, PENDING_BILLING_REGISTRATION, PENDING_PAYMENT_REGISTRATION, PENDING_TAX_REGISTRATION, RESERVE_ORDER_BALANCE_TOO_LOW, STORED_VALUE_BALANCE_TOO_LOW, VALID_BILLING_STATUS.
181
+ - `POST /billing/notifications` returns notifications with a `notificationName` (values include CREDIT_CARD_EXPIRED, CREDIT_CARD_PAYMENT_FAILURE_CAUSED_SUSPENSION, SELLER_ACCOUNT_PAYMENT_FAILURE_CAUSED_SUSPENSION, DEDUCT_FROM_PROCEEDS_PAYMENT_FAILURE_CAUSED_SUSPENSION, SAFETY_BUDGET_BREACH_SUSPENSION, POLICY_VIOLATIONS, SUSPICIOUS_ACTIVITY, PREPAY_INSUFFICIENT_BALANCE, BAD_DEBT_SUSPENSION, INACTIVE_SELLER_ACCOUNT_CAUSED_SUSPENSION; the 73-value list also carries SELLER_ACCOUNT_BALANCE_LOW, SELLER_ACCOUNT_BALANCE_RESERVED, SELLER_ACCOUNT_INSUFFICIENT_AVAILABLE_BALANCE_CAUSED_SUSPENSION and SELLER_ACCOUNT_INSUFFICIENT_GROSS_BALANCE_CAUSED_SUSPENSION, which name the funds-available case of "Resolve a payment failure"), an `impact` (CAMPAIGNS_SUSPENDED or NO_IMPACT), a `severity` (ALERT, WARNING, INFO), a `suspensionDate`, a `paymentDueDate`, a `title` and a `description`.
182
+ - Invoices are at `/invoices` and `/invoiceSummaries/list`.
183
+
184
+ [seat] `impact: CAMPAIGNS_SUSPENDED` with a `suspensionDate` is a dated record of when billing stopped serving. It is the only documented API field in this survey that dates an account-wide stop.
185
+
186
+ ### H. Budgets at every level
187
+
188
+ RULE [official]. "Troubleshoot your campaign status" (https://advertising.amazon.com/help/GEC8BVH43CU9UNYH, read 2026-11-09):
189
+
190
+ - Out of budget: campaigns "aren't eligible to serve impressions until midnight when the daily budget is reset".
191
+ - Budget changes take effect after a delay: "Allow time for budget changes to take effect (typically 1-2 hours)".
192
+ - A campaign can be stopped by a portfolio budget cap, or by the Sponsored Products daily budget cap set in Advertising Settings, as well as by its own budget.
193
+ - Under "Out of Budget" the page addresses off-site cost: "For potential off-site Cost (formerly known as Spend on sponsored ads), account for additional budget monitor this using a Placement Report as these metrics are not visible in Campaign Manager" (verbatim, including its missing punctuation). That off-Amazon clicks draw the same campaign budget is stated outright by PPC Land, citing a later Amazon support article this seat could not reach (section N).
194
+ - "Paused: Your campaign's end date has passed". Archived campaigns "can't be enabled or paused".
195
+
196
+ RULE [official]. "Portfolio budgets" (Amazon Ads help, https://advertising.amazon.com/help/GU7E77PGF96FMW3X, read 2026-11-09): portfolio budget caps "help to ensure that the total spend of campaigns in your portfolio doesn't exceed your set budget" and control "if and when" the portfolio's campaigns serve.
197
+
198
+ RULE [official]. The Profiles API model (https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/profiles/3-0/openapi.yaml, read 2026-11-09) carries a profile `dailyBudget`: "Note that this field applies to Sponsored Product campaigns for seller type accounts only. Not supported for vendor type accounts." [seat] The v1 description of ADVERTISER_OUT_OF_BUDGET ("out of budget for Sponsored Products campaigns for sellers") matches that scope, so this field is most likely the account-level cap behind ACCOUNT_OUT_OF_BUDGET and ADVERTISER_OUT_OF_BUDGET and the "Sponsored Products daily budget cap" of Advertising Settings; no page read states the link.
199
+
200
+ RULE [official]. Sponsored Products v3 budget operations (SP v3 OpenAPI, read 2026-11-09):
201
+
202
+ - `POST /sp/campaigns/budget/usage` (content type `application/vnd.spcampaignbudgetusage.v1+json`, up to 100 campaign IDs) returns `budget`, `budgetUsagePercent` (spend divided by available budget) and `usageUpdatedTimestamp`.
203
+ - `POST /sp/campaigns/budgetRecommendations` (content type `application/vnd.budgetrecommendation.v3+json`) returns `sevenDaysMissedOpportunities` with `percentTimeInBudget`, estimated missed impressions, clicks and sales as lower and upper bounds, and a `startDate` and `endDate` (YYYYMMDD, local time). The model calls the estimates not guaranteed. The `percentTimeInBudget` field is described as "a decimal ranging from 0 to 1", the operation description says "value -1 means we don’t have enough information to compute the campaign’s percent time in budget", and the model's own response example shows `"percentTimeInBudget": 65.2`; three scales sit side by side in one model.
204
+ - Budget rules are at `/sp/campaigns/{campaignId}/budgetRules`; optimization rules at `/sp/rules/optimization/search`.
205
+
206
+ RULE [official]. Release note "Automatically share unspent campaign budget with budget exhausted campaigns in a portfolio - updated" (2025-07-19; first posted 2025-07-07; "Release notes", read 2026-11-09): with `campaignUnspentBudgetSharing` set to ENABLED inside `budgetControls`, "This intelligent budget sharing system allows high-performing campaigns to spend up to twice their daily budget by tapping into unspent campaign budget from previous days in the month. This all happens while staying within your total monthly portfolio budget."
207
+
208
+ RULE [official]. Amazon Marketing Stream v1 ("Amazon Marketing Stream overview", https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/overview, read 2026-11-09) sends budget consumption updates, "which notify you whenever your budget allotment changes by 5% or more", and entity-change messages for campaign, ad group, ad and targeting entities. Stream v1 is listed for shutoff after 2027-06-30 (section K).
209
+
210
+ [seat] Budget mechanics belong to `areas/budgets-and-pacing.md`. For diagnosis, the budget layer has four owners (campaign, portfolio, account cap, payment), each with its own status value, and a fifth draw on the same budget that the console does not show (off-Amazon clicks).
211
+
212
+ ### I. Campaign status as the console names it
213
+
214
+ RULE [official]. "Troubleshoot your campaign status" (https://advertising.amazon.com/help/GEC8BVH43CU9UNYH, read 2026-11-09) names the statuses a console user sees: Delivering, Out of Budget, Payment Failure, Paused (including "Your campaign's end date has passed"), Pending Review, Rejected, Scheduled, Suspended, Draft and Archived. These names differ from the API enum values in sections C and D; the help page is the console vocabulary and the OpenAPI models are the API vocabulary.
215
+
216
+ ### J. Change history
217
+
218
+ RULE [official]. The Change history OpenAPI (https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Changehistory_prod_3p.json, read 2026-11-09) defines `POST /history`. Its model text: "This API only returns change history for Sponsored Products and Sponsored Brands campaigns. Changes for Sponsored Display campaigns are not returned. Also, it doesn't return information about who made the change."
219
+
220
+ - Event types: AD, AD_GROUP, CAMPAIGN, KEYWORD, NEGATIVE_KEYWORD, PRODUCT_TARGETING, THEME. THEME events need the Accept type `application/vnd.historyresponse.v1.1+json`.
221
+ - Request filters: BUDGET_AMOUNT, IN_BUDGET, END_DATE, START_DATE, PLACEMENT_GROUP and SMART_BIDDING_STRATEGY on campaigns; BID_AMOUNT on ad groups; NAME on campaigns and ad groups; STATUS on campaigns, ad groups, ads, keywords, product targets and negative keywords.
222
+ - Up to 10 event type IDs and 10 parents per event type per request.
223
+ - `fromDate`: "Max 90 days of history". `fromDate`, `toDate` and each event's `timestamp` are Unix times (the model's example uses milliseconds, such as `1704195640000`); the model describes them as UTC.
224
+ - Each returned event has `entityType`, `entityId`, `changeType`, `previousValue`, `newValue`, `timestamp` and `metadata`. The model's table of change types: on CAMPAIGN, STATUS, IN_BUDGET, PORTFOLIO, BUDGET_AMOUNT, NAME, START_DATE, END_DATE, SMART_BIDDING_STRATEGY, PLACEMENT_GROUP, CREATED, IS_PREMIUM_BID_ENABLED, PORTFOLIO_ID, BUDGET_DOCUMENT_VERSION, IS_PROCESSING, RULE_BASED_BUDGET_VALUE, APPLICABLE_RULE_NAME, APPLICABLE_RULE_ID, CREATION_DATE and AUTO_TARGETED; on AD_GROUP, STATUS, NAME and DEFAULT_BID_AMOUNT; on AD and NEGATIVE_KEYWORD, STATUS; on KEYWORD and PRODUCT_TARGETING, STATUS and BID_AMOUNT.
225
+ - Values: STATUS moves among CREATED, ENABLED, PAUSED and ARCHIVED; IN_BUDGET is "true or false"; amounts are "in marketplace currency"; SMART_BIDDING_STRATEGY is OPTIMIZE_FOR_SALES, LEGACY or MANUAL; PLACEMENT_GROUP is a "number as percent", with `metadata.placementGroupPosition` of DETAIL_PAGE or TOP_OF_SEARCH. `metadata` also carries `campaignBudgetType` (DAILY or LIFETIME_BUDGET), the keyword text and match type, and the product-targeting expression.
226
+ - `count` defaults to 100, minimum 50, maximum 200. `pageOffset` is capped at 10,000 and cannot be combined with `nextToken`.
227
+
228
+ [opinion] The python-amazon-ad-api documentation for this operation ("Change History", https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html, read 2026-11-09) maps `POST /history` to a `get_history` wrapper at media types `vnd.historyresponse.v1.0` and `v1.1`, and notes that THEME is the only event type that needs 1.1 (at 1.0 the service answers 400).
229
+
230
+ [opinion] Luis Rijo, PPC Land, "Amazon rolls out a new history feature for Sponsored Products and Sponsored Brands campaigns" (2020-01-20, https://ppc.land/amazon-rolls-out-a-new-history-feature-for-sponsored-products-and-sponsored-brands-campaigns/, read 2026-11-09): the console History tab shows "a summary of all changes made to campaign settings in the past 90 days", at campaign level and in the Sponsored Products ad group view.
231
+
232
+ [seat] Three limits shape what the change history can explain. It holds no Sponsored Display changes. It does not say who changed something, so it does not separate a seller's edit from an agency's, a rule's or a tool's. And it holds only changes to the advertiser's own entities: none of the external causes in sections B, K, N and O appear in it. IN_BUDGET is a campaign change type with the values true and false, which puts budget-state transitions (a campaign running out of budget and coming back) into the same feed as edits. The placement-adjustment change type names top of search and detail page positions only; this survey found no rest-of-search position in that table, although rest-of-search adjustments exist (see `areas/bids-and-placements.md`).
233
+
234
+ ### K. Data that changes after it is first reported
235
+
236
+ RULE [official]. "Sponsored ads reporting FAQ (version 3)" (https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/faq, read 2026-11-09):
237
+
238
+ - "Initial impression and click data is available using the API within 12 hours"; impression and click data can change for up to three days as traffic is validated; "We recommend retrieving click and impression data again after three days".
239
+ - Conversion data first appears within 24 hours and is restated at 1, 7 and 28 days; with a 14-day window, changes can continue up to 42 days.
240
+ - A report can take up to 3 hours to generate. Amazon advises one or two reports per advertiser per day per report type.
241
+
242
+ RULE [official]. "Reporting overview" (https://advertising.amazon.com/API/docs/en-us/guides/reporting/overview, read 2026-11-09):
243
+
244
+ - Invalid traffic is monitored "for up to 30 days"; "We recommend waiting at least 5 days for the most accurate click data".
245
+ - Conversions are "subject to change for up to 60 days back"; Amazon advises re-retrieving monthly.
246
+ - v3 reporting, Amazon Marketing Stream (Version 1), Version 2 reporting (sponsored ads) and Amazon DSP reporting are each listed "To be shutoff after June 30, 2027". Amazon Marketing Stream Version 2 is not on that list; the page calls it "the primary programmatic reporting surface for Amazon Ads" and says it backfills up to 70 days on subscription creation.
247
+
248
+ RULE [official]. "Traffic validation" (Amazon Ads help, https://advertising.amazon.com/help/GBYPYH79NGJJ5JPS, read 2026-11-09):
249
+
250
+ - Invalid traffic is filtered before the bid and after the impression.
251
+ - "we monitor traffic for up to 30 days", and invalid traffic is "automatically removed from invoices and advertiser reports"; "metrics and invoices may be restated".
252
+ - The page names a pattern that can indicate invalid traffic Amazon did not catch: "if you notice a significant drop in IVR, with an anomalous increase in select campaign metrics like click-through rate (CTR) or Impressions or Clicks, it could suggest undetected IVT was billed to your campaign. For Sponsored Ads campaigns, a drop in Conversion Rate (CVR) along with the above changes in metrics, is a higher confidence indicator for undetected IVT."
253
+ - An invalid-traffic rate on its own "doesn't indicate undetected IVT".
254
+
255
+ RULE [official]. "Reconcile invalid traffic (IVT) related discrepancies" (Amazon Ads help, https://advertising.amazon.com/help/GTUSCE79ZDJSR5VZ, read 2026-11-09): "Reconcile gross metrics before IVT metrics to rule out other measurement-related discrepancies." The page is written for Display, Video, and Audio campaigns against third-party measurement, and treats a discrepancy of up to 5% as "within the acceptable range"; "Traffic validation" likewise expects "a small discrepancy (up to 5%)" between Amazon and third-party reported IVR.
256
+
257
+ RULE [official]. v3 "Gross and invalid traffic" reports (https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/gross-and-invalid-traffic, read 2026-11-09): report type IDs `spGrossAndInvalids`, `sbGrossAndInvalids` and `sdGrossAndInvalids`; group by campaign; a 365-day maximum range and 365-day retention; columns `grossImpressions`, `grossClickThroughs`, `invalidImpressions`, `invalidClickThroughs`, `invalidImpressionRate`, `invalidClickThroughRate` and `campaignStatus`.
258
+
259
+ RULE [official]. Amazon Marketing Stream v2 ("Amazon Marketing Stream v2 overview", https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/v2/overview, read 2026-11-09): each record carries the total value for its key, and a restated record is delivered again with the new total. Amazon Marketing Stream v2 and the v1 reporting API became generally available on 2026-09-30 (release notes).
260
+
261
+ [seat] Restatement moves the past: a day's clicks and cost can fall as invalid traffic is removed, and a day's sales can rise as late conversions are attributed to the traffic date. A comparison of a recent window with an older window compares an unsettled figure with a settled one. The 12-hour, 3-day, 5-day, 30-day, 42-day and 60-day figures above are Amazon's, are on two pages that do not use the same numbers, and are for human readers only.
262
+
263
+ ### L. Missing values, report warnings and incidents
264
+
265
+ RULE [official]. "Helpful concepts" for the v1 reporting API (https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/helpful-concepts, read 2026-11-09): a field may be empty or null because the metric does not apply to the row's ad type, because the attribute was never configured, because "Data is not yet available due to processing timelines", or because "Access restrictions prevent the value from being included for your account". "A missing value does not imply zero. If a numeric metric has a measured value of zero, it will be explicitly reported as `0`, not as an empty string or `null`."
266
+
267
+ RULE [official]. The v1 `Report` object (merged OpenAPI, read 2026-11-09) carries `warnings`, each with a `field` and `warningCodes` from DATE_LIMITED ("The field has no data for part of the requested period"), NO_PERMISSION ("One or more accounts in the report's scope do not have access to the field") and PENDING_DEPRECATION. "New features" for v1 reporting (read 2026-11-09) gives DATE_LIMITED's cause: "The field began collecting data on a later date than your report's start date", and says warnings are non-fatal, `null` when there are none, and an open-ended list to which new codes may be added; it also carries `failureCode`, `failureReason`, `currencyOfView` and `completedReportParts` (each part a `url` with a `urlExpirationDateTime`). Report status values: COMPLETED, FAILED, PENDING, PROCESSING. The release notes date warning signals to 2026-10-05.
268
+
269
+ RULE [official]. v1 retention by time grain ("Dates and historical data retention" for the v1 reporting API, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dates, read 2026-11-09), given as maximum data history / maximum range: hour 14 days / 14 days; date 24 months / 120 days; week, day and day-of-week 24 months / 15 months; month 6 years / 25 months; year and date range 6 years. "Understand unified reporting" says: "To avoid accidental partial reporting, review historical data and max data ranges before selecting your report date range." DATE_LIMITED is defined by a field's own start of collection (for example the benchmark dimensions, available from 2025-06-01), not by these retention limits; no page read names a warning for a range that exceeds retention. These figures are for human readers only.
270
+
271
+ RULE [official]. The Amazon Ads status page (https://status.ads.amazon.com/, with its machine-readable files https://status.ads.amazon.com/status.json, https://status.ads.amazon.com/history.json and https://status.ads.amazon.com/history.schema.json, read 2026-11-09) publishes incidents by region and category. The schema's categories are "Sponsored ads", "Amazon DSP", "Measurement & Reporting", "Status announcement", "Brand content" and "Amazon Marketing Stream"; its subcategories include "Ad delivery", "Campaign creation", "Campaign management", "Creative management", "Bulksheets", "Reports", "Stores", "Posts" and "Streams". Each record has a `systemImpacted`, a start and end time, and `statusMessages` typed Disrupted, Degraded, Informational or Resolved. `history.json` read on 2026-11-09 holds 15 records, dated 2026-06-03 to 2026-11-04, in the categories "Amazon Marketing Stream" and "Measurement & Reporting" only. They include reporting incidents posted for each of NA, EU and FE on 2026-08-13 to 08-15 and on 2026-09-01 to 09-03, with the message "No campaign metrics have been lost, and any missing information will be available after resolution", a Europe attribution-metrics incident on 2026-11-04, and Stream interruptions for Amazon DSP in all three regions on 2026-06-03 to 06-08. `status.json` read at 2026-11-09T09:40Z listed no open incidents.
272
+
273
+ [seat] A reporting incident moves the figures a tool reads without moving delivery. An "Ad delivery" incident moves delivery itself. The two are different categories on the same page.
274
+
275
+ ### M. Time zones and currencies
276
+
277
+ RULE [official]. The Profiles model (read 2026-11-09) defines `timezone` as "The time zone used for all date-based campaign management and reporting". Profiles in the US, CA and MX use America/Los_Angeles; BR America/Sao_Paulo; DE, ES, FR and IT Europe/Paris; UK Europe/London; JP Asia/Tokyo; AU Australia/Sydney. Each profile has a `currencyCode`.
278
+
279
+ RULE [official]. "Dates and historical data retention" for the v1 reporting API (read 2026-11-09): date dimensions aggregate in "each campaign timezone" (exposed as `timeZone.value`), and Amazon states that normalization to UTC is planned. The v3 column `advertiserTimezone` is "The time zone the advertiser uses for reporting and ad serving purposes" ("Columns", https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/columns, read 2026-11-09). The change history uses UTC epoch times (section J).
280
+
281
+ RULE [official]. Currency in the v1 reporting API ("Budget currency" and "Converted currency" dimension pages, read 2026-11-09): monetary metrics such as `metric.sales` and `metric.cpc` require `budgetCurrency.value` (v3 `campaignBudgetCurrencyCode`); `convertedCurrency.value` and the report's `currencyOfView` express the figures in one currency, with the `...Converted` metrics carrying the converted values.
282
+
283
+ [seat] A day in a report is a day in the campaign's time zone, a budget resets at that time zone's midnight, and a change-history timestamp is UTC. For a US profile the Pacific day boundary is seven or eight hours off UTC depending on daylight saving time, so an edit made late on a Pacific day falls on the next UTC date. An account that spans marketplaces sums days that begin at different instants and figures in different currencies; a converted total moves with the exchange rate even when nothing in any marketplace moves.
284
+
285
+ ### N. New placements and supply that change spend without an edit (2023–2026)
286
+
287
+ RULE [official]. Prompts. "Sponsored Products prompts and Sponsored Brands prompts" (Amazon Ads announcement dated 2026-03-10, https://advertising.amazon.com/resources/whats-new/unboxed-2025-sponsored-products-and-sponsored-brands-prompts, read 2026-11-09):
288
+
289
+ - The prompts moved "from open beta to general availability in the U.S. on March 25, 2026", after an open beta from November 2025.
290
+ - "Prompts can appear in shopping results and product detail pages on Amazon. When clicked, prompts may open a dialog in Rufus or respond to the customer directly on the page where the prompt appeared."
291
+ - "Sponsored Products and Sponsored Brands campaigns will be automatically enrolled in prompts and leverage existing campaign parameters (e.g., campaign targeting) without any additional setup required."
292
+ - "As we move to general availability in the U.S., we will begin to charge for these ads as part of your CPC bidding and billing parameters. If you'd like to pause a prompt, you can do so at any time in Ad Console."
293
+ - The prompts are reached through "Campaign → Ad Group → Ads → Prompts tab, where all prompts are listed if they have received a click".
294
+ - "Understand unified reporting" (read 2026-11-09) lists "Sponsored Products prompts" (with Benchmarks, Sponsored Products video and others) among the reports that "have not yet been integrated into unified reporting and are planned for release later in 2026"; this is the console's unified reporting, and the API release note of 2026-09-25 puts benchmarks into the v1 reporting API.
295
+
296
+ RULE [official]. Prompt reporting. v3 "Prompt ad extension reports" (https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/prompt-ad-extension, read 2026-11-09): report types `spPromptAdExtension` and `sbPromptAdExtension`, grouped by `promptAdExtension`, a 90-day maximum range and 95-day retention, US only, with columns including `promptText`, `creativeExtensionId`, `advertisedAsin`, impressions, clicks and cost. The page states: "Prompts with clicks will show in your existing Sponsored Products or Sponsored Brands reporting". The release notes date prompt and video extension report columns to 2026-08-24.
297
+
298
+ [seat] From 2026-03-25 in the US, a campaign with no edit can draw clicks and cost from a placement it did not have before that date. Those clicks sit in the campaign's ordinary totals, and the prompt-level split is in a separate report with a 95-day retention.
299
+
300
+ RULE [official]. Off-Amazon placements. "Troubleshoot your campaign status" (read 2026-11-09) says off-site cost is visible in the Placement report and not in Campaign Manager. "Placement report for Sponsored Products" (https://advertising.amazon.com/help/G89VFUTQUWFFN2VU, read 2026-11-09): "The Sponsored Products placement report is the only source for reporting on off Amazon store metrics. We'll expand off Amazon reporting metrics to Amazon Ads console and other Sponsored Products reports in the future." The same page gives the report a 90-day lookback and lists Amazon Business placements (Amazon Business Top of search, Amazon Business Product pages, Amazon Business Rest of search) in ten locales (US, CA, MX, DE, UK, FR, IT, ES, JP, IN).
301
+
302
+ RULE [official]. Placement in the API. The v3 column `placementClassification` is "The page location where an ad appeared" ("Columns", read 2026-11-09). For Sponsored Products there is no separate placement report: placement data comes from the `spCampaigns` report grouped by `campaignPlacement`; Sponsored Brands uses `sbCampaignPlacement` ("Placement reports", https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/placement, read 2026-11-09). The v1 dimension `placementClassification.value` is "The classification of ad placements into categories like top of search, gateway page, etc." (v1 "Placement classification (Supply)" dimension page, read 2026-11-09).
303
+
304
+ [opinion] Perpetua Marketing Team, "Offsite placements for Amazon Sponsored Products ads—what you need to know" (2023-08-31, https://perpetua.io/blog-off-site-amazon-sponsored-product-ads/, read 2026-11-09): Amazon announced off-Amazon placements on 2023-08-16, on sites and apps including Pinterest, BuzzFeed, Hearst, Raptive, Lifehacker and Mashable, and the Placement report gained an "Off Amazon" row. Amazon's announcement of the partners is on aboutamazon.com ("Pinterest, BuzzFeed and more apps will show Amazon Sponsored Product ads", linked from the FTC response; not separately opened by this seat).
305
+
306
+ [opinion] Michael Waters, Intentwise, "New controls for offsite Sponsored Products placements" (2025-04-16, https://www.intentwise.com/blog/new-controls-for-offsite-sponsored-products-placements, read 2026-11-09): new Sponsored Products campaigns gained "Settings for ads served off Amazon" with the choices "Maximize reach" and "Minimize spend"; off-Amazon serving is on by default, not opt-in.
307
+
308
+ RULE [official]. Release note "New column header "Off-Amazon ad serving" for Sponsored Products campaigns in bulksheets" (2026-06-08, "Release notes", read 2026-11-09): "This column allows advertisers to update settings for ads served off amazon." Availability: US. [opinion] Luis Rijo, PPC Land, "Amazon adds off-Amazon spend toggle to Sponsored Products bulksheets" (2026-06-19, https://ppc.land/amazon-adds-off-amazon-spend-toggle-to-sponsored-products-bulksheets/, read 2026-11-09) reports the same change.
309
+
310
+ [opinion] Luis Rijo, PPC Land, "Amazon Sponsored Products campaigns gain creator placements on August 10" (2026-08-04, https://ppc.land/amazon-sponsored-products-campaigns-gain-creator-placements-on-august-10/, read 2026-11-09): from 2026-08-10, Sponsored Products ads can appear in creator content; the article cites an Amazon support article "Understand Sponsored Products off-Amazon advertising" updated 2026-08-04, with the settings "Increase reach" (default) and "Limit off-Amazon spend"; top-of-search and product-page adjustments do not apply off Amazon, while dynamic bidding does; off-Amazon clicks share the campaign budget; inferred search terms for placements with no shopper query are shown in search-term reports and can be negated. The Amazon support article itself was not reachable by this seat (see *Unreachable*).
311
+
312
+ [opinion] Ad Badger, "Your Sponsored Products Ads Are Now Running Inside Creator Reviews And Nobody Asked You First" (2026-08-21, https://www.adbadger.com/blog/your-sponsored-products-ads-are-now-running-inside-creator-reviews-and-nobody-asked-you-first/, read 2026-11-09): off-Amazon clicks draw the same daily budget, so "Your on-Amazon impression share can fall while your spend stays flat"; "Limit off-Amazon spend is a restriction, not a kill switch."
313
+
314
+ RULE [official]. Alexa+ and Rufus. Release notes (read 2026-11-09): on 2025-07-15 Amazon announced Sponsored Products in Alexa+ on Echo Show devices and said "Performance metrics will be consolidated within existing reporting dashboards". On 2024-09-05, for Rufus in the US: "your ads may appear in Rufus-related placements ... Your campaign reports will not include Rufus metrics". "The 11 biggest takeaways from unBoxed 2026" (Amazon Ads, Matt Miller, 2026-09-30, https://advertising.amazon.com/library/news/unboxed-2026-news-announcements, read 2026-11-09) lists Branded Conversations in Alexa for Shopping, Sponsored Services (with Yelp), Amazon Ads Agent bringing the former DSP and Ads Console together, Full-Funnel Campaigns, AI creative, "Nearly 1,000 metrics", an MCP Lite and an AMC Expert Tool.
315
+
316
+ [seat] The Rufus note and the Alexa+ note describe the same kind of event in opposite ways: one says the new placement's metrics fold into the existing totals, the other says they are not reported. In both cases a campaign total can move with no placement row naming the new surface.
317
+
318
+ RULE [official]. Video added to existing ads. Release note "Documentation is now available for Sponsored Products auto-assembled videos" (2026-08-09, read 2026-11-09): "Auto-assembled videos are video creative that Amazon generates and attaches to existing Sponsored Products ads on behalf of the advertiser", US only; a campaign opts out with `optOuts.videoExtension` (`POST /adsApi/v1/update/campaigns`), and an auto-assembled extension is identified by `adExtensionSettings.videoExtension.videoType` in `POST /adsApi/v1/query/adExtensions`. The 2026-08-03 note on video ad extensions says a video extension leaves "campaigns, budgets, bids, and targeting" unchanged and "renders on eligible placements". The 2026-07-27 note says the `spVideoAdExtension` report type "has been available since November 2025" (US). [seat] A creative that Amazon attaches changes what an ad shows, and so possibly its CTR, with no advertiser edit in the change history.
319
+
320
+ RULE [official]. Amazon Business. Release notes, 2025-04-24: Sponsored Products campaigns exclusive to Amazon Business via `siteRestrictions: AMAZON_BUSINESS`. The v1 Campaign model carries `siteRestrictions` (section D).
321
+
322
+ RULE [official]. Other dated changes in the release notes (https://advertising.amazon.com/API/docs/en-us/release-notes/index, read 2026-11-09), each a candidate cause for a movement that starts on or after its date:
323
+
324
+ - 2025-04-04: Sponsored Display Reach and Page-visit goals moved to conversion optimization.
325
+ - 2025-05-22: negative targets on any targeting type, US.
326
+ - 2025-06-19: Sponsored Brands top-of-search and rest-of-search adjustments up to 900%.
327
+ - 2025-07-19: portfolio unspent budget sharing (section H).
328
+ - 2025-10-15: Sponsored Brands reserve share of voice.
329
+ - 2025-11-11: new reporting API open beta, and benchmarks.
330
+ - 2025-12-01: v1 campaign management generally available.
331
+ - 2026-01-27: v2 suggested-keyword endpoints deprecated with shutoff in June 2026; replacement `/sp/targets/keywords/recommendations`.
332
+ - 2026-05-26: refresh token policy, effective 2026-07-30 (an access change for API callers, not a serving change).
333
+ - 2026-05-18: benchmarks reporting generally available in 18 marketplaces (previously beta, US only), as `crossProgramBenchmarks` in v3.
334
+ - 2026-06-08: "Off-Amazon ad serving" bulksheet column, US.
335
+ - 2026-06-15: negative bid adjustment values for Sponsored Brands placement groups no longer accepted (announced 2025-12-01 for 2026-02-02, extended on 2026-01-27); "existing campaigns with negative bid adjustments will continue to run with their current settings".
336
+ - August 2026: Sponsored Brands Product Collection create requests are mapped to Manual Collection ads. Amazon gives two end dates. The "Deprecations" page entry "June 2026 - Deprecation of Sponsored Brands Product Collection Ad Type" says "Post January 2027, requests to create new Product Collection ads will return an error" (V0) and the same for `productCollectionSettings` (V1), and its table lists January 2027; the release note "Introducing the ListMigrations API for Sponsored Brands Product Collection migration" (2026-09-18) says "Beginning February 2027, product collections will no longer be supported" and offers `POST /sb/v4/migrations/list` for recommended `MANUAL_COLLECTION` and `AUTO_COLLECTION` replacements (both re-read 2026-11-09). The January date is worded as the end of creates, the February date as the end of support; neither page reconciles them. `method/ads-api-surface.md` owns the migration.
337
+ - 2026-08-09: Sponsored Products auto-assembled videos documented (above).
338
+ - 2026-08-24: prompt and video extension report columns.
339
+ - 2026-08-26: retention extended to 24 months.
340
+ - 2026-08-31: Recommendations API.
341
+ - 2026-09-09: exports can exclude performance data.
342
+ - 2026-09-25: benchmarks in unified reporting.
343
+ - 2026-09-30: Amazon Marketing Stream v2 and the new reporting API generally available.
344
+ - 2026-10-05: report warning signals.
345
+ - 2026-11-02: modeled new-to-brand in Amazon Marketing Cloud.
346
+ - A Review Requests API beta entry is dated November 16, 2026, later than the date this page was read.
347
+
348
+ RULE [official]. Bid recommendations. Release notes: the `/v2/sp/targets/bidRecommendations` endpoint was deprecated from 2024-08-15 with shutoff on 2025-05-15, replaced by theme-based bid recommendations at `POST /sp/targets/bid/recommendations`; the v3 content type `application/vnd.spthemebasedbidrecommendation.v3+json` was announced (2024-08-22) for shutoff on 2025-05-15. The SP v3 model read 2026-11-09 still lists the v3, v4 and v5 content types on that operation. [seat] A tool that compared bids with Amazon's suggested bids across those dates compared two different recommendation models.
349
+
350
+ RULE [official]. Dynamic bidding. "Guide to dynamic bidding - up and down with Sponsored Products" (Amazon Ads library, https://advertising.amazon.com/library/guides/dynamic-bidding-sponsored-products, read 2026-11-09): "We will increase or decrease your bids by up to 100% for all placements based on performance." The Sponsored Products v3 model says the same of `AUTO_FOR_SALES`: "Increases or decreases your bids in real time by a maximum of 100%". Another current Amazon page says otherwise: "An author's guide to Sponsored Products" (Amazon Ads library, https://advertising.amazon.com/library/guides/authors-guide-to-sponsored-products, re-read 2026-11-09) reads "Bids will be increased by up to 100% for placements at the top of the first page of shopping results and by up to 50% for all other placements". Both library pages carry `dateModified` 2026-10-09. `areas/bids-and-placements.md` (P-bids-and-placements-8) owns the ceiling and records which practitioners use which figure. [seat] Under that strategy the bid that reaches the auction varies by opportunity, so a CPC above the entered bid is a documented outcome. The bidding rules themselves are `areas/bids-and-placements.md`'s.
351
+
352
+ ### O. Auction price: reserves, relevance and the FTC case
353
+
354
+ RULE [official]. "Amazon's response to the FTC's lawsuit regarding Sponsored Ads" (aboutamazon.com, read 2026-11-09 through its markdown copy at https://www.aboutamazon.com/md/company-news/amazon-ftc-sponsored-ads-lawsuit-response; the page is dated to the day the FTC filed, 2026-08-31). These are Amazon's statements in a contested case:
355
+
356
+ - Amazon began to test "soft reserve prices," "a real-time minimum value that seeks to better reflect what each placement is actually worth", and a "hard reserve," "the minimum a bid must surpass to enter an auction".
357
+ - "When the winning advertiser's bid exceeds both the hard and soft reserve, they pay the soft reserve, which is less than they were willing to pay. When the winning advertiser's bid exceeds the hard reserve but doesn't meet the soft reserve, we still grant the placement to that advertiser and they pay their bid. In no scenario does an advertiser pay more than their bid."
358
+ - "reserves are determined in real time and aren't predictable in advance by anyone, including Amazon or the advertiser."
359
+ - The ranking "best balances relevancy and bid value": "in 2024, approximately 92% of selected Sponsored Products ads were not the highest bid"; "The mean winning advertiser's bid is typically about the 128th bid by amount."
360
+ - "From 2019 through 2024, the average cost-per-click for Amazon's Sponsored Products search ads remained flat adjusted for inflation, while conversion rates grew 24% from 2021 to 2025." "Average winning bids fell 50% from 2019 to 2025 on Sponsored Products search ads".
361
+ - "from 2019 to 2024, eighty percent of bid changes on clicked Sponsored Products search ads occurred within one day of a prior change."
362
+ - "in one study, when one advertiser stopped bidding on specific keywords, average bids for those keywords from competitors dropped about 83%, from $15.96 to $2.74."
363
+ - Amazon says it "updated our Amazon Ads Help content to explicitly explain the use of reserve prices." This seat did not locate that help text (see *Open questions*).
364
+
365
+ [opinion] The Federal Trade Commission and 22 states, "FTC, States Sue Amazon Over Secret Ad Surcharge Scheme" (press release dated 2026-08-31, https://www.ftc.gov/news-events/news/press-releases/2026/08/ftc-states-sue-amazon-over-secret-ad-surcharge-scheme, read 2026-11-09 through a fetch tool; a plain curl GET returned 404): the complaint, filed in the U.S. District Court for the Western District of Washington, alleges that "beginning in 2019" Amazon added an undisclosed surcharge it called a "soft reserve price", and that the share of the time Sponsored Products advertisers paid "the amount of their bid" rose from "between 30% and 40%" (2021) to "70%" (2022) and "approximately 80%" (2024); the auctions named are "Sponsored Product ads, Sponsored Brands ads and Display Ads". These are allegations. Search-result summaries of press coverage (not opened) say the complaint dates a Sponsored Brands soft reserve to 2018 and that Florida joined the suit in September 2026.
366
+
367
+ [seat] On Amazon's own description, the price paid per click is the larger of the second-price outcome and a soft reserve that Amazon sets in real time, capped at the bid. A change in reserves moves CPC with no change in the advertiser's bids and no change in competitors' bids, and nothing in the reporting surfaces read here separates a reserve-driven price from a competition-driven one. Amazon's 83% example shows the reverse channel: competitors' bids respond within days to one advertiser's exit.
368
+
369
+ ### P. Competition and market-wide price movement
370
+
371
+ RULE [official]. Impression share in the v1 reporting API ("Impression share (Search)" metric page, read 2026-11-09), for Sponsored Products and Sponsored Brands:
372
+
373
+ - `metric.impressionShare`: "The percentage share of all your impressions compared to all other advertisers." Requires `adProduct.value`, `advertiserAccount.id` and `searchTerm.value`. Its v3 name is "Search Term Impression Share".
374
+ - `metric.impressionShareRank`: "The numeric rank of your account-wide impression share compared to all other advertisers." Same requirements. v3 name "Search Term Impression Rank".
375
+ - `metric.topOfSearchImpressionShare`: "The percentage of impressions that appeared in top search results compared to the number of times they were eligible to appear in top search results." Requires `adProduct.value` and `advertiserAccount.id`. v3 name "Top-of-search Impression Share".
376
+
377
+ RULE [official]. Benchmarks in the v1 reporting API (metric pages, read 2026-11-09): `metric.cpcP25`, `cpcP50`, `cpcP75`, and the same quartiles for CTR, CPM, ROAS and purchase rate. They require `advertiserAccount.id`, `benchmarkBrand.id`, `benchmarkBrowseCategory.id` and `benchmarkBrowseCategoryMarketplace.value` (CPC quartiles also `budgetCurrency.value`), are compatible with month, week and date, and are incompatible with campaign, ad group, target, search term, placement and date-range dimensions. "Dates" states benchmark dimensions are available from 2025-06-01.
378
+
379
+ [seat] Impression share at search-term level and the category benchmark quartiles are the two documented reads that put an advertiser's movement beside the market's. A falling impression share with flat impressions points to more supply or more advertisers on the same terms; a CPC that moves with the category's CPC quartiles is market-wide rather than account-specific. Neither names a competitor. Competitor identification is `beyond/brand-defense-and-competition.md`'s.
380
+
381
+ ### Q. Demand: Search Query Performance
382
+
383
+ RULE [official]. The Selling Partner API report schema "sellingPartnerSearchQueryPerformanceReport.json" (amzn/selling-partner-api-models, https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchQueryPerformanceReport.json, read 2026-11-09) gives, per search query and period: `searchQuery`, `searchQueryScore`, `searchQueryVolume`, `totalQueryImpressionCount`, `asinImpressionCount`, `asinImpressionShare`, `totalClickCount`, `totalClickRate`, `asinClickCount`, `asinClickShare`, `totalMedianClickPrice`, `asinMedianClickPrice`, click counts by shipping speed, cart-add counts and shares, `totalPurchaseCount`, `totalPurchaseRate`, `asinPurchaseCount`, `asinPurchaseShare` and median purchase prices. A WEEK runs Sunday to Saturday; MONTH and QUARTER are the other periods; a request cannot span periods; the ASIN list in a request is limited to 200 characters.
384
+
385
+ [seat] `searchQueryVolume` across weeks is the documented measure of demand for a query independent of the advertiser's ads, and `asinImpressionShare`, `asinClickShare` and `asinPurchaseShare` measure the advertiser's share of that demand; the schema does not say whether paid and organic events are counted together. The schema types `totalMedianClickPrice` and `asinMedianClickPrice` as a `CurrencyAmount` with no description of their own; reading them as the median price of the products clicked, not a cost per click, is this seat's reading (Brand Analytics help, unreachable here, may state it). SQP data is a Selling Partner API report read through Brand Analytics, outside the ads door. Seasonality calendars are `areas/seasons-and-deals.md`'s, and organic share is `areas/ads-organic-and-total.md`'s.
386
+
387
+ ### R. Console figures and API figures
388
+
389
+ RULE [official]. "Sponsored ads reporting FAQ (version 3)" (read 2026-11-09): "The search term report in the advertising console contains all search terms that had an impression, regardless of if that term resulted in a click. The API search term report only contains impressions that also had at least one click." The newer "Understand unified reporting" (read 2026-11-09) describes the console's unified "Search term" template as "Performance metrics for search terms entered by shoppers that resulted in at least 1 click", so the two Amazon pages disagree on whether the console report carries zero-click terms; the legacy console reports shut down by 2026-12-31. Sponsored Brands previews exclude campaigns where `isMultiAdGroupsEnabled` is false. Exports differ from reports: "While reports contain performance data for a specified day, exports provide metadata about your campaigns at the time of the request" ("Exports overview", https://advertising.amazon.com/API/docs/en-us/guides/exports/overview, read 2026-11-09).
390
+
391
+ RULE [official]. "Understand unified reporting" (read 2026-11-09): unified reporting standardizes names and definitions across ad products, "metrics may appear under different names than in previous reports", Detail page views widened to include halo, and "When a dimension does not apply to an ad product, its value appears as null." Console report templates include "Search term" ("search terms entered by shoppers that resulted in at least 1 click"), "Search term impression share" and "Top-of-search impression share".
392
+
393
+ RULE [official]. Report limits. "Reporting overview" says v1 reporting allows "one concurrent report per advertiser" ("Only one report can be running at a time for a given advertiser account ... approximately 100 reports per day"), and the release note "Amazon Marketing Stream v2 and the new Reporting API now generally available" (2026-09-30) says the same: "The Reporting API v1 supports one concurrent report per advertiser, which allows advertisers to run approximately 100 reports per day based on average report run time"; the v1 reporting overview says "one concurrent report per client ID, not per advertiser account"; the v1 "Limits" page (https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/limits, read 2026-11-09) states limits per client ID, with concurrency as low as one and a rate as low as one request per second. "Rate limiting" (https://advertising.amazon.com/API/docs/en-us/reference/concepts/rate-limiting, read 2026-11-09) says a 429 response carries a `Retry-After` header and that report rate limits depend on the regional queue size. The "Limits" page adds: "Limits are not applied per advertiser account. All requests made with the same client ID share the same limits ... A request for one advertiser account can be throttled because of other requests made with the same client ID." Two Amazon pages (the reporting overview and the GA note) put the gate per advertiser and two (the v1 overview and "Limits") put it per client ID; all four give "approximately 100 reports per day" or "as low as 1" as of 2026-11-09, and no page reconciles the scope. The figures are for human readers only; the scope question is `method/reporting.md`'s (P-reporting-15), and the operation limits are `method/ads-api-surface.md`'s.
394
+
395
+ [seat] A difference between the console and the API is often a difference in what each includes (zero-click terms, preview scope, off-Amazon cost, null dimensions), in when each was read (before or after restatement), or in which time zone and currency each day is expressed. The settled API figure and the console figure read on the same day for the same day can both be correct.
396
+
397
+ ### S. Price as a cause: Pricing Health, the competitive external price and the 2026 eligibility change
398
+
399
+ Section B establishes that a Sponsored Products ad serves only when the advertised product is the Featured Offer. This section covers the price rules that can withhold the Featured Offer from an offer that is in stock and enabled, which makes price a documented cause of an impression drop, and not only of a conversion drop.
400
+
401
+ RULE [official]. The withholding rule, in Amazon's developer documentation ("Product Pricing API and Notifications FAQ", https://developer-docs.amazon/sp-api/docs/pricing-faq.md, page `updatedAt` 2026-09-09, read 2026-11-09; the docs host `developer-docs.amazon.com` now redirects to `developer-docs.amazon`):
402
+
403
+ - On a Pricing Health notification: "You receive a notification when your offer becomes ineligible to be a Featured Offer on the product detail page. This happens when your total price (price + shipping) is higher than the Competitive External Price, if available, or when your total price is higher than recent prices."
404
+ - "The `PRICING_HEALTH` notification ... doesn't mean that the offer has lost placement as the Featured Offer because of competitors. It means that Amazon cannot select the offer as the Featured Offer at the current price, regardless of changes to price or stock of competitors."
405
+ - "The Competitive Price Threshold (`competitivePriceThreshold`) is based on competitive prices from other retailers (excluding other Amazon sellers). Your offer might be ineligible for the Featured Offer if your total price (price + shipping) is greater than this competitive price."
406
+ - "The Competitive External Price is the lowest price for an item, or items that customers might consider being equivalent, recently found at another reputable retailer outside the Amazon store. Retailer names are not disclosed." The page's examples: a per-unit price of a 6-pack "multiply[ied] ... by 12" for a 12-pack, and the price of an equivalent product "with a different brand name" that has "near-identical attributes".
407
+ - "The average selling price (`averageSellingPrice`) ... is calculated based on the sum of the prices at which customers have bought a product in the Amazon store in the last 60 days divided by units sold. Prices and quantity sold during promotions (for example, Best Deals, Lightning Deals) are excluded." "The Price by Amazon (`retailOfferPrice`) is the highest price listed for the product in the last 14 days that is shipped and sold by Amazon."
408
+ - A `PRICING_HEALTH` notification "May contain `referencePrices` as the `averageSellingPrice`, `msrpPrice`, or `competitivePriceThreshold`. If you set your price to any of these, your offer will regain Featured Offer eligibility."
409
+
410
+ RULE [official]. "Notification Type Values" (https://developer-docs.amazon/sp-api/docs/notification-type-values.md, `updatedAt` 2026-10-28, read 2026-11-09), `PRICING_HEALTH`: "sent whenever a seller offer is ineligible to be the Featured Offer (Buy Box offer) because of an uncompetitive price. Sellers can take steps to restore featured offer eligibility by adjusting an offer's total price (price plus shipping minus points) so that it matches or is lower than the competitive price, or is in line with the reference prices provided. These include the Featured Offer price, 60-day average selling price, highest 14-day price (shipped and sold by Amazon), and the list price." The schema `PricingHealthNotification.json` (amzn/selling-partner-api-models, read 2026-11-09) carries `issueType`, `merchantOffer`, `summary` (`numberOfOffers`, `buyBoxEligibleOffers`, `buyBoxPrices`, `salesRankings`) and `referencePrice` with `averageSellingPrice`, `competitivePriceThreshold` ("The competitive price threshold from external competitors of Amazon"), `retailOfferPrice` ("The 14 day maximum of retail offer price") and `msrpPrice`. "Price Adjustment Automation Workflows Guide" (https://developer-docs.amazon/sp-api/docs/price-adjustment-automation-workflows-guide.md, read 2026-11-09) names the payload value: "the `issueType` is `BuyBoxDisqualification`, which means the selling partner's offer is disqualified from being the Featured Offer."
411
+
412
+ RULE [official]. The same rule surfaces as a listing issue. "Manage listings issues" (https://developer-docs.amazon/sp-api/docs/manage-listings-issues.md, `updatedAt` 2026-10-30, read 2026-11-09), "Pricing validation issues", lists issue `100708`, severity `WARNING`, category `INVALID_PRICE`: "Not eligible to be the Featured Offer due to uncompetitive price. Set your price at or below the Competitive External Price to become eligible for the Featured Offer." "`WARNING` severity issues (such as `100708`) do not prevent the listing update. The update is accepted, but the offer may not be eligible for the Featured Offer." The same table lists `19038` (price above the seller's maximum), `19037` (below the minimum) and `18701` ("identified as a potential high pricing error") as `ERROR`, which reject the update. [seat] A price change can therefore be accepted by the listing and still remove the advertised product from the Featured Offer, with nothing in the Ads API's change history.
413
+
414
+ RULE [official]. The reads that expose the rule on demand, in the Product Pricing v2022-05-01 model (`productPricing_2022-05-01.json`, read 2026-11-09):
415
+
416
+ - `getFeaturedOfferExpectedPriceBatch` (`POST /batches/products/pricing/2022-05-01/offer/featuredOfferExpectedPrice`, up to 40 requests by `marketplaceId` and `sku`) returns "the computed listing price at or below which a seller can expect to become the featured offer (before applicable promotions). This is called the featured offer expected price (FOEP). Featured offer is not guaranteed because competing offers might change." Each result has `featuredOfferExpectedPrice.listingPrice`, `currentFeaturedOffer`, `competingFeaturedOffer` and a `resultStatus` of `VALID_FOEP`, `NO_COMPETING_OFFER`, `OFFER_NOT_ELIGIBLE`, `OFFER_NOT_FOUND` or `ASIN_NOT_ELIGIBLE` ("Additional values might be added in the future"). The workflows guide glosses them: `OFFER_NOT_ELIGIBLE`, "Your offer does not qualify for Featured Offer"; `OFFER_NOT_FOUND`, "Your offer might be unbuyable or you are not qualified".
417
+ - `getCompetitiveSummary` (`POST /batches/products/pricing/2022-05-01/items/competitiveSummary`) takes `includedData` of `featuredBuyingOptions` ("the current segmented featured offer information"), `referencePrices` ("reference price points for the item, such as the Competitive Price Threshold"), `lowestPricedOffers` and `similarItems`. A reference price `name` is, for example, `CompetitivePriceThreshold`, `WasPrice` or `CompetitivePrice`. Each segmented featured offer carries `featuredOfferSegments` with `customerMembership` (PRIME, NON_PRIME, DEFAULT) and `segmentDetails.glanceViewWeightPercentage` ("the glance views for this segment as a percentage of total glance views across all segments for the ASIN"). The FAQ adds that each offer "can include a `promotions` array with active promotion details (`COUPON`, `DEAL`, or `BASKET_BUILDING`), including the discount and the final discounted price"; the model's `Promotion` has `promotionType` and `promotionSavings.discountedPrice`. The model's default rate for `getCompetitiveSummary` is 0.033 requests per second, burst 1 (for human readers only).
418
+ - The v0 model (`productPricingV0.json`, read 2026-11-09) `getItemOffers` and `getListingOffers` summary carry `CompetitivePriceThreshold` ("The offer may be ineligible for the Buy Box if the seller's price + shipping (minus Amazon Points) is greater than this competitive price"), `SuggestedLowerPricePlusShipping` ("based on a range of factors, including historical selling prices, recent Buy Box-eligible prices, and input from customers"), `BuyBoxEligibleOffers`, and per offer `IsBuyBoxWinner` ("There can be up to two Buy Box winners at any time per ASIN, one that is eligible for Prime and one that is not eligible for Prime") and `IsFeaturedMerchant`.
419
+
420
+ [seat] On these definitions a Featured Offer can be lost three ways that diagnosis has to tell apart: another offer wins (the seller's offer is eligible and `currentFeaturedOffer` names someone else), the offer is ineligible on price (Pricing Health, `100708`, `BuyBoxDisqualification`), or no offer is featured at all (Keepa's -1 Buy Box seller, below). Only the second is fixed by the seller's own price, and the benchmark it is measured against is a price off Amazon that the seller cannot see by name. `glanceViewWeightPercentage` makes the gate partial: a product featured for Prime customers in some postal codes and not others serves its ads to part of the traffic.
421
+
422
+ RULE [official]. Seller eligibility was removed in 2026. "Updates to Featured Offer eligibility requirements" (Seller Forums, News and Announcements, post by News_Amazon, `datePublished` 2026-07-06, https://sellercentral.amazon.com/seller-forums/discussions/t/7336583f-09ac-41de-99d1-667017a88db2, read 2026-11-09): "Starting in July 2026, we'll begin removing seller eligibility requirements for the Featured Offer. This change will roll out gradually across all Amazon stores globally, completing by the end of 2026." "Currently, we determine which sellers are eligible based on seller performance criteria. Then, we rank all offers listed by eligible sellers ... We're not changing how the Featured Offer is selected. We'll continue to evaluate offers and select the Featured Offer based on criteria most important to customers, such as competitive pricing, delivery speed, and performance. Being considered for the Featured Offer doesn't guarantee your offer will be featured." An Amazon staff reply in "DESKTOP AMAZON MAIN PAGE NOT SHOWING COMPETITOR'S OFFERS" (Susie_Amazon, 2026-07-16, https://sellercentral.amazon.com/seller-forums/discussions/t/b7a102d6-1bf4-479c-8946-033198aa5ea8, read 2026-11-09): "The recent Featured Offer eligibility update expands which sellers are considered for the Featured Offer — it does not change how other offers are displayed to customers", and "check your eligibility status in Manage Inventory > Preferences (enable "Featured Offer eligible" column), and review Pricing Health for any flags." `areas/launch.md` P-launch-6 records the US help page's "As of September 2026" wording from the listing playbook's capture; that page is not reachable to this seat by plain GET (see *Unreachable*).
423
+
424
+ [seat] After the change, seller performance no longer removes an offer from consideration as a separate first step (it still enters selection, per the announcement), while price still makes an offer ineligible outright. Practitioner writing from before mid-2026 that lists account-level eligibility as a Featured Offer cause describes a step Amazon says it is removing; the price gate is unchanged by the announcement. What the US help page says beyond the announcement is in `areas/launch.md` P-launch-6, from a capture this seat could not re-open.
425
+
426
+ RULE [official]. The dispute route. Amazon staff reply by Kai_Amazon (2026-08-07) in a Seller Forums thread on a "Price too High" flag (https://sellercentral.amazon.com/seller-forums/discussions/t/69b43d11-b63a-49b2-b0c0-6f4e7e3a242c, read 2026-11-09): "If you believe the competitive reference price driving the Featured Offer disqualification is outdated or incorrect, you can now dispute it directly through a self-service tool ... Go to Help > Get help and resources ... Indicate that you're disputing that the competitive external price has changed ... You could receive automated resolution in as little as 30 minutes. You can also review which reference price is triggering the alert in Pricing Health". A Seller Support email quoted by a seller in another thread (https://sellercentral.amazon.com/seller-forums/discussions/t/e21b1179-1f35-48d7-8a86-3a23af2efec3, 2025-03-30, read 2026-11-09) gives the "recent prices" branch in Amazon's words: listings ineligible "because the pricing for these items is substantially higher compared to recent price points both on Amazon and other retail platforms", and "We're not able to disclose all factors that go into Featured Offer eligibility." [opinion] The original poster in "Customers can't shop on Amazon due to the Competitive Price Policy" (Seller_Qbd0RsfZFEZBY, 2026-04-08, https://sellercentral.amazon.com/seller-forums/discussions/t/79106d23-5805-4c73-84c2-b9250d33bac1, read 2026-11-09) reports that one external retailer liquidating at cost set the threshold, leaving the listing with "no featured offer" so that it "cannot be advertised"; the Amazon reply in that thread (Kai_Amazon, 2026-04-10) restates that eligibility "compares your price against prices found at other retailers".
427
+
428
+ [opinion] Keepa records price facts over time that Amazon's reads give only as of the call (`Product.java`, keepacom/api_backend, read 2026-11-09): `BUY_BOX_SHIPPING` ("The price history of the buy box. If no offer qualified for the buy box the price has the value -1"), `NEW`, `LISTPRICE` and `LIGHTNING_DEAL` price histories, `buyBoxSellerIdHistory` (seller id "-1" when "no seller qualified for the Buy Box"), `lastPriceChange` ("the last time we have registered a price change (any price kind)"), `buyBoxEligibleOfferCounts` by condition and fulfilment channel, and `suggestedLowerPrice` ("Suggested Lower Price for the Buy Box, if the buy box is suppressed"). Keepa does not record Amazon's competitive external price or the retailer behind it.
429
+
430
+ ### T. Conversion-side causes on the listing and the offer
431
+
432
+ Spend and sales split (section A) into an impressions part, a CTR part and a CVR × AOV part. The listing and offer facts below move CTR, CVR and AOV with no change in the ads account, and each has its own read outside the Ads API.
433
+
434
+ RULE [official]. What the ad shows is taken from the listing. "How to improve your product detail page for advertising" (Amazon Ads library, `dateModified` 2026-10-09, re-read 2026-11-09): "In addition to your product title, image, and other information, Sponsored Products ads include the price of your item. You can also add the list price if your price offer is below the list price"; "If your advertised product offers Prime Shipping, the Prime badge will automatically appear in your ad creative"; and GUIDANCE: "we recommend advertising products with five or more customer reviews, plus a rating of 3.5 stars or higher", four or more images, "a plain white background", the product filling "at least 80% of the image area", and images "at least 1000 pixels in height or width" for zoom. "Best practices for your Sponsored Products ads" (`dateModified` 2026-09-28, re-read 2026-11-09) repeats the review and image guidance. For display ads, "Responsive eCommerce creatives" (Amazon Ads ad specs, https://advertising.amazon.com/resources/ad-specs/ecommerce, read 2026-11-09) states that the eCommerce section is "auto-generated by Amazon with live pricing, deal badges, coupons, star ratings, and Prime eligibility pulled from your product listing", that "Active promotions are detected and badged automatically" (Lightning Deals, Deal of the Day, Best Deals, Coupons, Subscribe & Save), and that "If a product has multiple active discounts, the highest value is shown". [seat] So a price rise, a lost Prime badge, a removed coupon or a changed main image changes the ad itself on the day it happens, through CTR as well as through CVR.
435
+
436
+ RULE [official]. Coupons and deals, and the rating floors that gate them. "Guide to running Amazon seller promotions, coupons, and deals" (Sell on Amazon blog, Mickey Toogood, 2026-05-27, https://sell.amazon.com/blog/seller-promotions, read 2026-11-09): "A Lightning Deal can run from 4 to 12 hours, as determined by Amazon. A Best Deal can run for a select number of days"; "You'll need a Professional selling plan and an overall rating of at least four stars to create deals"; coupons "appear on product detail pages" and "through search results, on the Amazon Deals page, and on products they've added to their carts"; "Coupons are only available for a select amount of time"; "To be eligible for coupons, you must have a Professional selling plan and an overall rating of at least 3.5 stars." These figures are for human readers only. [seat] A rating that falls through a floor can end a promotion's eligibility, so a rating drop can arrive as a coupon or deal ending.
437
+
438
+ RULE [official]. The Promotions API (`promotions_2025-12-01.json`, read 2026-11-09) has three read operations: `searchPromotions` (`GET /promotions/2025-12-01/promotions`, filters `statuses`, `asins`, `skus`, `promotionTypes`, `startDateBefore`/`After`, `endDateBefore`/`After`, `updateDateBefore`/`After`), `getPromotion` and `getSelection` (up to 100 items, `SelectionType.ITEMS` only). `PromotionType` is BASKET_BUILDING, DEAL, PRICE_DISCOUNT or COUPON; `CouponType` STANDARD, SUBSCRIBE_AND_SAVE or REORDER_REWARDS; status PROCESSING, UPCOMING, RUNNING, EXPIRED ("passed its end date"), FAILED, CANCELLING or CANCELLED; `Schedule` has `startDate`, `endDate` and `eventId` ("For event promotions, this field contains the event name when available (for example, `Prime Day`)"); `issues` carry `code`, `message` and `severity` (ERROR, WARNING). The model's default `searchPromotions` rate is 0.1 per second, burst 4 (for human readers only). [opinion] Keepa's `Product.java` (read 2026-11-09) adds `coupon` (one-time and Subscribe & Save coupon, positive for an absolute and negative for a percentage discount), `couponHistory` ("We started tracking coupon history on June 15th 2024"), `deals` and `promotions` ("Only Amazon US promotions by Amazon (not 3rd party) are collected"), which cover competitors' coupons as well as the seller's own.
439
+
440
+ RULE [official]. Ratings and reviews across variations, 2026. "Changes to review sharing across product variations starting Feb 12" (Seller Forums, News_Amazon, 2026-01-07, https://sellercentral.amazon.com/seller-forums/discussions/t/a572986d-9bb1-4e91-a53f-41c575874dd7, read 2026-11-09): "reviews will only be shared between variations with minor differences that don't affect functionality. Reviews will no longer appear on variations with significant differences which may affect your products' overall star ratings and review counts." Sharing continues for color or pattern, size with the same function, pack size or quantity, secondary scent on non-scent-focused products, and model fitments; "we'll implement these changes gradually by product category between February 12, 2026, and May 31, 2026." An Amazon staff reply (Billy_Amazon, 2026-09-02, in "1 Star Rating Affecting Variation ASINS", https://sellercentral.amazon.com/seller-forums/discussions/t/ff882f88-985f-4211-a681-4ec7b39cb5f5, read 2026-11-09): "Amazon does allow customers to leave star-only ratings without a written review"; "Within a variation family, star ratings are linked to the individual child ASIN but are aggregated on the parent ASIN. This means ratings can propagate across the variation family". [seat] A variation merge pools ratings and a split, or a family placed under the 2026 rules, un-pools them; either moves the star rating and count the ad displays on a date with no ads change, and the date falls inside February 12 to May 31, 2026 for the category rollout.
441
+
442
+ RULE [official]. Variation and browse-node structure, read from the catalogue. Catalog Items 2022-04-01 (`catalogItems_2022-04-01.json`, read 2026-11-09) `includedData` takes `attributes`, `classifications`, `dimensions`, `identifiers`, `images`, `productTypes`, `relationships`, `salesRanks`, `summaries` and `vendorDetails`. `relationships` gives `type` VARIATION or PACKAGE_HIERARCHY, `parentAsins`, `childAsins` and `variationTheme.theme` (for example "COLOR_NAME/STYLE_NAME"); `classifications` gives `ItemBrowseClassification` (`classificationId`, `displayName`, `parent`); `images` gives each image's `variant` (MAIN, PT01–PT08, SWCH); `salesRanks` gives ranks by `classificationId` and by website display group. The Customer Feedback API's `getItemBrowseNode` (`GET /customerFeedback/2024-06-01/items/{asin}/browseNode`) "returns the associated browse node of the requested ASIN". The Listings Items model 2021-08-01 summary carries `mainImage` (`link`, `height`, `width`), `status` (BUYABLE, DISCOVERABLE), `createdDate` and `lastUpdatedDate`, and `getListingsItem` takes `includedData` of `summaries`, `attributes`, `issues`, `offers`, `fulfillmentAvailability`, `procurement`, `relationships` and `productTypes`. "Notification Type Values" describes listing issues: "Issues point out that the listings item has problems which cause listing inactive, search suppression, or other quality problems. For example, if the selling partner's product image has low resolution, this issue will cause search suppression for this product", and "All problems that can occur with a listing do not have corresponding defined issues ... (neither does the Selling Partner API for Listings Items)." On the ads side, the SP v3 serving and reason enums carry AD_MISSING_IMAGE, MISSING_IMAGE and VARIATION_PARENT (section C), the Eligibility API carries MISSING_IMAGE and VARIATION_PARENT (section E), and SP product targeting has the expression types `ASIN_CATEGORY_SAME_AS` and `ASIN_EXPANDED_FROM` (SP v3 model, read 2026-11-09). [opinion] Keepa's `Product.java` records `parentAsinHistory` ("The included timestamp indicates when the previously associated parent ASIN ceased to be valid ... null if the parentAsin field never changed"), `historicalVariations`, `categories`, `rootCategory`, `categoryTree`, `salesRankReferenceHistory` and `images`.
443
+
444
+ [seat] A browse-node change moves an ASIN between the category targets other advertisers' and the seller's own category-targeted ads aim at (`ASIN_CATEGORY_SAME_AS`) and between the category benchmark sets of section P, so it can move impressions from category targeting and the category comparison without any edit in the ads account. No page read states how Amazon re-targets category ads after a reclassification.
445
+
446
+ RULE [official]. Reviews as data. The Customer Feedback API 2024-06-01 ("Customer Feedback API", https://developer-docs.amazon/sp-api/docs/customer-feedback-api.md, read 2026-11-09) "provides the same information as the Product Opportunity Explorer (OX)"; it is available in the US, UK, France, Italy, Germany, Spain and Japan, "refreshed weekly" and "only available in English", and needs the Brand Analytics or Selling Partner Insights role. `getItemReviewTopics` returns the ten most positive and ten most negative topics with `numberOfMentions`, `occurrencePercentage` and `starRatingImpact` ("The effect of the topic on the star rating of the ASIN") for the ASIN, its parent and its browse node; `getItemReviewTrends` returns up to six monthly points per topic. Neither returns the star rating or the review count. [opinion] Keepa's `Product.java` gives `RATING` ("an integer from 0 to 50 (e.g. 45 = 4.5 stars)") and `COUNT_REVIEWS` histories, `lastRatingUpdate`, and a variation-specific `reviews` object whose "ratingCount history has not been updated since April 9th 2025 as that data point was removed by Amazon".
447
+
448
+ RULE [official]. Stock, delivery and the session denominator. The FBA Inventory API `getInventorySummaries` (`GET /fba/inventory/v1/summaries`, `fbaInventory.json`, read 2026-11-09) returns, with `details=true`, `fulfillableQuantity`, the inbound quantities, `reservedQuantity`, `researchingQuantity` and `unfulfillableQuantity`, and `lastUpdatedTime` ("The date and time that any quantity was last updated"); with `startDateTime` it returns only summaries "that have had changes after the date and time specified". The Sales and Traffic report (section B) carries `sessions`, `pageViews`, `unitSessionPercentage` and `buyBoxPercentage` by child ASIN and day. [opinion] Chuck Kessler (Canopy Management, "Amazon Conversion Rate", 2026-10-20, below) quotes an Amazon forum moderator: "Sessions track total visits to a product page, regardless of the seller in the Buy Box."
449
+
450
+ ### U. Push-only surfaces: SP-API notifications and Marketing Stream
451
+
452
+ RULE [official]. SP-API notifications are delivered only to an AWS destination. The Notifications API v1 model (`notifications.json`, read 2026-11-09): `createDestination` takes a `resourceSpecification` of `sqs` (`arn`, pattern `^arn:aws:sqs:...`) or `eventBridge` (`region` and `accountId`, "The identifier for the AWS account that is responsible for charges related to receiving notifications"); "Applications should use one resource type (sqs or eventBridge) per destination." `createSubscription` "Creates a subscription for the specified notification type to be delivered to the specified destination. Before you can subscribe, you must first create the destination". The model has no operation that returns delivered notifications; `sendTestNotification` "Sends a mock notification of the specified type to your SQS" and is sandbox-only. "Notifications API" (https://developer-docs.amazon/sp-api/docs/notifications-api.md, read 2026-11-09): "Instead of polling for information, your application can receive information directly from Amazon", and "As a best practice, we recommend that you have a means to retrieve needed information in the event of an unexpected outage or delay in notification delivery." "Notification Type Values" names the workflow for each type: `PRICING_HEALTH` and `FBA_INVENTORY_AVAILABILITY_CHANGES` the Amazon Simple Queue Service workflow, `LISTINGS_ITEM_STATUS_CHANGE` the Amazon EventBridge workflow. `ANY_OFFER_CHANGED` "is sent whenever there is a change to any of the top 20 offers, by condition (new or used), or if the external price (the price from other retailers) changes for an item that you sell, or if there is a change to which offer wins the BuyBox, or a change to the BuyBox price", and "You will only receive `ANY_OFFER_CHANGED` notifications for items for which you have active offers."
453
+
454
+ RULE [official]. Amazon Marketing Stream is push-only too. The Stream v2 GA release note (2026-09-30, read 2026-11-09): "You provide an S3 bucket and SQS queue, and Stream writes Parquet files"; Stream v1 "delivers the data to partner or advertiser-owned AWS destinations" and "currently supports two destinations: Amazon Data Firehose and AWS Simple Queue Service (SQS)" ("Amazon Marketing Stream overview", re-read 2026-11-09).
455
+
456
+ [seat] Through the open doors named in this pack (`cx raw amazon-ads`, `cx raw amazon-sp-api`, `cx-keepa`), cx can call `createDestination` and `createSubscription` (they are grantless or role-scoped SP-API operations, and the SP-API door carries a `sellingpartnerapi::notifications` grantless scope), but nothing in those doors reads an SQS queue, an EventBridge bus, a Firehose stream or an S3 bucket, so the events themselves (`ANY_OFFER_CHANGED`, `PRICING_HEALTH`, `FBA_INVENTORY_AVAILABILITY_CHANGES`, `LISTINGS_ITEM_STATUS_CHANGE`, `LISTINGS_ITEM_ISSUES_CHANGE`, Stream's budget and entity-change messages) are out of reach unless the seller has an AWS destination and a reader for it. The polling substitutes Amazon documents for the same facts are: `getCompetitiveSummary` and `getFeaturedOfferExpectedPriceBatch` (Featured Offer, reference prices, competitive price threshold, competitors' promotions), v0 `getItemOffers` (`CompetitivePriceThreshold`, `IsBuyBoxWinner`), `getInventorySummaries` with `startDateTime` (inventory changes since a time), `getListingsItem` with `issues` and `summaries` (issues, enforcement actions, buyability), `searchPromotions` with `updateDateAfter`, and, for history the polls cannot give, Keepa's Buy Box, price, offer-count, coupon and rating histories. A poll gives the state at the moment of the call; the notification's event time and the transitions between polls are not recoverable from it.
457
+
458
+ ## What practitioners add
459
+
460
+ Each claim is the named party's, not Amazon's.
461
+
462
+ ### Diagnostic sequences, as their authors state them
463
+
464
+ [opinion] Disha (Optmyzr), "Why Amazon Performance Drops Feel Random (And How to Trace the Real Cause in Minutes)" (2026-07-08, https://www.optmyzr.com/blog/amazon-ppc-performance-drops-root-cause-analysis/, read 2026-11-09). The article describes PPC metrics as a chain, "Impressions → CTR → Clicks → Conversion Rate → Orders → Sales → ACoS", where "a change early in the chain propagates downward", and puts "the key diagnostic question" as "Where in the chain did the change start?" It names external drivers not visible in the advertiser's own data: competitor bids, seasonality and Buy Box ownership. It notes that bids, targeting, budget and keyword mix "can affect impressions, CTR, and CPC at the same time". It promotes Optmyzr's tools (a "Cause Chart" and "Root Cause Analysis" in its PPC Investigator).
465
+
466
+ [opinion] Lakshmi Padmanaban (Optmyzr), "Your Amazon ACoS Spiked. Here's How to Actually Diagnose Why (Without Guessing)" (2026-06-08, https://www.optmyzr.com/blog/amazon-acos-spike-diagnosis/, read 2026-11-09). Optmyzr names three root causes of an ACoS rise: a traffic problem, a conversion-rate drop, and a demand or market shift. Its six questions are: whether the comparison window is "actually clean"; whether spend rose, revenue fell or both; impressions and CTR "by campaign type, not blended"; whether CVR is the problem; whether the placement report has been read; and whether the rise is worse in branded or non-branded campaigns. Under traffic it lists, as its own reading: impressions falling because "a competitor entered the category or increased their spend", a budget "hitting its cap early", or a relevance shift; CTR falling because creative is less competitive, search terms shifted to lower intent, or "Your placement mix has tilted" toward product pages "where CTR is structurally lower than top-of-search"; and CPC rising with CTR flat as "auction pressure".
467
+
468
+ [opinion] Optmyzr's study of 14,991 Amazon Ads campaigns, reported in Lakshmi Padmanaban, "Why Your Amazon Ads Report Is Lying to You (And What It's Not Showing)" (2026-04-08, https://www.optmyzr.com/blog/amazon-ads-reporting-delays/, read 2026-11-09): "in the top 5% of campaigns, attributed sales figures grew by at least 18.75% between Day 1 and Day 17 of the same reporting period. Impression counts shifted by at least 36.67% in that same window. And one in every 20 campaigns showed discrepancies large enough to entirely change a budget or optimization decision." The article also states, without an Amazon source on the page, that orders cancelled within 72 hours are deducted from attributed sales (taking up to seven days), that VAT is subtracted, and that cart-level discounts are not reflected. These figures are for human readers only. The study's method is not published on the page.
469
+
470
+ [opinion] Scott Desgrosseilliers (Wicked Reports), quoted in the Optmyzr ACoS article from a PPC Town Hall episode: "I find that time lag is real and not a lot of people understand it."
471
+
472
+ ### Console against API
473
+
474
+ [opinion] Openbridge, "Amazon Advertising Console vs Advertising API" (modified 2024-09-27, https://docs.openbridge.com/en/articles/5575078-amazon-advertising-console-vs-advertising-api, read 2026-11-09). Openbridge reports Amazon as saying that "a data discrepancy larger than 5% between the Advertising Console and Advertising API may indicate a data issue that Amazon would need to investigate", and that metrics "may take up to 72 hours to propagate in the Advertising API download reports". It lists console reports not available in the API at that date: Sponsored Products Performance Over Time, Sponsored Products and Sponsored Brands Search Term Impression Share, the Sponsored Products Budget report, and the Sponsored Brands Category Benchmark. The Amazon concept page it links (`/API/docs/en-us/concepts/reporting/advertising-console`) did not resolve for this seat (see *Unreachable*). [seat] Two items on that 2024 list now have v1 equivalents: `metric.impressionShare` at search-term level, and the benchmark quartiles (section P).
475
+
476
+ [opinion] Openbridge, "Amazon Advertising Attribution, Definitions, and Timing" (modified 2024-12-13, https://docs.openbridge.com/en/articles/4208366-amazon-advertising-attribution-definitions-and-timing, read 2026-11-09): sales and ACOS "can take up to 48 hours to populate"; "payment failures and orders that are canceled within 72 hours will be removed from sales totals"; some ad types' data "take up to 14 days to appear", so "you may notice an increase in your spend up to 14 days after a campaign is paused"; "Data will be more accurate 3-5 days from the current date." Openbridge describes its own collection as a rolling look-back at 1, 3, 7, 14, 30 and 59 days.
477
+
478
+ [opinion] Robert Benlloch (Acadia), "Understanding Amazon Advertising Reports: Identifying Data Discrepancies" (2025-07-31, https://acadia.io/understanding-amazon-advertising-reports-identifying-data-discrepancies, read 2026-11-09): catalogues the console report types and the attribution basis of each as the reason two reports for the same period disagree.
479
+
480
+ ### Price, competition and the auction
481
+
482
+ [opinion] Chuck Kessler (Canopy Management), "Amazon CPC: What Your Cost Per Click Actually Means" (2026-09-11, https://canopymanagement.com/amazon-cpc-what-your-cost-per-click-actually-means/, read 2026-11-09). He quotes Amazon's current wording that the final cost per click "will be based on your adjusted bid plus additional factors, but will never exceed your maximum adjusted bid" (the Amazon page he quotes was not located by this seat). He states a break-even identity, "Maximum profitable CPC = Target ACoS × Price × Conversion Rate", and writes: "Watch your realized CPC against your bid ... The gap between your bid and your average CPC is the only account-specific read you have on how much cushion you are getting."
483
+
484
+ [opinion] Tinuiti, Digital Ads Benchmark Report Q2 2026, as summarized by Karooya ("Digital Ads Benchmark Report by Tinuiti | Q2 2026 | Key Highlights", https://www.karooya.com/blog/digital-ads-benchmark-report-by-tinuiti-q2-2026-key-highlights/, read 2026-11-09): Sponsored Products spend +38% year on year, clicks +37%, CPC +1%, attributed sales +44%; Sponsored Brands CPC up by double digits for a fifth straight quarter; Prime Day moved into June 2026. Tinuiti's Q3 2026 report (https://tinuiti.com/research-insights/research/digital-ads-benchmark-report/, published 2026-10-15) is behind a form and was not read. Search-result summaries of a Pacvue and Perpetua figure of an average CPC of $2.14 in late May 2026 (+23% year on year) were seen and not opened; the two vendors' CPC trends disagree, and each measures its own client base. All figures for human readers only.
485
+
486
+ ### Offer-side causes
487
+
488
+ [opinion] Rel.ai Team, "Your Ads Stopped Showing and It's Not Your Bid: The Buy Box Problem" (2026-02-07, https://rel.ai/blog/buy-box-impression-drops, read 2026-11-09): "The most common cause of a sudden SP impression drop is not a bidding problem, not a budget problem, and not a targeting problem. It is a Buy Box problem." It states that the console "may show the campaign as 'enabled' and 'delivering,' but if you have lost the Buy Box, Amazon's ad auction will simply skip your ads", and separates Buy Box eligibility (a yes-or-no gate: stock, account standing, price within threshold) from Buy Box win rate. The "most common" ranking is Rel.ai's, with no data on the page.
489
+
490
+ [opinion] Keepa, the public data structure of its API client (`Product.java`, https://raw.githubusercontent.com/keepacom/api_backend/master/src/main/java/com/keepa/api/backend/structs/Product.java, read 2026-11-09). Keepa records `buyBoxSellerIdHistory` as a time series of the seller holding the Buy Box, with "-1" when "no seller qualified for the Buy Box"; `BUY_BOX_SHIPPING` price history with -1 when "no offer qualified for the buy box"; `COUNT_NEW` offer-count history; and `monthlySold`, "the bought past month metric found on Amazon search result pages", which Keepa says "is not an estimate". [seat] This is a third-party record of the same offer facts that Amazon's `buyBoxPercentage` aggregates, with timestamps; it is outside both Amazon APIs.
491
+
492
+ ### Conversion-side causes
493
+
494
+ [opinion] Lakshmi Padmanaban (Optmyzr), "Your Amazon ACoS Spiked" (2026-06-08, re-read 2026-11-09), under "Cause 2: Is your ACoS high because your conversion rate dropped?", calls it "the most misdiagnosed cause of ACoS spikes, and the one where wrong interventions do the most damage", and lists what a conversion drop "can trace back to": "Reviews dropping below a threshold that shoppers trust; A competitor launching a better product or undercutting your price; Listing images or copy becoming less competitive over time; Stock running low enough that delivery windows extended and shoppers chose a faster alternative; or The buy box being lost to another seller." Its step 4: "Pull CVR by ASIN or product group, not just by campaign. If the CVR drop is concentrated in specific ASINs, go to those listing pages before touching a single bid. Check reviews, buy box ownership, price relative to current top-of-search results, and whether low stock is extending delivery estimates." Under demand it adds that a competitor's promotion or price cut lowers CVR "across the board", and that organic rank loss "because of a stockout, a sudden review drop, or a pricing shift" raises ACoS with correct campaign decisions. The article names three causes; it does not give their shares.
495
+
496
+ [opinion] Chuck Kessler (Canopy Management), "Amazon Conversion Rate" (2026-10-20, modified 2026-10-27, https://canopymanagement.com/amazon-conversion-rate/, read 2026-11-09): "What raises conversion, in the order we usually find the problem: keeping the Featured Offer, bringing in the right traffic, price, images, reviews, the delivery promise, and then the content below the gallery." He names four distortions of Unit Session Percentage, including that a session counts "regardless of the seller in the Buy Box" (quoting an Amazon forum moderator, whose post this seat did not open) and that "A parent-level view averages sizes and colors that convert very differently." He advises comparing "main image, price, rating and review count, delivery date, and the first three bullets" with the listings ranked beside it. Client results on the page are Canopy's own and are for human readers only.
497
+
498
+ [opinion] Bob Norberg (eComEngine), "'Why Are Sales Down?' The Inventory-and-Reviews Diagnosis Checklist" (published 2026-02-24, updated 2026-04-21, https://www.ecomengine.com/blog/why-are-amazon-sales-down-checklist, read 2026-11-09) states its order as "availability first, credibility second, friction third, ads last". Its checklist asks "Any major coupon, deal, or price drop in the last 60 days?", "Did you bundle/change variations, affecting historical comparability?", "Listing suppressed, hazmat flagged, restricted keyword issue?", "Category changes or attribute edits impacting relevance?", and notes that a price raised after a fee increase "can look like 'sales are down' when it's really 'conversion is down because your offer changed.'" Its review symptoms: "Sessions steady, conversion down / CTR stable, CVR down". eComEngine sells monitoring tools (SellerPulse, FeedbackFive) on the same page.
499
+
500
+ [opinion] Seller Labs, "How to Diagnose 'Traffic vs Conversion' Problems on Amazon Listings" (2026-05-05, modified 2026-07-29, https://www.sellerlabs.com/knowledge-base/how-to-diagnose-traffic-vs-conversion-problems-on-amazon-listings/, read 2026-11-09): start from sessions and page views in "Detail Page Sales and Traffic by Child Item", then Unit Session Percentage; "Always compare performance to a similar time period (weekday vs weekday, promo vs non-promo)"; and compare USP "to your own ASIN history, not generic benchmarks". Its USP bands (below 8%, 8–15%, above 15%) are Seller Labs' own and for human readers only.
501
+
502
+ [opinion] Luis Rijo (PPC Land), "Amazon's Seller Assistant now checks review sharing eligibility per variation" (2026-04-18, https://ppc.land/amazons-seller-assistant-now-checks-review-sharing-eligibility-per-variation/, read 2026-11-09): "the star rating displayed beneath a sponsored product comes from the same shared or non-shared review pool. A variation losing its shared review count will also display a lower star rating in its ad unit, which can affect conversion rates"; he reports a Seller Forums post saying sellers "can now ask Seller Assistant which of your product variations are eligible for review sharing" (that post was not opened).
503
+
504
+ [seat] Where the practitioners agree: a conversion drop concentrated in one ASIN points them to that listing's offer (Featured Offer, price, coupon, delivery promise) and its proof (rating, review count, images) before bids. Where they differ is order: Canopy puts the Featured Offer first, Optmyzr lists reviews first, eComEngine (Norberg) puts availability first and ads last. None gives a measured frequency for any cause.
505
+
506
+ ### New placements
507
+
508
+ [opinion] Ad Badger, Intentwise (Michael Waters), Perpetua and PPC Land (Luis Rijo) on off-Amazon and creator placements: see section N. Destaney Wishon (btr media) and Jon Elder are quoted by PPC Land in the creator-placement article.
509
+
510
+ ### Attribution that falls outside the window
511
+
512
+ [opinion] Relevant Audience, "Amazon Ads: about 20% of brand sales land after the attribution window" (2026-10-02, https://www.relevantaudience.com/ecommerce-marketing/amazon-ads-20-percent-sales-after-attribution-window/, read 2026-11-09), reporting Digiday (2026-10-01): Amazon Ads estimates "roughly 20%" of a brand's sales value arrives after the standard attribution window, from a study of more than 2 million campaigns run in June; Lily Tong, a director of measurement at Amazon Ads, is quoted: "roughly 20% of the sales value for a brand shows up over time and isn't captured in that immediate attribution window". The figure is Amazon's, reported second-hand; for human readers only. The v1 `metric.longTermSales` field ("Attributed sales plus the estimated 365-day value of new-to-brand shopper engagements attributed to the campaign", v1 long-term sales metric page, read 2026-11-09) is Amazon's own projection of that value for Sponsored Brands, Sponsored Display, Sponsored TV and DSP, not Sponsored Products.
513
+
514
+ ## Published research
515
+
516
+ [research] Ang, B.W. (2005). "The LMDI approach to decomposition analysis: a practical guide." *Energy Policy* 33(7): 867–871. doi:10.1016/j.enpol.2003.10.010. Log-mean Divisia index decomposition of a product of factors V = x1 × x2 × ... × xn. In the multiplicative form, ln(V1/V0) = Σ ln(xi,1/xi,0), so each factor's share of the change is its log ratio. In the additive form, ΔV = Σ L(V1, V0) · ln(xi,1/xi,0), where L(a, b) = (a − b)/(ln a − ln b) is the logarithmic mean. The decomposition leaves no residual. Zero values are handled by substituting a small positive number. Ang, B.W. (2015), "LMDI decomposition approach: A guide for implementation", *Energy Policy* 86: 233–238, gives the implementation choices. [seat] Applied to spend = impressions × CTR × CPC, the additive form splits a spend change exactly into an impressions part, a CTR part and a CPC part; applied to sales = clicks × CVR × AOV, likewise. Applied across campaigns, the structure (mix) effect can be separated from the within-campaign rate effects.
517
+
518
+ [research] Bhagwan, R., Kumar, R., Ramjee, R., Varghese, G., Mohapatra, S., Manoharan, H., Shah, P. (2014). "Adtributor: Revenue Debugging in Advertising Systems." *11th USENIX Symposium on Networked Systems Design and Implementation (NSDI '14)*, 43–55 (https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/bhagwan). Microsoft's system for locating the dimension values behind an anomaly in advertising metrics, including "derived measures such as costs-per-click", by ranking candidate explanations on explanatory power, succinctness and surprise. The authors report "an accuracy of over 95%" from "several case studies on a very large ad system and extensive evaluation".
519
+
520
+ [research] Budhathoki, K., Janzing, D., Blöbaum, P., Ng, H. (2021). "Why did the distribution change?" *AISTATS 2021*, arXiv:2102.13384. The abstract: "After factorizing the joint distribution into conditional distributions of each variable, given its parents (the 'causal mechanisms'), we attribute the change to changes of these causal mechanisms." (The abstract does not name the attribution formula; the seat did not read the full text.)
521
+
522
+ [research] Budhathoki, K., Minorics, L., Blöbaum, P., Janzing, D. (2022). "Causal structure-based root cause analysis of outliers." *ICML 2022*, PMLR 162: 2357–2369 (https://proceedings.mlr.press/v162/budhathoki22a.html). Given a causal graph and a functional causal model, the method "quantifies the contribution of each variable to the target outlier score".
523
+
524
+ [research] Lewis, R.A., Rao, J.M. (2015). "The Unfavorable Economics of Measuring the Returns to Advertising." *Quarterly Journal of Economics* 130(4): 1941–1973. doi:10.1093/qje/qjv023. Across 25 field experiments with $2.8 million of spend, "The median confidence interval on return on investment is over 100 percentage points wide", and relative to the per-capita cost of the advertising "a coefficient of variation of 10 is common" for individual-level sales. [seat] Sales noise at that scale means a sales change of a given size in a small account can sit inside ordinary variation.
525
+
526
+ [research] Ostrovsky, M., Schwarz, M. (2023). "Reserve Prices in Internet Advertising Auctions: A Field Experiment." *Journal of Political Economy* 131(12): 3352–3376. doi:10.1086/725702 (abstract read through its RePEc/EconPapers record). "A large field experiment on setting reserve prices in auctions for online advertisements" (at Yahoo, per summaries of the working paper; the abstract does not name it): "Consistent with the theory, revenues increased substantially after the new reserve prices were introduced." [seat] This is published evidence that a platform's reserve setting alone can move what advertisers pay; the abstract does not separate the direct price effect from bidders' responses.
527
+
528
+ [research] Edelman, B., Ostrovsky, M., Schwarz, M. (2007). "Internet Advertising and the Generalized Second-Price Auction: Selling Billions of Dollars Worth of Keywords." *American Economic Review* 97(1): 242–259; and Varian, H.R. (2007). "Position auctions." *International Journal of Industrial Organization* 25(6): 1163–1178. The equilibrium theory of the GSP auction, in which a bidder's price depends on the bids and quality of those ranked below it. [seat] On this theory, a competitor's entry or exit below an advertiser's position moves that advertiser's CPC with no change in its own bid, which is the channel in Amazon's 83% example (section O).
529
+
530
+ [research] Brodersen, K.H., Gallusser, F., Koehler, J., Remy, N., Scott, S.L. (2015). "Inferring causal impact using Bayesian structural time-series models." *Annals of Applied Statistics* 9(1): 247–274. Counterfactual estimation of an intervention's effect on a time series. Its use belongs to `method/change-measurement.md`; it is listed here because separating a decomposition (which part moved) from a causal claim (what moved it) is that method's role.
531
+
532
+ #### Whether a movement exceeds noise
533
+
534
+ LMDI and Adtributor apportion a change; they do not say whether the change is larger than ordinary variation. The methods below are the published tests for that question on a time series.
535
+
536
+ [research] Page, E.S. (1954). "Continuous inspection schemes." *Biometrika* 41(1–2): 100–115. doi:10.1093/biomet/41.1-2.100 (Crossref record read 2026-11-09). The origin of the cumulative-sum (CUSUM) scheme. The NIST/SEMATECH *e-Handbook of Statistical Methods*, §6.3.2.3 "CUSUM Control Charts" (https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc323.htm, read 2026-11-09), states that CUSUM charts "have been shown to be more efficient in detecting small shifts in the mean of a process ... better than Shewhart control charts when it is desired to detect shifts in the mean that are 2 sigma or less", and gives the tabular form S_hi(i) = max(0, S_hi(i−1) + x_i − μ̂0 − k), S_lo(i) = max(0, S_lo(i−1) + μ̂0 − k − x_i), signalling when either exceeds h.
537
+
538
+ [research] Roberts, S.W. (1959). "Control Chart Tests Based on Geometric Moving Averages." *Technometrics* 1(3): 239–250. doi:10.1080/00401706.1959.10489860 (Crossref record read 2026-11-09). The exponentially weighted moving average (EWMA) chart. NIST §6.3.2.4 "EWMA Control Charts" (https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc324.htm, read 2026-11-09): EWMA_t = λY_t + (1 − λ)EWMA_{t−1}, "The equation is due to Roberts (1959)"; "By the choice of weighting factor, λ, the EWMA control procedure can be made sensitive to a small or gradual drift in the process, whereas the Shewhart control procedure can only react when the last data point is outside a control limit."
539
+
540
+ [research] Counts. NIST §6.3.3.1 "Counts Control Charts" (https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc331.htm, read 2026-11-09): for counts following a Poisson distribution with parameter c, "both the mean and the variance of this distribution are equal to c", and the k-sigma chart is UCL = c + k√c, LCL = c − k√c ("If the LCL comes out negative, then there is no lower control limit"); "Usually k is set to 3 by many practioners" (sic). Spiegelhalter, D.J. (2005). "Handling over-dispersion of performance indicators." *Quality and Safety in Health Care* 14(5): 347–351. doi:10.1136/qshc.2005.013755 (abstract read through Europe PMC, PMID 16195568, 2026-11-09): when an indicator "shows substantially more variability than would be expected by chance alone ... ignoring such 'over-dispersion' could lead to a large number of institutions being inappropriately classified as 'abnormal'"; multiplicative and additive corrections "give intuitively reasonable results, but the additive random effects formulation appears to have a stronger conceptual foundation". Spiegelhalter, D.J. (2005). "Funnel plots for comparing institutional performance." *Statistics in Medicine* 24(8): 1185–1202. doi:10.1002/sim.1970 (Crossref abstract read 2026-11-09): control limits "form a funnel around the target outcome, in a close analogy to standard Shewhart control charts", with an example "dealing with over-dispersion due to unmeasured risk factors".
541
+
542
+ [research] Killick, R., Fearnhead, P., Eckley, I.A. (2012). "Optimal Detection of Changepoints With a Linear Computational Cost." *Journal of the American Statistical Association* 107(500): 1590–1598. doi:10.1080/01621459.2012.737745; arXiv:1101.1438 (abstract read 2026-11-09). The PELT method finds the optimal number and location of changepoints by minimising a penalised cost "with a computational cost which, under mild conditions, is linear in the number of observations", against quadratic or cubic for earlier exact methods, and "the exactness of our approach can lead to substantial improvements in the accuracy of the inferred segmentation" over Binary Segmentation.
543
+
544
+ [research] Hochenbaum, J., Vallis, O.S., Kejariwal, A. (2017). "Automatic Anomaly Detection in the Cloud Via Statistical Learning." arXiv:1704.07706 (abstract read 2026-11-09). Twitter's method for series with "inherent seasonal and trend components": "Seasonal decomposition is employed to filter the trend and seasonal components of the time series, followed by the use of robust statistical metrics -- median and median absolute deviation (MAD) -- to accurately detect anomalies, even in the presence of seasonal spikes", evaluated on production data. The public R package (twitter/AnomalyDetection, README read 2026-11-09) calls the algorithm "Seasonal Hybrid ESD (S-H-ESD)", which "builds upon the Generalized ESD test"; that test is Rosner, B. (1983), "Percentage Points for a Generalized ESD Many-Outlier Procedure," *Technometrics* 25(2): 165–172, doi:10.1080/00401706.1983.10487848 (Crossref record read 2026-11-09).
545
+
546
+ [seat] How these transfer to an advertiser's daily series. Ad-attributed orders per day are small counts; on a Poisson reading a mean of 4 orders a day has a standard deviation of 2, so a 3-sigma band runs from no lower limit to 10, and a day with 1 order is inside it. Order and click counts on Amazon also carry a weekly cycle and event spikes, which S-H-ESD's decomposition and a weekday-matched baseline address and a plain c-chart does not; and day-to-day variation in sales usually exceeds the Poisson variance (Lewis and Rao's coefficient of variation is an individual-level version of the same fact), which is the over-dispersion Spiegelhalter's corrections handle. CUSUM and EWMA detect a sustained small shift that no single day shows; PELT dates where a level changed in a longer history; none of them names the cause, which is the decomposition's and the documented-cause layers' work. Restatement (section K) means the last days of any series are not yet comparable with the rest.
547
+
548
+ #### Root-cause attribution by Amazon's own researchers
549
+
550
+ [research] The two Budhathoki et al. papers above are by Amazon researchers, and their methods are public in DoWhy's `gcm` module. Amazon Science lists "Why did the distribution change?" as a publication by Kailash Budhathoki, Dominik Janzing, Patrick Blöbaum and Hoiyi Ng, AISTATS 2021 (https://www.amazon.science/publications/why-did-the-distribution-change, read 2026-11-09); PMLR gives it as *Proceedings of AISTATS*, PMLR 130: 1666–1674 (https://proceedings.mlr.press/v130/budhathoki21a.html, read 2026-11-09). Amazon Science's "New method identifies the root causes of statistical outliers" (Kailash Budhathoki and Patrick Blöbaum, 2022-07-19, https://www.amazon.science/blog/new-method-identifies-the-root-causes-of-statistical-outliers, read 2026-11-09) presents the ICML 2022 paper as an "Amazon ICML paper" and explains that, to remove dependence on the order in which causal mechanisms are replaced, "we take the average contribution over all orderings, which is also the idea behind the Shapley value approach in game theory. The Shapley contributions sum up to the IT outlier score of the outlier event."
551
+
552
+ [research] "AWS contributes novel causal machine learning algorithms to DoWhy Python library" (Amazon Science, Peter Götz and Kailash Budhathoki, 2022-05-31, https://www.amazon.science/blog/aws-contributes-novel-causal-machine-learning-algorithms-to-dowhy, read 2026-11-09): "we are open-sourcing causal machine learning (ML) algorithms that are the result of years of Amazon research on graphical causal models"; "Using a feature we call 'distribution change attribution', we can identify the defective service. An Amazon algorithm for root-cause analysis adapts the game-theoretical concept of Shapley values". The AWS Open Source Blog, "Root Cause Analysis with DoWhy, an Open Source Python Library for Causal Machine Learning" (Patrick Blöbaum, Kailash Budhathoki and Peter Götz, 2023-01-11, https://aws.amazon.com/blogs/opensource/root-cause-analysis-with-dowhy-an-open-source-python-library-for-causal-machine-learning/, read 2026-11-09), says the algorithms "were released in DoWhy v0.8" and that AWS and Microsoft formed PyWhy, "now home of DoWhy". Its worked example is an online shop with the nodes Shopping Event, Ad Spend, Page Views, Unit Price, Sold Units, Revenue, Operational Cost and Profit; it explains a 13% first-quarter profit drop with `gcm.distribution_change(scm, data_first_quarter_2021, data_first_quarter_2022, target_node='Profit', difference_estimation_func=...)` inside `gcm.confidence_intervals`, and a single anomalous day with `gcm.attribute_anomalies(scm, target_node='Profit', anomaly_samples=...)`, where "A positive attribution score means that the corresponding node contributed to the observed anomaly". DoWhy's user guide, "Attributing Distributional Changes" (https://www.pywhy.org/dowhy/main/user_guide/causal_tasks/root_causing_and_explaining/distribution_change.html, read 2026-11-09), cites the AISTATS 2021 paper for the method and adds a "multiply-robust causal change attribution method" for changes in the mean (Quintas-Martinez, Bahadori, Santiago, Mu, Heckerman, ICML 2024, PMLR 235: 41821–41840). The library paper is Blöbaum, Götz, Budhathoki, Mastakouri, Janzing, "DoWhy-GCM: An extension of DoWhy for causal inference in graphical causal models" (arXiv:2206.06821, abstract read 2026-11-09; JMLR MLOSS 25(147), 2024, per the DoWhy README read 2026-11-09), which "addresses diverse causal queries, such as identifying the root causes of outliers and distributional changes". [seat] Each of these needs a causal graph supplied by the analyst; the AWS example's graph (event → ad spend, page views, price, units) is the kind of graph an advertiser's diagnosis would draw, and the answer is only as good as that graph.
553
+
554
+ ## Stable enough for a skill
555
+
556
+ Each item is a definition, an Amazon rule or a documented mechanism that this seat expects to hold beyond the next release note, with the source page that states it. Figures are excluded; they are read at run time.
557
+
558
+ 1. Spend on a cost-per-click row equals impressions × CTR × CPC, and attributed sales equal clicks × per-click conversion rate × sales per purchase, because Amazon defines CTR as clicks over impressions and CPC as cost over clicks. Sources: v1 "Clicks (Delivery)" metric page; "Placement report for Sponsored Products".
559
+ 2. `metric.purchaseRate` divides by impressions; the per-click rate is `metric.purchaseRateOverClicks`. Source: v1 "Purchases" metric page.
560
+ 3. Reported impressions and clicks are net of invalid traffic; invalid counts are separate v1 fields, gross clicks a v1 field, and gross impressions a v3 column and report. Sources: v1 "Clicks (Delivery)" and "Impressions (Delivery)" metric pages; v3 "Gross and invalid traffic reports"; "Traffic validation".
561
+ 4. Sponsored Products ads display only when the advertised product is the Featured Offer at the time of the view and is in stock. Sources: Amazon Ads "FAQs"; staff reply in "Sponsored Products and Buy Box"; "How to improve your product detail page for advertising"; "Best practices for your Sponsored Products ads".
562
+ 5. Serving status is separate from user state in both API generations: v3 `state` against `extendedData.servingStatus` with `servingStatusDetails`; v1 `state` against `status.deliveryStatus` with `deliveryReasons`. Sources: Sponsored Products v3 OpenAPI; Amazon Ads API v1 merged OpenAPI.
563
+ 6. The serving status and delivery reason values name their level (account, portfolio, campaign, ad group, ad, target) and name the offer causes (not in buy box, out of stock, no purchasable offer, not buyable, landing page unavailable). Sources: same as 5.
564
+ 7. Sponsored Products, Sponsored Brands and Sponsored Display v3-era APIs each have their own serving status enum, with largely overlapping values. Sources: SP v3, SB v4 and SD OpenAPI models.
565
+ 8. Product eligibility has two severities: INELIGIBLE (cannot be included in an advertisement) and ELIGIBLE_WITH_WARNING (may not receive impressions), and is answered only for products sold by the merchant tied to the profile. Source: Eligibility OpenAPI.
566
+ 9. Moderation results carry a status, an expected completion time while in progress, and policy violations with evidence when rejected. Source: Moderation OpenAPI.
567
+ 10. A failed advertising payment pauses the account's campaigns; Amazon retries on a fixed schedule and reactivates on success; a backup method is charged without pausing. Source: "Resolve a payment failure".
568
+ 11. Billing notifications state an impact (CAMPAIGNS_SUSPENDED or NO_IMPACT) and a suspension date. Source: Billing OpenAPI.
569
+ 12. An out-of-budget campaign does not serve until its daily budget resets at midnight; budget changes take effect after a delay; portfolio caps and the Sponsored Products account cap stop campaigns as well as the campaign's own budget. Sources: "Troubleshoot your campaign status"; "Portfolio budgets"; Profiles OpenAPI.
570
+ 13. Off-Amazon cost is not visible in Campaign Manager and is reported in the Sponsored Products placement report; Amazon's campaign-status page tells an out-of-budget advertiser to account for it. Sources: "Troubleshoot your campaign status"; "Placement report for Sponsored Products".
571
+ 14. The change history covers Sponsored Products and Sponsored Brands only, has no field for who made a change, reaches back at most 90 days, and records budget-state transitions (IN_BUDGET) beside edits. Source: Change history OpenAPI.
572
+ 15. Impression, click and conversion figures are restated after first publication, for invalid traffic and for late-attributed conversions, and the restated record replaces the old value. Sources: "Sponsored ads reporting FAQ (version 3)"; "Reporting overview"; "Traffic validation"; "Amazon Marketing Stream v2 overview".
573
+ 16. A null or empty value in a v1 report means absent, not zero; a measured zero is reported as 0. Source: v1 "Helpful concepts".
574
+ 17. Reporting days follow the campaign's time zone; a profile's time zone governs date-based campaign management and reporting; change-history times are UTC. Sources: v1 "Dates"; Profiles OpenAPI; Change history OpenAPI.
575
+ 18. Monetary report metrics carry a budget currency, and a converted currency is a separate dimension. Sources: v1 "Budget currency" and "Converted currency" dimension pages; v1 `Report.currencyOfView`.
576
+ 19. Amazon publishes delivery and reporting incidents by region and category, with start and end times, on the Amazon Ads status page and its JSON files. Source: Amazon Ads status page and `history.schema.json`.
577
+ 20. Sponsored Products and Sponsored Brands prompts are billed as cost-per-click clicks within the existing campaigns, with campaigns enrolled automatically, in the US from 2026-03-25. Sources: "Sponsored Products prompts and Sponsored Brands prompts"; v3 "Prompt ad extension reports".
578
+ 21. Amazon describes its Sponsored Products price as the soft reserve when the bid clears both reserves, the bid itself when it clears only the hard reserve, never more than the bid, with reserves set in real time. Source: "Amazon's response to the FTC's lawsuit regarding Sponsored Ads".
579
+ 22. Search-term impression share, top-of-search impression share and category benchmark quartiles are v1 report metrics. Sources: v1 "Impression share (Search)" metric page; v1 benchmark metric pages.
580
+ 23. Search Query Performance reports a query's total volume, impressions, clicks, cart adds and purchases beside the ASIN's counts and shares, by Sunday-to-Saturday week, month or quarter. Source: `sellingPartnerSearchQueryPerformanceReport.json`.
581
+ 24. The API search-term report includes only terms with at least one click; Amazon's pages disagree on whether the console report also carries zero-click terms (the v3 FAQ says it does; the unified "Search term" template says at least 1 click). Sources: "Sponsored ads reporting FAQ (version 3)"; "Understand unified reporting".
582
+ 25. A v1 report warning DATE_LIMITED means the field began collecting data after the report's start date; warnings are non-fatal and the code list is open-ended. Sources: Amazon Ads API v1 merged OpenAPI; v1 "New features".
583
+ 26. Amazon can attach its own generated video to existing US Sponsored Products ads (auto-assembled videos), with a campaign-level opt-out field. Source: release note of 2026-08-09.
584
+ 27. An offer whose total price is above the competitive external price, where one is available, or above recent prices is ineligible to be the Featured Offer, whatever competitors do; the competitive external price is the lowest recent price for the item or an equivalent at a reputable retailer outside Amazon, and the retailer is not named. Sources: "Product Pricing API and Notifications FAQ"; "Notification Type Values" (`PRICING_HEALTH`); Seller Support email quoted in Seller Forums.
585
+ 28. A price update can be accepted with listing issue `100708` (`WARNING`, "Not eligible to be the Featured Offer due to uncompetitive price"), while `19037`, `19038` and `18701` (`ERROR`) reject it. Source: "Manage listings issues".
586
+ 29. `getFeaturedOfferExpectedPriceBatch` returns the listing price at or below which an offer can expect to become the Featured Offer, with a `resultStatus`; `getCompetitiveSummary` returns segmented featured offers with glance-view weights, reference prices including the competitive price threshold, lowest-priced offers and their live promotions. Sources: Product Pricing v2022-05-01 model; "Product Pricing API and Notifications FAQ".
587
+ 30. Amazon announced on 2026-07-06 that it is removing seller eligibility requirements for the Featured Offer, gradually across all stores, completing by the end of 2026, without changing how the Featured Offer is selected. Source: "Updates to Featured Offer eligibility requirements" (Seller Forums, News_Amazon).
588
+ 31. Sponsored Products ads show the listing's title, image and price, the list price when the offer is below it, and the Prime badge when the offer has Prime shipping; Amazon's display creatives add live deal, coupon and Subscribe & Save badges and star ratings from the listing. Sources: "How to improve your product detail page for advertising"; "Responsive eCommerce creatives".
589
+ 32. Deals require an overall rating of at least four stars and coupons at least 3.5 stars (Professional plan), and Lightning Deals run 4 to 12 hours. Source: "Guide to running Amazon seller promotions, coupons, and deals". Figures for human readers only.
590
+ 33. From 2026-02-12 to 2026-05-31, by category, reviews stopped being shared between variations with significant differences; star ratings are linked to the child ASIN and aggregated on the parent. Sources: "Changes to review sharing across product variations starting Feb 12" (News_Amazon); staff reply in "1 Star Rating Affecting Variation ASINS".
591
+ 34. SP-API notifications are delivered only to an Amazon SQS queue or an Amazon EventBridge destination, and Marketing Stream to advertiser-owned AWS destinations (Firehose or SQS for v1; an S3 bucket and SQS queue for v2); the Notifications API has no operation that returns delivered events. Sources: Notifications API v1 model; "Notifications API"; Stream v2 GA release note.
592
+ 35. The Promotions API reads promotions by status, ASIN, SKU, type and start, end or update date, with status EXPIRED for a promotion past its end date; it has no create or edit operation. Source: Promotions 2025-12-01 model.
593
+ 36. Catalog Items returns variation relationships (`parentAsins`, `childAsins`, `variationTheme`), browse classifications, images by variant (MAIN, PT01–PT08, SWCH) and sales ranks for an ASIN. Source: Catalog Items 2022-04-01 model.
594
+ 37. The SP v3 list request describes the extended fields as "creationDate, lastUpdateDate, servingStatus", while the returned `extendedData` fields are `creationDateTime`, `lastUpdateDateTime`, `servingStatus` and `servingStatusDetails`. Source: Sponsored Products v3 OpenAPI.
595
+
596
+ ## What cx must read at run time
597
+
598
+ Through the open door (`cx raw amazon-ads --origin <na|eu|fe> --method <verb> --path <path>`, with the profile scope header), each read below gives a live value that this file records only as a type:
599
+
600
+ - `GET /v2/profiles`: the profile's `timezone`, `currencyCode`, `countryCode` and `dailyBudget` (the Sponsored Products account cap, sellers only).
601
+ - `POST /sp/campaigns/list`, `/sp/adGroups/list`, `/sp/productAds/list`, `/sp/keywords/list`, `/sp/targets/list` with `includeExtendedDataFields: true`: `state`, `extendedData.servingStatus`, `servingStatusDetails` (name, message, help URL) and `lastUpdateDateTime`. The enum lists in sections C and D are as of 2026-11-09; the live model may add values.
602
+ - `POST /adsApi/v1/query/campaigns`, `/query/adGroups`, `/query/ads`, `/query/targets`, `/query/adExtensions`: `state`, `status.deliveryStatus`, `status.deliveryReasons`, `status.marketplaceSettings`, `startDateTime`, `endDateTime`, `budgets`, `siteRestrictions`, `lastUpdatedDateTime`; on ad extensions, `adExtensionSettings.videoExtension.videoType`; on campaigns, the `optOuts.videoExtension` setting. `QueryCampaignRequest` requires `adProductFilter`.
603
+ - Sponsored Brands v4 and Sponsored Display list operations: their own `servingStatus` values.
604
+ - `POST /eligibility/product/list`: per-ASIN and per-SKU eligibility `name` and `severity`. `POST /eligibility/programs`: account-level reason codes.
605
+ - `POST /moderation/results`: `moderationStatus`, `etaForModeration`, `policyViolations`.
606
+ - `POST /billing/statuses` and `POST /billing/notifications`: billing status code, notification name, impact, severity, suspension date.
607
+ - `POST /sp/campaigns/budget/usage`: `budgetUsagePercent` and `usageUpdatedTimestamp`. `POST /sp/campaigns/budgetRecommendations`: `percentTimeInBudget` and the missed-opportunity ranges with their dates.
608
+ - `POST /history`: change events with previous and new values and Unix timestamps, for up to the last 90 days.
609
+ - Reports (v1 `create/reports` and `retrieve/reports`, or v3 report types): `metric.impressions`, `metric.clicks`, `metric.totalCost`, `metric.purchases`, `metric.sales`, `metric.purchaseRateOverClicks`, the gross and invalid fields, the placement dimension, the prompt extension report, `metric.impressionShare`, `metric.topOfSearchImpressionShare`, the benchmark quartiles, `budgetCurrency.value`, `timeZone.value`, and each report's `warnings`, `failureReason` and `currencyOfView`. The settling and retention windows (sections K and L) are read from the reporting pages at run time, not from this file.
610
+
611
+ Outside the ads door, each through its own door:
612
+
613
+ - the Amazon Ads status page JSON (`status.json`, `history.json`, both public): open and past incidents by region and category;
614
+ - the Amazon Ads API release notes (public; an RSS feed is at `https://d3a0d0y2hgofx6.cloudfront.net/rss/en-us/ad-api-rss.xml`): dated changes after 2026-11-09;
615
+ - Selling Partner API reads, a different API with its own authorization, reached through `cx-amazon-sp-api` (`cx raw amazon-sp-api`), not `cx-amazon-ads`:
616
+ - reports: Sales and Traffic (`GET_SALES_AND_TRAFFIC_REPORT`: `buyBoxPercentage`, `sessions`, `pageViews`, `unitSessionPercentage`, `averageSellingPrice`, by child ASIN and day) and Search Query Performance (`GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT`);
617
+ - price and the Featured Offer: `POST /batches/products/pricing/2022-05-01/offer/featuredOfferExpectedPrice` (`getFeaturedOfferExpectedPriceBatch`: `featuredOfferExpectedPrice.listingPrice`, `resultStatus`, `currentFeaturedOffer`, `competingFeaturedOffer`), `POST /batches/products/pricing/2022-05-01/items/competitiveSummary` (`getCompetitiveSummary` with `includedData` `featuredBuyingOptions`, `referencePrices`, `lowestPricedOffers`: `segmentedFeaturedOffers[].featuredOfferSegments[].segmentDetails.glanceViewWeightPercentage`, `referencePrices[]` named `CompetitivePriceThreshold` and others, offers' `promotions[]`), and v0 `GET /products/pricing/v0/items/{Asin}/offers` or `/listings/{SellerSKU}/offers` (`Summary.CompetitivePriceThreshold`, `SuggestedLowerPricePlusShipping`, `BuyBoxEligibleOffers`, per offer `IsBuyBoxWinner`); each needs the Pricing role, and the rates are in each model's Usage Plan;
618
+ - listings: `GET /listings/2021-08-01/items/{sellerId}/{sku}` with `includedData=summaries,issues,offers,relationships` (`summaries[].status`, `summaries[].mainImage`, `summaries[].lastUpdatedDate`, `issues[].code` such as `100708`, `issues[].enforcements.actions` such as `SEARCH_SUPPRESSED` and `LISTING_SUPPRESSED`); a price change previewed with `PATCH` and `mode=VALIDATION_PREVIEW` returns the pricing issues before it is sent;
619
+ - catalogue: `GET /catalog/2022-04-01/items/{asin}` with `includedData=relationships,classifications,images,salesRanks`;
620
+ - promotions: `GET /promotions/2025-12-01/promotions` (`searchPromotions`, filters `asins`, `statuses`, `promotionTypes`, `endDateAfter`, `updateDateAfter`), `getPromotion`, `getSelection`;
621
+ - reviews: `GET /customerFeedback/2024-06-01/items/{asin}/reviews/topics` and `/reviews/trends` (topics, `starRatingImpact`, six monthly points; no star rating or review count; weekly refresh; seven marketplaces), and `/items/{asin}/browseNode`;
622
+ - stock: `GET /fba/inventory/v1/summaries` with `details=true` and, for changes since a time, `startDateTime` (`fulfillableQuantity`, `reservedQuantity`, `unfulfillableQuantity`, `lastUpdatedTime`).
623
+ - Not readable through any door named in this pack: SP-API notifications (`ANY_OFFER_CHANGED`, `PRICING_HEALTH`, `FBA_INVENTORY_AVAILABILITY_CHANGES`, `LISTINGS_ITEM_STATUS_CHANGE`, `LISTINGS_ITEM_ISSUES_CHANGE`) and Amazon Marketing Stream messages, which Amazon delivers only to AWS destinations (SQS, EventBridge, Firehose, S3) (section U). The polling reads above stand in for their content; event times and transitions between polls are lost.
624
+ - Keepa (`cx-keepa`): Buy Box seller history (`buyBoxSellerIdHistory`), the `BUY_BOX_SHIPPING`, `NEW`, `LISTPRICE` and `LIGHTNING_DEAL` price histories, `lastPriceChange`, `suggestedLowerPrice`, offer-count and `buyBoxEligibleOfferCounts`, `RATING` and `COUNT_REVIEWS` histories with `lastRatingUpdate`, `coupon` and `couponHistory` (from 2024-06-15), `deals` and `promotions` (Amazon's own US promotions only), `parentAsinHistory`, `historicalVariations`, `categories`, `categoryTree`, `salesRanks` and `images`.
625
+ - Statistical tests on a series cx has read (CUSUM, EWMA, Poisson or over-dispersed count limits, PELT changepoints, seasonal-hybrid ESD, DoWhy `gcm.distribution_change` and `gcm.attribute_anomalies`) are computations on data cx has already read, not Amazon reads; their parameters (k, h, λ, penalty, seasonality period) are the analyst's choice, not Amazon figures.
626
+
627
+ ## Pages read
628
+
629
+ Docs pages under `advertising.amazon.com/API/docs/en-us/` were read through their markdown sources at `https://d3a0d0y2hgofx6.cloudfront.net/en-us/<path>.md`, because the docs site is a JavaScript shell. Amazon Ads help pages were read from the content embedded in the public page served to a plain GET.
630
+
631
+ | Page name | URL | Type | Date read | What it gave |
632
+ |---|---|---|---|---|
633
+ | cx-amazon-ads skill and door reference | `cx-amazon-ads/skills/amazon-ads/SKILL.md`, `references/door.md` (plugin files) | internal | 2026-11-09 | The door's origins, profile headers and the operations cx can call |
634
+ | Paid keywords angle (listing playbook research) | `cx-listing-playbook/research/angles/paid-keywords.md` (package file) | internal | 2026-11-09 | Leads, each re-opened before citing here |
635
+ | Docs host contracts list | https://d3a0d0y2hgofx6.cloudfront.net/en-us/contracts.json | official | 2026-11-09 | URLs of every OpenAPI model read below |
636
+ | Sponsored Products v3 OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/SponsoredProducts_prod_3p.json | official | 2026-11-09 | Serving status and reason enums, entity states, list content types, budget usage, missed opportunities |
637
+ | Amazon Ads API v1 merged OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALLMerged_prod_3p.json | official | 2026-11-09 | State vs status, DeliveryStatus, DeliveryReason, query operations, Report warnings and currency of view |
638
+ | Change history OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Changehistory_prod_3p.json | official | 2026-11-09 | Scope (SP and SB), no "who", 90 days, event and change types, values |
639
+ | Eligibility OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Eligibility_prod_3p.json | official | 2026-11-09 | Product eligibility names and severities; program reason codes |
640
+ | Moderation OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Moderation_prod_3p.json | official | 2026-11-09 | Moderation statuses, ETA, policy violations |
641
+ | Advertising Billing OpenAPI | https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/AdvertisingBilling_prod_3p.json | official | 2026-11-09 | Billing status codes, notification names, impact, suspension date |
642
+ | Advertisers (account budget settings) OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Advertisers_prod_3p.json | official | 2026-11-09 | Account-level budget settings model (context for the account cap) |
643
+ | Exports OpenAPI | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIExports_prod_3p.json | official | 2026-11-09 | Campaign, ad group, ad and target exports |
644
+ | Profiles API model | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/profiles/3-0/openapi.yaml | official | 2026-11-09 | Time zone per marketplace, currency code, account daily budget |
645
+ | Sponsored Brands v4 OpenAPI | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/4-0/openapi.json | official | 2026-11-09 | SB serving status enums (27/34/39 values) |
646
+ | Sponsored Display OpenAPI | https://advertising.amazon.com/API/docs/en-us/sponsored-display/3-0/openapi (YAML source) | official | 2026-11-09 | SD serving status enum, cost type cpc or vcpm |
647
+ | Sponsored ads reporting FAQ (version 3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/faq | official | 2026-11-09 | Latency, restatement days, console vs API search terms, report cadence |
648
+ | Amazon Ads reporting overview ("Reporting overview") | https://advertising.amazon.com/API/docs/en-us/guides/reporting/overview | official | 2026-11-09 | IVT 30 days, 5-day wait, 60-day conversion changes, shutoff after 2027-06-30 |
649
+ | Reporting overview (new reporting API) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/overview | official | 2026-11-09 | Traffic date, 7/14-day windows, view conversions reported 0, concurrency per client ID |
650
+ | Dates and historical data retention (v1 reporting) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dates | official | 2026-11-09 | Campaign time zone aggregation, retention by grain, benchmark start date |
651
+ | Metrics library (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/library | official | 2026-11-09 | Index of metric family pages (the definitions are on the family pages) |
652
+ | Clicks metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/delivery/clicks | official | 2026-11-09 | Gross, invalid, net clicks; CTR |
653
+ | Impressions metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/delivery/impressions | official | 2026-11-09 | Net and invalid impressions, invalid rate, CPM and CPM quartiles (12 fields; no gross-impressions field) |
654
+ | Costs metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/costs-and-fees/costs | official | 2026-11-09 | totalCost, CPC, converted CPC |
655
+ | Purchases metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/amazon-retail-conversions/purchases | official | 2026-11-09 | purchaseRate per impression; purchaseRateOverClicks |
656
+ | Long-term sales metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/amazon-retail-conversions/long-term-sales | official | 2026-11-09 | longTermSales definition and program eligibility |
657
+ | Impression share (Search) metric page (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/impression-share/search | official | 2026-11-09 | Impression share, rank, top-of-search share |
658
+ | Dimensions library (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/library | official | 2026-11-09 | Dimension list and v3 names |
659
+ | Budget currency dimension (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/budget-currency | official | 2026-11-09 | Currency required for monetary metrics |
660
+ | Converted currency dimension (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/converted-currency | official | 2026-11-09 | Converted figures |
661
+ | Placement classification dimension (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/supply/placement-classification | official | 2026-11-09 | Placement classification definition |
662
+ | Placement dimension (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/supply/placement | official | 2026-11-09 | Placement dimension |
663
+ | Product relevance dimension (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/product/product-relevance | official | 2026-11-09 | Promoted vs halo |
664
+ | Date and hour dimensions (v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/time/date | official | 2026-11-09 | Time grains |
665
+ | Helpful concepts (v1 reporting) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/helpful-concepts | official | 2026-11-09 | Null is not zero; reasons a value is missing; time as a dimension |
666
+ | New features (v1 reporting) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/new-features | official | 2026-11-09 | Warning signals; DATE_LIMITED means the field began collecting data after the report start |
667
+ | Limits (v1 reporting) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/limits | official | 2026-11-09 | Per-client-ID concurrency and rate |
668
+ | v1 report type pages (SP campaigns, targeting, search term, advertised product) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/report-types/sp-campaigns (and siblings) | official | 2026-11-09 | Field sets per report type |
669
+ | Quickstart (v1 reporting) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/quickstart | official | 2026-11-09 | Create and retrieve flow |
670
+ | Columns (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/columns | official | 2026-11-09 | placementClassification, advertiserTimezone, campaignStatus, topOfSearchImpressionShare |
671
+ | Report types overview (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/overview | official | 2026-11-09 | Report type list |
672
+ | Campaign, targeting, search term, advertised product reports (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/campaign (and siblings) | official | 2026-11-09 | Group-bys and columns |
673
+ | Placement reports (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/placement | official | 2026-11-09 | No separate SP placement report; campaignPlacement group-by |
674
+ | Gross and invalid traffic reports (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/gross-and-invalid-traffic | official | 2026-11-09 | IVT report types and columns, 365-day range |
675
+ | Prompt ad extension reports (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/prompt-ad-extension | official | 2026-11-09 | Prompt report, 95-day retention, US only |
676
+ | Amazon Marketing Stream overview | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/overview | official | 2026-11-09 | Budget consumption and entity change messages |
677
+ | Amazon Marketing Stream v2 overview | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/v2/overview | official | 2026-11-09 | Restated records re-delivered with totals |
678
+ | Campaign management overview | https://advertising.amazon.com/API/docs/en-us/guides/campaign-management/overview | official | 2026-11-09 | v1 campaign management context |
679
+ | Sponsored Products product ads guide | https://advertising.amazon.com/API/docs/en-us/guides/sponsored-products/product-ads | official | 2026-11-09 | Product ad context |
680
+ | Profiles guide | https://advertising.amazon.com/API/docs/en-us/guides/account-management/authorization/profiles | official | 2026-11-09 | Profile per marketplace |
681
+ | Exports overview | https://advertising.amazon.com/API/docs/en-us/guides/exports/overview | official | 2026-11-09 | Exports are metadata at request time |
682
+ | Rate limiting | https://advertising.amazon.com/API/docs/en-us/reference/concepts/rate-limiting | official | 2026-11-09 | 429 with Retry-After; report limits vary with queue |
683
+ | Release notes | https://advertising.amazon.com/API/docs/en-us/release-notes/index | official | 2026-11-09 | Dated changes 2024–2026 (section N) |
684
+ | Release notes: Ads API v0, Ads API v1, deprecations | https://advertising.amazon.com/API/docs/en-us/release-notes/deprecations (and siblings) | official | 2026-11-09 | Bid recommendation and suggested-keyword shutoffs |
685
+ | Amazon Ads status page | https://status.ads.amazon.com/ | official | 2026-11-09 | Incident page |
686
+ | Status page current JSON | https://status.ads.amazon.com/status.json | official | 2026-11-09 | No open incidents at 09:40Z (verifier's read) |
687
+ | Status page history JSON | https://status.ads.amazon.com/history.json | official | 2026-11-09 | 15 records, 2026-06-03 to 2026-11-04, Stream and Measurement & Reporting only |
688
+ | Status page history schema | https://status.ads.amazon.com/history.schema.json | official | 2026-11-09 | Categories, subcategories, message types |
689
+ | Traffic validation | https://advertising.amazon.com/help/GBYPYH79NGJJ5JPS | official | 2026-11-09 | IVT filtering, 30-day monitoring, restatement, undetected-IVT pattern |
690
+ | Troubleshoot your campaign status | https://advertising.amazon.com/help/GEC8BVH43CU9UNYH | official | 2026-11-09 | Console statuses, midnight reset, 1–2 hour budget delay, off-site cost, review time |
691
+ | Reconcile invalid traffic (IVT) related discrepancies | https://advertising.amazon.com/help/GTUSCE79ZDJSR5VZ | official | 2026-11-09 | Reconcile gross before IVT |
692
+ | Understand unified reporting | https://advertising.amazon.com/help/GMH8A8AJSH4ATV6T | official | 2026-11-09 | Renamed metrics, traffic date, null dimensions, console report shutdown by 2026-12-31 |
693
+ | Traffic metrics | https://advertising.amazon.com/help/GFPH5YBBZAQRPVLF | official | 2026-11-09 | Metric names in unified reporting |
694
+ | Placement report for Sponsored Products | https://advertising.amazon.com/help/G89VFUTQUWFFN2VU | official | 2026-11-09 | Only source for off-Amazon metrics; 90-day lookback; Amazon Business placements; column definitions |
695
+ | Resolve a payment failure | https://advertising.amazon.com/help/G2SQRLBPB8TY587E | official | 2026-11-09 | Pause on failure, funds available vs total balance, retry, backup method |
696
+ | Portfolio budgets | https://advertising.amazon.com/help/GU7E77PGF96FMW3X | official | 2026-11-09 | Portfolio caps |
697
+ | General requirements | https://advertising.amazon.com/help/GEGABVAQZ3P46HBK | official | 2026-11-09 | Policy base for rejections |
698
+ | Prohibited content across all supply | https://advertising.amazon.com/help/GCYTNMH84AJ537JG | official | 2026-11-09 | Policy base for rejections |
699
+ | Prohibited products and services across all supply | https://advertising.amazon.com/help/GYTHJ2AC4RFHTDZU | official | 2026-11-09 | Policy base for rejections |
700
+ | Copy a campaign | https://advertising.amazon.com/help/GPFGH67KMNLQ5TKU | official | 2026-11-09 | Title and terms only; nothing used |
701
+ | Support Center Homepage | https://advertising.amazon.com/help/G2NN8D3LSUR9V9EA | official | 2026-11-09 | Help index |
702
+ | FAQs | https://advertising.amazon.com/resources/faq | official | 2026-11-09 | Featured Offer and stock gate |
703
+ | How to improve your product detail page for advertising | https://advertising.amazon.com/library/guides/improve-your-products-for-advertising | official | 2026-11-09 | In-stock and Featured Offer; out-of-stock ads paused |
704
+ | Best practices for your Sponsored Products ads | https://advertising.amazon.com/library/guides/sponsored-products-best-practices | official | 2026-11-09 | SP only appear in stock; Featured Offer definition |
705
+ | Guide to dynamic bidding - up and down with Sponsored Products | https://advertising.amazon.com/library/guides/dynamic-bidding-sponsored-products | official | 2026-11-09 | Up to 100% bid changes |
706
+ | Sponsored Products prompts and Sponsored Brands prompts | https://advertising.amazon.com/resources/whats-new/unboxed-2025-sponsored-products-and-sponsored-brands-prompts | official | 2026-11-09 | GA 2026-03-25, auto-enrolment, CPC billing, Prompts tab |
707
+ | The 11 biggest takeaways from unBoxed 2026 | https://advertising.amazon.com/library/news/unboxed-2026-news-announcements | official | 2026-11-09 | 2026 launches |
708
+ | Introducing Amazon Ads Agent | https://advertising.amazon.com/library/news/amazon-ads-agent | official | 2026-11-09 | Agent context (owned by automation-and-amazon-tools.md) |
709
+ | Sponsored Products and Buy Box (Seller Forums, staff reply) | https://sellercentral.amazon.com/seller-forums/discussions/t/b55bc259-e982-43bb-a660-58ad413c95ea | official | 2026-11-09 | "Featured Offer at the time the customer views the ad" |
710
+ | Amazon's response to the FTC's lawsuit regarding Sponsored Ads | https://www.aboutamazon.com/md/company-news/amazon-ftc-sponsored-ads-lawsuit-response | official | 2026-11-09 | Hard and soft reserves, pricing rule, auction statistics |
711
+ | Sales and Traffic report schema | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerSalesAndTrafficReport.json | official | 2026-11-09 | buyBoxPercentage, sessions, unit session percentage, refundRate wording |
712
+ | Search Query Performance report schema | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchQueryPerformanceReport.json | official | 2026-11-09 | Query volume and ASIN shares by week, month, quarter |
713
+ | Listings Items API model 2021-08-01 | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/listings-items-api-model/listingsItems_2021-08-01.json | official | 2026-11-09 | Listing status, issues, enforcement actions |
714
+ | selling-partner-api-models repository (notification schemas) | https://github.com/amzn/selling-partner-api-models | official | 2026-11-09 | Offer, inventory, listing and pricing notification types |
715
+ | FTC, States Sue Amazon Over Secret Ad Surcharge Scheme | https://www.ftc.gov/news-events/news/press-releases/2026/08/ftc-states-sue-amazon-over-secret-ad-surcharge-scheme | opinion (government allegation) | 2026-11-09 | Soft reserve from 2019; share of the time SP advertisers paid their bid (served to a fetch tool; plain curl got 404) |
716
+ | Why Amazon Performance Drops Feel Random (Optmyzr, Disha) | https://www.optmyzr.com/blog/amazon-ppc-performance-drops-root-cause-analysis/ | opinion | 2026-11-09 | Metric chain; "where in the chain did the change start" |
717
+ | Your Amazon ACoS Spiked (Optmyzr, Lakshmi Padmanaban) | https://www.optmyzr.com/blog/amazon-acos-spike-diagnosis/ | opinion | 2026-11-09 | Three causes; six questions |
718
+ | Why Your Amazon Ads Report Is Lying to You (Optmyzr, Lakshmi Padmanaban) | https://www.optmyzr.com/blog/amazon-ads-reporting-delays/ | opinion | 2026-11-09 | 14,991-campaign study; cancellation, VAT claims |
719
+ | Amazon CPC: What Your Cost Per Click Actually Means (Canopy, Chuck Kessler) | https://canopymanagement.com/amazon-cpc-what-your-cost-per-click-actually-means/ | opinion | 2026-11-09 | Amazon's CPC wording quoted; realized CPC vs bid |
720
+ | Amazon Advertising Console vs Advertising API (Openbridge) | https://docs.openbridge.com/en/articles/5575078-amazon-advertising-console-vs-advertising-api | opinion | 2026-11-09 | 5% discrepancy, 72 hours, console-only reports in 2024 |
721
+ | Amazon Advertising Attribution, Definitions, and Timing (Openbridge) | https://docs.openbridge.com/en/articles/4208366-amazon-advertising-attribution-definitions-and-timing | opinion | 2026-11-09 | 48 hours, 72-hour cancellations, 14-day lag on some ad types |
722
+ | Understanding Amazon Advertising Reports: Identifying Data Discrepancies (Acadia, Robert Benlloch) | https://acadia.io/understanding-amazon-advertising-reports-identifying-data-discrepancies | opinion | 2026-11-09 | Report types and their attribution bases |
723
+ | Your Ads Stopped Showing and It's Not Your Bid (Rel.ai) | https://rel.ai/blog/buy-box-impression-drops | opinion | 2026-11-09 | Buy Box loss as impression-drop cause |
724
+ | Digital Ads Benchmark Report Q2 2026 highlights (Karooya on Tinuiti) | https://www.karooya.com/blog/digital-ads-benchmark-report-by-tinuiti-q2-2026-key-highlights/ | opinion | 2026-11-09 | SP spend, clicks, CPC year on year |
725
+ | Digital Ads Benchmark Report Q3 2026 (Tinuiti) | https://tinuiti.com/research-insights/research/digital-ads-benchmark-report/ | opinion | 2026-11-09 | Landing page only; report behind a form |
726
+ | Amazon's AI shopping prompts are now billable (PPC Land, Luis Rijo) | https://ppc.land/amazons-ai-shopping-prompts-are-now-billable-what-changed-on-march-25/ | opinion | 2026-11-09 | Prompt billing from 2026-03-25 |
727
+ | Amazon Sponsored Products campaigns gain creator placements on August 10 (PPC Land) | https://ppc.land/amazon-sponsored-products-campaigns-gain-creator-placements-on-august-10/ | opinion | 2026-11-09 | Creator placements, settings, inferred search terms |
728
+ | Amazon adds off-Amazon spend toggle to Sponsored Products bulksheets (PPC Land) | https://ppc.land/amazon-adds-off-amazon-spend-toggle-to-sponsored-products-bulksheets/ | opinion | 2026-11-09 | Bulksheet column 2026-06-08 |
729
+ | Amazon rolls out a new history feature (PPC Land, 2020) | https://ppc.land/amazon-rolls-out-a-new-history-feature-for-sponsored-products-and-sponsored-brands-campaigns/ | opinion | 2026-11-09 | Console History tab, 90 days |
730
+ | Your Sponsored Products Ads Are Now Running Inside Creator Reviews (Ad Badger) | https://www.adbadger.com/blog/your-sponsored-products-ads-are-now-running-inside-creator-reviews-and-nobody-asked-you-first/ | opinion | 2026-11-09 | Shared budget; on-Amazon share can fall with flat spend |
731
+ | Offsite placements for Amazon Sponsored Products ads (Perpetua Marketing Team, 2023-08-31) | https://perpetua.io/blog-off-site-amazon-sponsored-product-ads/ | opinion | 2026-11-09 | Amazon's 2023-08-16 announcement as Perpetua reports it; "Off Amazon" placement row |
732
+ | New controls for offsite Sponsored Products placements (Intentwise, Michael Waters) | https://www.intentwise.com/blog/new-controls-for-offsite-sponsored-products-placements | opinion | 2026-11-09 | 2025 off-Amazon settings; default on |
733
+ | Amazon Ads: about 20% of brand sales land after the attribution window (Relevant Audience) | https://www.relevantaudience.com/ecommerce-marketing/amazon-ads-20-percent-sales-after-attribution-window/ | opinion | 2026-11-09 | Amazon's 20% estimate via Digiday |
734
+ | Keepa API backend Product structure | https://raw.githubusercontent.com/keepacom/api_backend/master/src/main/java/com/keepa/api/backend/structs/Product.java | opinion (vendor data definition) | 2026-11-09 | Buy Box seller history, offer counts, bought-past-month |
735
+ | Change History (python-amazon-ad-api docs) | https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html | opinion | 2026-11-09 | Client-library endpoint map; THEME needs v1.1 |
736
+ | Adtributor (USENIX NSDI 2014) | https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/bhagwan | research | 2026-11-09 | Multi-dimensional root cause in ad revenue |
737
+ | Why did the distribution change? (arXiv 2102.13384) | https://arxiv.org/abs/2102.13384 | research | 2026-11-09 | Causal mechanism change attribution |
738
+ | Causal structure-based root cause analysis of outliers (PMLR 162) | https://proceedings.mlr.press/v162/budhathoki22a.html | research | 2026-11-09 | Outlier root cause in causal graphs |
739
+ | The LMDI approach to decomposition analysis (Ang 2005), and Ang 2015 | https://doi.org/10.1016/j.enpol.2003.10.010 (Crossref metadata and text) | research | 2026-11-09 | Exact multiplicative and additive decomposition |
740
+ | The Unfavorable Economics of Measuring the Returns to Advertising | https://doi.org/10.1093/qje/qjv023 | research | 2026-11-09 | Noise floor of advertising measurement |
741
+ | Reserve Prices in Internet Advertising Auctions: A Field Experiment | https://doi.org/10.1086/725702 (Crossref metadata); abstract at https://econpapers.repec.org/RePEc:ucp:jpolec:doi:10.1086/725702 | research | 2026-11-09 | Revenues "increased substantially" after new reserve prices |
742
+ | Internet Advertising and the Generalized Second-Price Auction; Position auctions | AER 97(1); IJIO 25(6) (Crossref metadata) | research | 2026-11-09 | GSP pricing depends on bids below |
743
+ | Inferring causal impact using Bayesian structural time-series models | Ann. Appl. Stat. 9(1) (Crossref metadata) | research | 2026-11-09 | Cross-reference to change-measurement.md |
744
+ | Your guide to Amazon Ads pricing transparency | https://advertising.amazon.com/library/guides/pricing-transparency | official | 2026-11-09 (verifier) | Searched for reserve-price wording; none found |
745
+ | Sponsored Display OpenAPI (YAML) | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-display/3-0/openapi.yaml | official | 2026-11-09 (verifier) | SD 18-value campaign servingStatus; vCPM $1 minimum |
746
+ | Release notes: auto-assembled videos, video ad extensions, benchmarks GA, off-Amazon bulksheet column | https://advertising.amazon.com/API/docs/en-us/release-notes/index | official | 2026-11-09 (verifier) | 2026 changes added to section N |
747
+ | Release notes: Deprecations (SB Product Collection) | https://advertising.amazon.com/API/docs/en-us/release-notes/deprecations | official | 2026-11-09 (verifier) | Product Collection mapped to Manual Collection from August 2026 |
748
+ | selling-partner-api-models notification schemas (directory listing) | https://api.github.com/repos/amzn/selling-partner-api-models/contents/schemas/notifications | official | 2026-11-09 (verifier) | Notification names confirmed |
749
+ | Product Pricing API v2022-05-01 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/product-pricing-api-model/productPricing_2022-05-01.json | official | 2026-11-09 (gap fill) | FOEP operation, result statuses, competitive summary, segments, reference prices, promotions |
750
+ | Product Pricing API v0 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/product-pricing-api-model/productPricingV0.json | official | 2026-11-09 (gap fill) | CompetitivePriceThreshold, SuggestedLowerPricePlusShipping, IsBuyBoxWinner |
751
+ | Product Pricing API and Notifications FAQ | https://developer-docs.amazon/sp-api/docs/pricing-faq.md | official | 2026-11-09 (gap fill) | Featured Offer ineligibility rule; competitive external price; average selling price; Price by Amazon |
752
+ | Product Pricing API (overview) | https://developer-docs.amazon/sp-api/docs/product-pricing-api.md | official | 2026-11-09 (gap fill) | Pull and push pricing signals; Pricing role |
753
+ | Price Adjustment Automation Workflows Guide | https://developer-docs.amazon/sp-api/docs/price-adjustment-automation-workflows-guide.md | official | 2026-11-09 (gap fill) | `BuyBoxDisqualification`; FOEP result-status glosses |
754
+ | Manage listings issues | https://developer-docs.amazon/sp-api/docs/manage-listings-issues.md | official | 2026-11-09 (gap fill) | Pricing validation issues 100708, 19037, 19038, 18701 |
755
+ | Notification Type Values | https://developer-docs.amazon/sp-api/docs/notification-type-values.md | official | 2026-11-09 (gap fill) | PRICING_HEALTH, ANY_OFFER_CHANGED, FBA inventory and listings notifications; their workflows |
756
+ | Notifications API (guide) | https://developer-docs.amazon/sp-api/docs/notifications-api.md | official | 2026-11-09 (gap fill) | Push instead of polling; backup mechanism advice; grantless operations |
757
+ | Notifications API v1 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/notifications-api-model/notifications.json | official | 2026-11-09 (gap fill) | Destinations are SQS or EventBridge only; no read of delivered events |
758
+ | PricingHealthNotification and AnyOfferChangedNotification schemas | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/notifications/PricingHealthNotification.json (and sibling) | official | 2026-11-09 (gap fill) | Reference price fields; issueType |
759
+ | SP-API docs index | https://developer-docs.amazon/sp-api/llms.txt | official | 2026-11-09 (gap fill) | Page slugs on the moved docs host |
760
+ | FBA Inventory API v1 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/fba-inventory-api-model/fbaInventory.json | official | 2026-11-09 (gap fill) | getInventorySummaries, startDateTime, inventory details |
761
+ | Get inventory summaries (FBA) | https://developer-docs.amazon/sp-api/docs/get-fba-inventory-summaries.md | official | 2026-11-09 (gap fill) | Context only |
762
+ | Customer Feedback API 2024-06-01 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/customer-feedback-api-model/customerFeedback_2024-06-01.json | official | 2026-11-09 (gap fill) | Review topics and trends, browse node; no rating or count |
763
+ | Customer Feedback API (guide) | https://developer-docs.amazon/sp-api/docs/customer-feedback-api.md | official | 2026-11-09 (gap fill) | Marketplaces, weekly refresh, English only, roles |
764
+ | Promotions API 2025-12-01 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/promotions-api-model/promotions_2025-12-01.json | official | 2026-11-09 (gap fill) | Promotion types, statuses, schedule, filters |
765
+ | Catalog Items API 2022-04-01 model | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/catalog-items-api-model/catalogItems_2022-04-01.json | official | 2026-11-09 (gap fill) | Relationships, classifications, images, sales ranks |
766
+ | Listings Items API model 2021-08-01 (re-read) | https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/models/listings-items-api-model/listingsItems_2021-08-01.json | official | 2026-11-09 (gap fill) | includedData values; summary mainImage, status, dates |
767
+ | Understanding Amazon listing status and seller-fulfilled inventory management; Listings Items API Issues Troubleshooting | https://developer-docs.amazon/sp-api/docs/understanding-amazon-listing-status-and-seller-fulfilled-inventory-management.md (and sibling) | official | 2026-11-09 (gap fill) | Context only; nothing quoted |
768
+ | Updates to Featured Offer eligibility requirements (Seller Forums, News_Amazon) | https://sellercentral.amazon.com/seller-forums/discussions/t/7336583f-09ac-41de-99d1-667017a88db2 | official | 2026-11-09 (gap fill) | Seller eligibility removed from July 2026, completing end of 2026; datePublished 2026-07-06 |
769
+ | DESKTOP AMAZON MAIN PAGE NOT SHOWING COMPETITOR'S OFFERS (Susie_Amazon reply) | https://sellercentral.amazon.com/seller-forums/discussions/t/b7a102d6-1bf4-479c-8946-033198aa5ea8 | official | 2026-11-09 (gap fill) | Eligibility update expands considered sellers; Featured Offer eligible column; Pricing Health |
770
+ | "Price too High" thread (Kai_Amazon reply) | https://sellercentral.amazon.com/seller-forums/discussions/t/69b43d11-b63a-49b2-b0c0-6f4e7e3a242c | official | 2026-11-09 (gap fill) | Self-service dispute of the competitive external price |
771
+ | Customers can't shop on Amazon due to the Competitive Price Policy | https://sellercentral.amazon.com/seller-forums/discussions/t/79106d23-5805-4c73-84c2-b9250d33bac1 | opinion (seller post) and official (Kai_Amazon reply) | 2026-11-09 (gap fill) | One external retailer setting the threshold; staff restatement |
772
+ | Seller Forums thread quoting a Seller Support email (Cooper_Amazon replies) | https://sellercentral.amazon.com/seller-forums/discussions/t/e21b1179-1f35-48d7-8a86-3a23af2efec3 | official (quoted support email) | 2026-11-09 (gap fill) | "substantially higher compared to recent price points both on Amazon and other retail platforms" |
773
+ | Unusually Low Featured Offer thread (TaylorR_Amazon reply) | https://sellercentral.amazon.com/seller-forums/discussions/t/001a0bb7-8d6c-4f6d-974f-6e66bac6bff0 | official | 2026-11-09 (gap fill) | Read; nothing quoted (the reply points to Seller Support) |
774
+ | Changes to review sharing across product variations starting Feb 12 (News_Amazon) | https://sellercentral.amazon.com/seller-forums/discussions/t/a572986d-9bb1-4e91-a53f-41c575874dd7 | official | 2026-11-09 (gap fill) | Review sharing rules and rollout dates |
775
+ | 1 Star Rating Affecting Variation ASINS (Billy_Amazon reply) | https://sellercentral.amazon.com/seller-forums/discussions/t/ff882f88-985f-4211-a681-4ec7b39cb5f5 | official | 2026-11-09 (gap fill) | Star-only ratings; ratings linked to child, aggregated on parent |
776
+ | How to improve your product detail page for advertising (re-read) | https://advertising.amazon.com/library/guides/improve-your-products-for-advertising | official | 2026-11-09 (gap fill) | What an SP ad shows; review, image, Prime guidance |
777
+ | Best practices for your Sponsored Products ads (re-read) | https://advertising.amazon.com/library/guides/sponsored-products-best-practices | official | 2026-11-09 (gap fill) | Review and image guidance |
778
+ | Responsive eCommerce creatives (ad specs) | https://advertising.amazon.com/resources/ad-specs/ecommerce | official | 2026-11-09 (gap fill) | Live pricing, deal and coupon badges, star ratings in display creatives |
779
+ | Guide to running Amazon seller promotions, coupons, and deals (Sell on Amazon blog) | https://sell.amazon.com/blog/seller-promotions | official | 2026-11-09 (gap fill) | Lightning Deal 4–12 hours; rating floors for deals (4) and coupons (3.5) |
780
+ | An author's guide to Sponsored Products (re-read) | https://advertising.amazon.com/library/guides/authors-guide-to-sponsored-products | official | 2026-11-09 (gap fill) | Up-and-down 100% top of first page, 50% elsewhere |
781
+ | Guide to dynamic bidding - up and down (re-read) | https://advertising.amazon.com/library/guides/dynamic-bidding-sponsored-products | official | 2026-11-09 (gap fill) | 100% for all placements; dateModified 2026-10-09 |
782
+ | Sponsored Products v3 OpenAPI (re-read) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/SponsoredProducts_prod_3p.json | official | 2026-11-09 (gap fill) | extendedData field names vs request description; AUTO_FOR_SALES wording; ASIN_CATEGORY_SAME_AS |
783
+ | Release notes and Deprecations (re-read) | https://advertising.amazon.com/API/docs/en-us/release-notes/index and /deprecations | official | 2026-11-09 (gap fill) | Product Collection January and February 2027; GA note concurrency; Stream v2 S3 and SQS |
784
+ | Amazon Ads reporting overview; Reporting v1 overview; Limits (re-read) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/overview (and ads-v1/overview, ads-v1/limits) | official | 2026-11-09 (gap fill) | Per-advertiser vs per-client-ID wording |
785
+ | Amazon Marketing Stream overview (re-read) | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/overview | official | 2026-11-09 (gap fill) | Destinations Firehose and SQS |
786
+ | Keepa API backend Product structure (re-read) | https://raw.githubusercontent.com/keepacom/api_backend/master/src/main/java/com/keepa/api/backend/structs/Product.java | opinion (vendor data definition) | 2026-11-09 (gap fill) | Rating, review count, coupon, deals, promotions, parent ASIN history, categories, suggestedLowerPrice |
787
+ | Your Amazon ACoS Spiked (Optmyzr, re-read) | https://www.optmyzr.com/blog/amazon-acos-spike-diagnosis/ | opinion | 2026-11-09 (gap fill) | Conversion-drop causes; step 4 |
788
+ | Amazon Conversion Rate (Canopy Management, Chuck Kessler) | https://canopymanagement.com/amazon-conversion-rate/ | opinion | 2026-11-09 (gap fill) | Order of conversion causes; session denominator; parent-level blending |
789
+ | 'Why Are Sales Down?' Diagnosis Checklist (eComEngine, Bob Norberg) | https://www.ecomengine.com/blog/why-are-amazon-sales-down-checklist | opinion | 2026-11-09 (gap fill) | Coupon, variation, category and price checks |
790
+ | How to Diagnose Traffic vs Conversion Problems (Seller Labs) | https://www.sellerlabs.com/knowledge-base/how-to-diagnose-traffic-vs-conversion-problems-on-amazon-listings/ | opinion | 2026-11-09 (gap fill) | Sessions then USP; weekday-matched comparison |
791
+ | Amazon's Seller Assistant now checks review sharing eligibility per variation (PPC Land, Luis Rijo) | https://ppc.land/amazons-seller-assistant-now-checks-review-sharing-eligibility-per-variation/ | opinion | 2026-11-09 (gap fill) | Star rating under a sponsored product follows the review pool |
792
+ | Continuous inspection schemes (Page 1954) | https://doi.org/10.1093/biomet/41.1-2.100 (Crossref record) | research | 2026-11-09 (gap fill) | CUSUM origin (bibliographic record) |
793
+ | Control Chart Tests Based on Geometric Moving Averages (Roberts 1959) | https://doi.org/10.1080/00401706.1959.10489860 (Crossref record) | research | 2026-11-09 (gap fill) | EWMA origin (bibliographic record) |
794
+ | NIST/SEMATECH e-Handbook §6.3.2, 6.3.2.3, 6.3.2.4, 6.3.3.1, 6.3.3.2 | https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc323.htm (and siblings) | research (reference handbook) | 2026-11-09 (gap fill) | CUSUM, EWMA, Poisson count limits |
795
+ | Handling over-dispersion of performance indicators (Spiegelhalter 2005) | https://doi.org/10.1136/qshc.2005.013755 (abstract via Europe PMC) | research | 2026-11-09 (gap fill) | Over-dispersion corrections |
796
+ | Funnel plots for comparing institutional performance (Spiegelhalter 2005) | https://doi.org/10.1002/sim.1970 (Crossref abstract) | research | 2026-11-09 (gap fill) | Control limits as a funnel; over-dispersion |
797
+ | Optimal detection of changepoints with a linear computational cost | https://arxiv.org/abs/1101.1438; doi:10.1080/01621459.2012.737745 | research | 2026-11-09 (gap fill) | PELT |
798
+ | Automatic Anomaly Detection in the Cloud Via Statistical Learning | https://arxiv.org/abs/1704.07706 | research | 2026-11-09 (gap fill) | Seasonal decomposition with median and MAD |
799
+ | twitter/AnomalyDetection README | https://github.com/twitter/AnomalyDetection | research (software) | 2026-11-09 (gap fill) | S-H-ESD builds on Generalized ESD |
800
+ | Percentage Points for a Generalized ESD Many-Outlier Procedure (Rosner 1983) | https://doi.org/10.1080/00401706.1983.10487848 (Crossref record) | research | 2026-11-09 (gap fill) | Generalized ESD reference |
801
+ | Why did the distribution change? (Amazon Science publication page; PMLR 130) | https://www.amazon.science/publications/why-did-the-distribution-change; https://proceedings.mlr.press/v130/budhathoki21a.html | research | 2026-11-09 (gap fill) | Amazon authors; PMLR 130: 1666–1674 |
802
+ | New method identifies the root causes of statistical outliers (Amazon Science) | https://www.amazon.science/blog/new-method-identifies-the-root-causes-of-statistical-outliers | research (Amazon Science blog) | 2026-11-09 (gap fill) | Amazon ICML 2022 paper; Shapley averaging |
803
+ | AWS contributes novel causal machine learning algorithms to DoWhy (Amazon Science) | https://www.amazon.science/blog/aws-contributes-novel-causal-machine-learning-algorithms-to-dowhy | research (Amazon Science blog) | 2026-11-09 (gap fill) | Amazon's algorithms open-sourced in DoWhy |
804
+ | Root Cause Analysis with DoWhy (AWS Open Source Blog) | https://aws.amazon.com/blogs/opensource/root-cause-analysis-with-dowhy-an-open-source-python-library-for-causal-machine-learning/ | research (AWS blog) | 2026-11-09 (gap fill) | Online-shop example; gcm.distribution_change, gcm.attribute_anomalies; DoWhy v0.8 |
805
+ | DoWhy README and "Attributing Distributional Changes" | https://github.com/py-why/dowhy; https://www.pywhy.org/dowhy/main/user_guide/causal_tasks/root_causing_and_explaining/distribution_change.html | research (software) | 2026-11-09 (gap fill) | gcm module; method citations |
806
+ | DoWhy-GCM (arXiv 2206.06821) | https://arxiv.org/abs/2206.06821 | research | 2026-11-09 (gap fill) | Library paper; authors |
807
+
808
+ ### Unreachable
809
+
810
+ - **"Understand Sponsored Products off-Amazon advertising"** (the Amazon support article PPC Land cites as updated 2026-08-04): not found by site search or at any guessed help ID; Amazon's own words for the 2026 off-Amazon settings and inferred search terms were therefore not read.
811
+ - **Amazon Ads API concept page "advertising console" reporting** (`/API/docs/en-us/concepts/reporting/advertising-console`, linked by Openbridge): the docs host returns NoSuchKey for its markdown source; the page appears to have been removed.
812
+ - **Change history guides** (`guides/change-history/overview`, `guides/change-history/get-started`, `reference/change-history`): NoSuchKey on the docs host; the OpenAPI model was read instead.
813
+ - **Eligibility, moderation, billing and budget-usage guides** at guessed docs paths: NoSuchKey; the OpenAPI models were read instead.
814
+ - **An attribution concept page on the docs host**: NoSuchKey at the guessed paths.
815
+ - **Seller Central help pages** (for example `sellercentral.amazon.com/help/hub/reference/external/G10471`, `G200418100`, `G202059240`): the content loads only through the help hub's POST content call, which this seat may not use. Seller Forums threads are served to a plain GET and were read.
816
+ - **Amazon Ads help text on reserve prices**, which Amazon's FTC response says was updated: not located on the help pages read.
817
+ - **The Amazon page with the sentence "will never exceed your maximum adjusted bid"**, quoted by Canopy Management: not located.
818
+ - **aboutamazon.com Prime Day 2026 pages** (`/news/retail/prime-day-2026`, `/prime-day-2026-dates`, `/when-is-prime-day-2026`): 404.
819
+ - **Tinuiti Digital Ads Benchmark Report Q3 2026**: behind a lead form.
820
+ - **Search Engine Land**: Cloudflare challenge (403).
821
+ - **SSRN copy of Ostrovsky & Schwarz and the JPE DOI landing page**: Cloudflare challenge and 403; the bibliographic record was read through Crossref, and the finding is quoted from the abstract.
822
+ - **Digiday's 2026-10-01 article** on post-window sales: not opened; the figure is cited through Relevant Audience.
823
+ - **Status page "six months" history announcement (2024-11-13)**, cited in the first pass: not in `history.json` on 2026-11-09 (15 records from 2026-06-03) nor in the page's script; the claim was removed.
824
+ - **Brand Analytics / Search Query Performance help text** defining the median click price: Seller Central help, behind the help hub's POST content call; not read.
825
+ - **FTC press release by plain GET**: curl received 404 (also at `ftc.gov` without `www`); the page was read through a fetch tool.
826
+ - **Pricing Health** (Seller Central help, `GSTH6YN3BR8XNWBW`) and **Featured Offer eligibility** (`G200418100`): JavaScript shells to a plain GET; the content comes only through the help hub's POST content call, which this seat may not use. Amazon's rule was read instead from the SP-API pricing FAQ, the notification docs, "Manage listings issues" and staff replies in Seller Forums. The "As of September 2026" help-page wording in `areas/launch.md` P-launch-6 rests on the listing playbook's capture and was not re-opened here.
827
+ - **Seller Central "Guidelines for reviews shared across product variations"** and **"Variation relationship FAQ"**: same reason; the Seller Forums announcement of 2026-01-07 and a staff reply were read instead.
828
+ - **The Amazon forum moderator post** Canopy quotes ("Sessions track total visits to a product page, regardless of the seller in the Buy Box"): not located; cited as Canopy's quote.
829
+ - **The Seller Forums post** PPC Land cites on Seller Assistant's review-sharing check: not opened.
830
+ - **Ad Badger, "Amazon coupons"** (https://www.adbadger.com/blog/amazon-coupons/): HTTP 504 on two tries.
831
+ - **Full texts of Page (1954) and Roberts (1959)**: behind publisher access; the bibliographic records and the NIST handbook's account were read.
832
+ - **By rule, not called**: any Amazon Ads API host, Login with Amazon, the Amazon Ads MCP server, any Selling Partner API host, and any page needing sign-in. No seller's data was read.
833
+
834
+ ## Open questions
835
+
836
+ 1. **Which midnight resets a budget.** "Troubleshoot your campaign status" says an out-of-budget campaign waits "until midnight when the daily budget is reset" without naming the time zone. The Profiles model says the profile time zone governs "all date-based campaign management", and v1 reports aggregate by campaign time zone; no page read states outright that the reset follows the same clock.
837
+ 2. **Report concurrency: per advertiser or per client ID.** "Reporting overview" says one concurrent report per advertiser; the v1 reporting overview and "Limits" say per client ID, "not per advertiser account". The two are on live Amazon pages at the same date.
838
+ 3. **`percentTimeInBudget`.** The SP v3 model types it as a fraction from 0 to 1, describes -1 as "not enough information", and gives 65.2 in its own example. Which a live response returns for a new campaign was not observed (no seller data was read).
839
+ 4. **Restatement windows.** Amazon's pages give 3 days (impressions and clicks), at least 5 days (click accuracy), up to 30 days (IVT monitoring), 1/7/28 days and up to 42 days (conversions), and up to 60 days (conversions). Whether these are one schedule seen from different surfaces or different schedules is not stated.
840
+ 5. **Rufus and prompt clicks.** The 2024 Rufus note says campaign reports "will not include Rufus metrics"; the 2026 prompts announcement says a prompt click "may open a dialog in Rufus" and is billed as CPC within the campaign. Whether clicks on ads inside Rufus now appear in campaign reports, and under which placement value, is not stated on any page read.
841
+ 6. **Placement classification values.** The v1 dimension page describes `placementClassification.value` as "categories like top of search, gateway page, etc." without an enumeration. Whether off-Amazon, creator, prompt, Alexa+ and Amazon Business supply each have their own value in the API was not established.
842
+ 7. **Inferred search terms for off-Amazon placements.** PPC Land reports that inferred terms appear in search-term reports and can be negated; Amazon's own article was unreachable, and how such terms are marked in the API search-term report is unknown.
843
+ 8. **Reserve prices on Amazon's help pages.** Amazon's FTC response says help content now explains reserve prices; this seat did not find that text. Whether any report field exposes the reserve or the share of clicks charged the full bid is not documented on the pages read.
844
+ 9. **Cancellations, VAT and discounts in attributed sales.** Optmyzr and Openbridge state that orders cancelled within 72 hours are removed and (Optmyzr) that VAT is subtracted and cart discounts are not reflected. No Amazon page read in this pass states these rules; `beyond/metrics-and-attribution.md` may hold the Amazon source.
845
+ 10. **Rest-of-search in the change history.** The PLACEMENT_GROUP change type lists DETAIL_PAGE and TOP_OF_SEARCH positions only. Whether rest-of-search adjustment changes are recorded, and under what value, is not stated.
846
+ 11. **Console report shutdown.** "Understand unified reporting" says console sponsored ads reports shut down by 2026-12-31; "Reporting overview" says API v3 reporting is shut off after 2027-06-30. Whether console figures read after 2026-12-31 change definition (for example halo inclusion in detail page views) for Sponsored Products is not stated.
847
+ 12. **Budget usage for Sponsored Brands and Sponsored Display.** This seat read the SP v3 budget usage operation only; whether SB and SD have equivalents in the current models was not checked.
848
+ 13. **Status page coverage.** The status page's `history.json` held records from 2026-06-03 on when read; its window is not stated on any page read. Records name region and subsystem, not affected accounts; whether a listed incident affected a given account cannot be read from it.
849
+ 14. **Console search-term coverage.** The v3 FAQ says the console search-term report holds every term with an impression; the unified console "Search term" template says terms "that resulted in at least 1 click". Which holds for console reports after the legacy reports shut down is not stated.
850
+ 15. **Prompts and benchmarks in console unified reporting.** "Understand unified reporting" lists both as not yet integrated (planned later in 2026), while API release notes put benchmarks into v1 reporting on 2026-09-25; whether prompt clicks appear in console unified reports was not established.
851
+ 16. **Partial Featured Offer and ad serving.** `getCompetitiveSummary` splits the Featured Offer by segment (Prime membership, sample postal code) with glance-view weights, and a Seller Forums staff reply states ads serve when the product is the Featured Offer "at the time the customer views the ad". Whether an ad is withheld per segment (for example from non-Prime shoppers only) is not stated on any page read.
852
+ 17. **Ads after a Pricing Health ineligibility.** Amazon states an offer ineligible on price cannot be the Featured Offer, and that ads need the Featured Offer. Which serving status or delivery reason value the Ads API shows in that state (`AD_NOT_IN_BUYBOX`, `NOT_IN_BUYBOX`, an Eligibility `NOT_IN_BUYBOX` warning, or none) is not stated; no seller data was read.
853
+ 18. **Category targeting after a browse-node change.** No page read states whether a reclassified ASIN leaves category targets aimed at its old node at once, or how the change appears in category benchmarks.
854
+ 19. **Rating counts in Keepa.** Keepa states that its variation-specific `ratingCount` history stopped on 2025-04-09 because Amazon removed the data point; whether the aggregate `COUNT_REVIEWS` history is affected is not stated.
855
+ 20. **Ad creative badges for Sponsored Products.** Amazon's ad specs state that display creatives badge live deals and coupons; this seat found no Amazon page that states which badges a Sponsored Products ad shows beyond title, image, price, list price and Prime.
856
+ 21. **Product Collection end date.** The Deprecations page gives January 2027 (end of creates) and the ListMigrations note February 2027 (end of support); which date existing Product Collection ads stop serving is not stated.
857
+
858
+ ## Positions
859
+
860
+ Amazon's sources first. Each position is a definition, an Amazon rule, a documented mechanism, a measured effect with its source, or a named party's claim stated as theirs.
861
+
862
+ **P-diagnosis-1.** [official] Amazon defines click-through rate as clicks divided by impressions and cost per click as cost divided by clicks, so on a cost-per-click row spend equals impressions × CTR × CPC. Source: v1 "Clicks (Delivery)" metric page; "Placement report for Sponsored Products".
863
+
864
+ **P-diagnosis-2.** [official] In the v1 reporting API, `metric.purchaseRate` is purchases divided by impressions; the per-click conversion rate is `metric.purchaseRateOverClicks`, whose v3 name is "14 Day Conversion Rate". Source: v1 "Purchases" metric page.
865
+
866
+ **P-diagnosis-3.** [official] Reported impressions and clicks exclude invalid traffic; v1 carries `metric.grossClicks`, `metric.invalidClicks`, `metric.invalidImpressions` and the two invalid rates (no gross-impressions field), and the v3 report types `spGrossAndInvalids`, `sbGrossAndInvalids` and `sdGrossAndInvalids` carry `grossImpressions` and `grossClickThroughs`. Source: v1 "Clicks (Delivery)" and "Impressions (Delivery)" metric pages; v3 "Gross and invalid traffic reports".
867
+
868
+ **P-diagnosis-4.** [official] Amazon states that a Sponsored Products ad does not display if the product is not the Featured Offer or is out of stock, and an Amazon staff reply states the condition is evaluated "at the time the customer views the ad". Source: Amazon Ads "FAQs"; Seller Forums "Sponsored Products and Buy Box".
869
+
870
+ **P-diagnosis-5.** [official] Amazon states that an advertised product that goes out of stock "will be automatically paused within your campaign". Source: "How to improve your product detail page for advertising".
871
+
872
+ **P-diagnosis-6.** [official] In the Sponsored Products v3 API, the serving status of a campaign, ad group, product ad, keyword or target is returned in `extendedData.servingStatus` with `servingStatusDetails` (name, message, help URL) when `includeExtendedDataFields` is true, separately from the user-set `state`. Source: Sponsored Products v3 OpenAPI.
873
+
874
+ **P-diagnosis-7.** [official] Sponsored Products v3 product-ad serving status values include AD_NOT_IN_BUYBOX, AD_OUT_OF_STOCK, AD_NO_PURCHASABLE_OFFER, AD_NOT_BUYABLE, AD_LANDING_PAGE_NOT_AVAILABLE, AD_MISSING_IMAGE, AD_INELIGIBLE and AD_POLICING_SUSPENDED, and the reason values include ASIN_QUARANTINED, BRAND_REMOVED, VARIATION_PARENT, RESTRICTED_GL, CLOSED_GL and a set of MODERATION_*_PV_DETAIL values. Source: Sponsored Products v3 OpenAPI.
875
+
876
+ **P-diagnosis-8.** [official] In the Amazon Ads API v1, `state` is user-defined (DRAFT, PROPOSED, ENABLED, PAUSED, ARCHIVED) and `status` carries `deliveryStatus` (DELIVERING, LIMITED, NOT_DELIVERING, UNAVAILABLE), up to 50 `deliveryReasons`, and per-marketplace settings. LIMITED means a global resource has different delivery status across marketplaces. Source: Amazon Ads API v1 merged OpenAPI.
877
+
878
+ **P-diagnosis-9.** [official] v1 delivery reasons name account and billing causes (including ADVERTISER_PAYMENT_FAILURE, ADVERTISER_OUT_OF_PREPAY_BALANCE, ADVERTISER_OUT_OF_POSTPAY_CREDIT_LIMIT, SPEND_LIMIT_EXCEEDED, ADVERTISER_POLICING_SUSPENDED), budget causes at campaign, portfolio and account level, date causes (CAMPAIGN_END_DATE_REACHED, CAMPAIGN_PENDING_START_DATE), offer causes (NOT_IN_BUYBOX, OUT_OF_STOCK, NO_INVENTORY, NO_PURCHASABLE_OFFER, NOT_BUYABLE) and moderation causes. Source: Amazon Ads API v1 merged OpenAPI.
879
+
880
+ **P-diagnosis-10.** [official] Sponsored Products, Sponsored Brands and Sponsored Display each define their own serving status enums with largely shared values; ADVERTISER_OUT_OF_PREPAY_BALANCE and UNKNOWN appear in the SB v4 enums and in no SP v3 serving status enum, and the 18-value SD campaign enum includes STATUS_UNAVAILABLE and INELIGIBLE. Source: Sponsored Brands v4 OpenAPI; Sponsored Display OpenAPI.
881
+
882
+ **P-diagnosis-11.** [official] The Eligibility API returns, per product, a status name (including NOT_IN_BUYBOX, OUT_OF_STOCK, LISTING_SUPRESSED, MISSING_IMAGE, VARIATION_PARENT, RESTRICTED_CATEGORY) and a severity of INELIGIBLE ("cannot be included in an advertisement") or ELIGIBLE_WITH_WARNING ("may not receive impressions"), only for products sold by the merchant associated with the profile. Source: Eligibility OpenAPI.
883
+
884
+ **P-diagnosis-12.** [official] The Moderation API returns APPROVED, FAILED, IN_PROGRESS or REJECTED, an expected completion time in UTC while in progress, and policy violations with evidence when rejected; Amazon states campaign review can take up to three business days. Source: Moderation OpenAPI; "Troubleshoot your campaign status".
885
+
886
+ **P-diagnosis-13.** [official] When Amazon cannot charge the default payment method, campaigns pause; seller-account charges are taken from Funds Available, not Total Balance; Amazon retries at a fixed frequency and reactivates when a payment succeeds; a backup method is charged without pausing campaigns. Source: "Resolve a payment failure".
887
+
888
+ **P-diagnosis-14.** [official] Billing notifications carry an impact of CAMPAIGNS_SUSPENDED or NO_IMPACT, a severity, and a suspension date. Source: Advertising Billing OpenAPI.
889
+
890
+ **P-diagnosis-15.** [official] An out-of-budget campaign is not eligible to serve until midnight when the daily budget resets; budget changes typically take one to two hours to take effect; portfolio budget caps and the Sponsored Products daily budget cap in Advertising Settings also stop campaigns. Source: "Troubleshoot your campaign status"; "Portfolio budgets".
891
+
892
+ **P-diagnosis-16.** [official] Sponsored Products off-Amazon cost is not visible in Campaign Manager and is reported in the Sponsored Products placement report, which Amazon calls "the only source for reporting on off Amazon store metrics". Source: "Troubleshoot your campaign status"; "Placement report for Sponsored Products".
893
+
894
+ **P-diagnosis-17.** [official] `POST /sp/campaigns/budget/usage` returns a campaign's budget usage percent with its update timestamp, and `POST /sp/campaigns/budgetRecommendations` returns the share of time in budget and ranges of estimated missed impressions, clicks and sales over seven days, which the model says are not guaranteed. Source: Sponsored Products v3 OpenAPI.
895
+
896
+ **P-diagnosis-18.** [official] With `budgetControls.campaignUnspentBudgetSharing` enabled (release note of 2025-07-19), high-performing campaigns in a portfolio can spend up to twice their daily budget from unspent campaign budget of previous days in the month, within the total monthly portfolio budget. Source: Amazon Ads API "Release notes".
897
+
898
+ **P-diagnosis-19.** [official] The change history API returns changes for Sponsored Products and Sponsored Brands only, "doesn't return information about who made the change", reaches back at most 90 days, and records each change with its previous value, new value and Unix timestamp; campaign change types include STATUS, IN_BUDGET (true or false), BUDGET_AMOUNT, END_DATE, SMART_BIDDING_STRATEGY and PLACEMENT_GROUP. Source: Change history OpenAPI.
899
+
900
+ **P-diagnosis-20.** [official] Amazon states initial impression and click data is available within 12 hours and can change for up to three days; conversions first appear within 24 hours and are restated at 1, 7 and 28 days, and up to 42 days with a 14-day window. Source: "Sponsored ads reporting FAQ (version 3)".
901
+
902
+ **P-diagnosis-21.** [official] Amazon monitors traffic for invalid activity for up to 30 days, removes it from invoices and reports, recommends waiting at least five days for the most accurate click data, and states conversions are subject to change for up to 60 days back. Source: "Traffic validation"; "Reporting overview".
903
+
904
+ **P-diagnosis-22.** [official] Amazon states that a significant drop in invalid-traffic rate with an anomalous rise in CTR, impressions or clicks could suggest undetected invalid traffic, that a simultaneous drop in conversion rate is "a higher confidence indicator" for sponsored ads, and that the invalid-traffic rate alone does not indicate it. Source: "Traffic validation".
905
+
906
+ **P-diagnosis-23.** [official] In v1 reports, a missing value is empty (CSV) or null (JSON) and "does not imply zero"; a measured zero is reported as 0. Reasons Amazon gives for a missing value include data not yet available and access restrictions. Source: v1 "Helpful concepts".
907
+
908
+ **P-diagnosis-24.** [official] A completed v1 report can carry non-fatal warnings per field with the codes DATE_LIMITED (the field began collecting data after the report's start date, so part of the range has no data), NO_PERMISSION (an account in scope lacks access to the field) and PENDING_DEPRECATION; Amazon says new codes may be added. Source: Amazon Ads API v1 merged OpenAPI; v1 "New features".
909
+
910
+ **P-diagnosis-25.** [official] v1 report dates aggregate in each campaign's time zone, a profile's time zone governs date-based campaign management and reporting (America/Los_Angeles for US, CA and MX), and change-history times are UTC. Source: v1 "Dates"; Profiles OpenAPI; Change history OpenAPI.
911
+
912
+ **P-diagnosis-26.** [official] Monetary v1 metrics require `budgetCurrency.value`; converted figures are carried by `convertedCurrency.value`, the `...Converted` metrics and the report's `currencyOfView`. Source: v1 currency dimension pages; Amazon Ads API v1 merged OpenAPI.
913
+
914
+ **P-diagnosis-27.** [official] Amazon publishes incidents for sponsored ads delivery, campaign management, reports and Marketing Stream by region on the Amazon Ads status page, with machine-readable current and history files; reporting incidents on 2026-08-13 to 08-15 and 2026-09-01 to 09-03 were posted for each of NA, EU and FE with the message that no campaign metrics had been lost. Source: Amazon Ads status page, `history.json`, `history.schema.json`.
915
+
916
+ **P-diagnosis-28.** [official] Sponsored Products and Sponsored Brands prompts became generally available in the US on 2026-03-25, campaigns are enrolled automatically, prompts are charged "as part of your CPC bidding and billing parameters", and prompt clicks appear in the existing Sponsored Products or Sponsored Brands reporting, with a separate prompt report (US only). Source: "Sponsored Products prompts and Sponsored Brands prompts"; v3 "Prompt ad extension reports".
917
+
918
+ **P-diagnosis-29.** [official] Amazon stated in 2024 that Sponsored ads may appear in Rufus-related placements in the US and that campaign reports will not include Rufus metrics, and in 2025 that Alexa+ performance metrics will be consolidated within existing reporting. Source: Amazon Ads API "Release notes".
919
+
920
+ **P-diagnosis-30.** [official] Amazon describes its Sponsored Ads auction as having a hard reserve that a bid must exceed to enter and a soft reserve set in real time; a winner whose bid exceeds both pays the soft reserve, a winner whose bid exceeds only the hard reserve pays its bid, and no advertiser pays more than its bid. Source: "Amazon's response to the FTC's lawsuit regarding Sponsored Ads".
921
+
922
+ **P-diagnosis-31.** [official] Amazon states that from 2019 to 2024 the average inflation-adjusted CPC for Sponsored Products search ads was flat while conversion rates rose 24% from 2021 to 2025, that about 92% of selected Sponsored Products ads in 2024 were not the highest bid, and that in one study competitors' average bids on keywords fell about 83% when one advertiser stopped bidding. Source: "Amazon's response to the FTC's lawsuit regarding Sponsored Ads". Figures for human readers only.
923
+
924
+ **P-diagnosis-32.** [official] v1 reports carry search-term impression share and rank and top-of-search impression share for Sponsored Products and Sponsored Brands, and category benchmark quartiles for CPC, CTR, CPM, ROAS and purchase rate from 2025-06-01, compatible with date, week and month and not with campaign or search-term dimensions. Source: v1 impression share and benchmark metric pages; v1 "Dates".
925
+
926
+ **P-diagnosis-33.** [official] The Search Query Performance report gives, per query and Sunday-to-Saturday week (or month or quarter), the query's total volume, impressions, clicks, cart adds and purchases and the ASIN's counts and shares of each; the schema types `totalMedianClickPrice` as a currency amount without a description. Source: `sellingPartnerSearchQueryPerformanceReport.json`.
927
+
928
+ **P-diagnosis-34.** [official] The Sales and Traffic report's `buyBoxPercentage` is "The percentage of page views where the buy box (the add to shopping cart link) appeared on the page for customers to add your product to their cart"; its `refundRate` description states the inverse of a refund rate ("dividing unitsOrdered by unitsRefunded"). Source: `sellerSalesAndTrafficReport.json`.
929
+
930
+ **P-diagnosis-35.** [official] The API search-term report includes only terms with at least one click. Amazon's v3 FAQ says the console search-term report includes every term with an impression, while "Understand unified reporting" describes the unified console "Search term" template as terms "that resulted in at least 1 click". Source: "Sponsored ads reporting FAQ (version 3)"; "Understand unified reporting".
931
+
932
+ **P-diagnosis-36.** [official] Unified reporting renames metrics and widens some definitions (Detail page views includes halo; Detail page views (promoted) is promoted only), reports conversions on traffic date, and shows null for dimensions that do not apply to an ad product; Amazon says console sponsored ads reports shut down by 2026-12-31, and lists Sponsored Products prompts and benchmarks among reports not yet in console unified reporting. Source: "Understand unified reporting".
933
+
934
+ **P-diagnosis-37.** [official] Under dynamic bids up and down, Amazon's dynamic-bidding guide states it "will increase or decrease your bids by up to 100% for all placements based on performance", and the Sponsored Products v3 model says `AUTO_FOR_SALES` changes bids "by a maximum of 100%"; Amazon's author's guide, modified the same day (2026-10-09), still says "up to 100% for placements at the top of the first page of shopping results and by up to 50% for all other placements". The ceiling is `areas/bids-and-placements.md`'s (P-bids-and-placements-8). Source: "Guide to dynamic bidding - up and down with Sponsored Products"; Sponsored Products v3 OpenAPI; "An author's guide to Sponsored Products".
935
+
936
+ **P-diagnosis-38.** [official] The `/v2/sp/targets/bidRecommendations` endpoint and the v3 theme-based bid recommendation content type were announced for shutoff on 2025-05-15 (the SP v3 model read 2026-11-09 still lists the v3 content type beside v4 and v5), and the v2 suggested-keyword endpoints were deprecated on 2026-01-27 with shutoff in June 2026. Source: Amazon Ads API "Release notes".
937
+
938
+ **P-diagnosis-39.** [opinion] The FTC and 22 states allege that Amazon added an undisclosed soft reserve "beginning in 2019" and that Sponsored Products advertisers paid the amount of their bid about 80% of the time by 2024 (30–40% in 2021); Amazon disputes the case. Source: FTC press release of 2026-08-31.
939
+
940
+ **P-diagnosis-40.** [opinion] Optmyzr (Disha) describes Amazon PPC metrics as a chain from impressions through CTR, clicks, conversion rate and orders to sales and ACoS, and puts the diagnostic question as "Where in the chain did the change start?" Source: Optmyzr, "Why Amazon Performance Drops Feel Random".
941
+
942
+ **P-diagnosis-41.** [opinion] Optmyzr (Lakshmi Padmanaban) names three root causes of an ACoS rise (traffic, conversion rate, demand or market shift); the checks it names include whether the comparison window has settled, impressions and CTR by campaign type rather than blended, the placement report, and branded against non-branded campaigns. Source: Optmyzr, "Your Amazon ACoS Spiked".
943
+
944
+ **P-diagnosis-42.** [opinion] Optmyzr reports from 14,991 campaigns that in the top 5% attributed sales grew by at least 18.75% and impressions shifted by at least 36.67% between day 1 and day 17 of the same period, and that one campaign in 20 showed discrepancies large enough to change a decision. Source: Optmyzr, "Why Your Amazon Ads Report Is Lying to You". Figures for human readers only.
945
+
946
+ **P-diagnosis-43.** [opinion] Openbridge reports Amazon as saying a console-to-API discrepancy above 5% may indicate a data issue, and lists four console reports it found absent from the API in 2024 (SP Performance Over Time, Search Term Impression Share, SP Budget, SB Category Benchmark). Source: Openbridge, "Amazon Advertising Console vs Advertising API".
947
+
948
+ **P-diagnosis-44.** [opinion] Openbridge and Optmyzr state that orders cancelled within 72 hours are removed from attributed sales. Source: Openbridge, "Amazon Advertising Attribution, Definitions, and Timing"; Optmyzr, "Why Your Amazon Ads Report Is Lying to You".
949
+
950
+ **P-diagnosis-45.** [opinion] Rel.ai states that the most common cause of a sudden Sponsored Products impression drop is Buy Box loss, and that the console can show a campaign as enabled and delivering while its ads are skipped. Source: Rel.ai, "Your Ads Stopped Showing and It's Not Your Bid".
951
+
952
+ **P-diagnosis-46.** [opinion] Ad Badger states that off-Amazon creator clicks draw the same daily budget, so on-Amazon impression share can fall while spend stays flat. PPC Land reports creator placements from 2026-08-10, with inferred search terms for placements without a shopper query. Source: Ad Badger, "Your Sponsored Products Ads Are Now Running Inside Creator Reviews"; PPC Land, "Amazon Sponsored Products campaigns gain creator placements on August 10".
953
+
954
+ **P-diagnosis-47.** [opinion] Chuck Kessler (Canopy Management) quotes Amazon's wording that the final CPC "will never exceed your maximum adjusted bid" and states that the gap between bid and average CPC is the advertiser's only account-specific read on the price cushion. Source: Canopy Management, "Amazon CPC: What Your Cost Per Click Actually Means".
955
+
956
+ **P-diagnosis-48.** [opinion] Tinuiti's Q2 2026 benchmark, as summarized by Karooya, reports Sponsored Products spend up 38% and CPC up 1% year on year, with Sponsored Brands CPC up by double digits for a fifth straight quarter. Source: Karooya, "Digital Ads Benchmark Report by Tinuiti | Q2 2026". Figures for human readers only.
957
+
958
+ **P-diagnosis-49.** [opinion] Relevant Audience, reporting Digiday, states that Amazon Ads estimates about 20% of a brand's sales value arrives after the standard attribution window, quoting Lily Tong of Amazon Ads. Source: Relevant Audience, "Amazon Ads: about 20% of brand sales land after the attribution window". Figure for human readers only.
959
+
960
+ **P-diagnosis-50.** [research] The log-mean Divisia index decomposes the change in a product of factors exactly, with no residual, into one term per factor (multiplicatively as log ratios, additively weighted by the logarithmic mean). Source: Ang (2005), *Energy Policy* 33: 867–871; Ang (2015), *Energy Policy* 86: 233–238.
961
+
962
+ **P-diagnosis-51.** [research] Adtributor locates the dimension values behind an anomaly in advertising revenue and derived measures such as cost per click by ranking explanations on explanatory power, succinctness and surprise, with reported accuracy above 95% on its evaluation. Source: Bhagwan et al., NSDI 2014.
963
+
964
+ **P-diagnosis-52.** [research] Lewis and Rao found, across 25 advertising field experiments, a median confidence interval on ROI wider than 100 percentage points, because individual sales are highly variable relative to advertising's effect. Source: Lewis & Rao (2015), *QJE* 130(4): 1941–1973.
965
+
966
+ **P-diagnosis-53.** [research] A large field experiment on reserve prices in sponsored search auctions found that "revenues increased substantially after the new reserve prices were introduced". Source: Ostrovsky & Schwarz (2023), *JPE* 131(12): 3352–3376.
967
+
968
+ **P-diagnosis-54.** [research] In the generalized second-price auction, a bidder's price per click depends on the bids and quality of the advertiser ranked below it. Source: Edelman, Ostrovsky & Schwarz (2007), *AER* 97(1); Varian (2007), *IJIO* 25(6).
969
+
970
+ **P-diagnosis-55.** [research] Given a causal graph, a change in a variable's distribution can be attributed to changes in the causal mechanisms (each variable's conditional distribution given its parents), and an outlier score to contributions of upstream variables. Source: Budhathoki et al., AISTATS 2021 (arXiv:2102.13384); Budhathoki et al., ICML 2022 (PMLR 162).
971
+
972
+ **P-diagnosis-56.** [official] Amazon generates video creative and attaches it to existing US Sponsored Products ads (auto-assembled videos); a campaign opts out through `optOuts.videoExtension`, and the extension is identified by `adExtensionSettings.videoExtension.videoType`. Source: Amazon Ads API "Release notes", 2026-08-09.
973
+
974
+ **P-diagnosis-57.** [official] A Listings Items issue can carry the enforcement action `SEARCH_SUPPRESSED` ("the catalog item is hidden from search results"), beside `LISTING_SUPPRESSED` and `CATALOG_ITEM_REMOVED`. Source: Listings Items API model 2021-08-01.
975
+
976
+ **P-diagnosis-58.** [official] Since 2026-06-08 US Sponsored Products bulksheets carry an "Off-Amazon ad serving" column that "allows advertisers to update settings for ads served off amazon". Source: Amazon Ads API "Release notes"; reported also by PPC Land.
977
+
978
+ **P-diagnosis-59.** [official] Billing notification names include SELLER_ACCOUNT_INSUFFICIENT_AVAILABLE_BALANCE_CAUSED_SUSPENSION and SELLER_ACCOUNT_BALANCE_RESERVED, matching Amazon's help statement that seller-account charges come from Funds Available, which excludes reserves. Source: Advertising Billing OpenAPI; "Resolve a payment failure".
979
+
980
+ **P-diagnosis-60.** [official] Amazon states that an offer whose total price (price plus shipping) is higher than the Competitive External Price, where one is available, or higher than recent prices, is ineligible to be the Featured Offer, and that this "means that Amazon cannot select the offer as the Featured Offer at the current price, regardless of changes to price or stock of competitors". Source: "Product Pricing API and Notifications FAQ"; Seller Support email quoted in Seller Forums (2025-03-30).
981
+
982
+ **P-diagnosis-61.** [official] Amazon defines the Competitive External Price as the lowest price for the item, or items customers might consider equivalent (including near-identical products under a different brand, and per-unit prices scaled to pack size), recently found at a reputable retailer outside Amazon, and does not disclose the retailer; a seller can dispute an outdated one through a self-service case with automated resolution "in as little as 30 minutes". Source: "Product Pricing API and Notifications FAQ"; Kai_Amazon reply in Seller Forums (2026-08-07).
983
+
984
+ **P-diagnosis-62.** [official] Because Sponsored Products ads display only when the advertised product is the Featured Offer (P-diagnosis-4), a price above the competitive external price or recent prices is a documented cause of an impression drop with no change in the ads account; the price can be accepted by the listing with issue `100708` ("Not eligible to be the Featured Offer due to uncompetitive price", severity WARNING). Source: Amazon Ads "FAQs"; "Product Pricing API and Notifications FAQ"; "Manage listings issues".
985
+
986
+ **P-diagnosis-63.** [official] The `PRICING_HEALTH` notification's reference prices are the Featured Offer price, the 60-day average selling price (promotional sales excluded), the highest 14-day price shipped and sold by Amazon (`retailOfferPrice`), the list price (`msrpPrice`) and the competitive price threshold, and its `issueType` `BuyBoxDisqualification` marks an offer disqualified from the Featured Offer. Source: "Notification Type Values"; `PricingHealthNotification.json`; "Product Pricing API and Notifications FAQ"; "Price Adjustment Automation Workflows Guide".
987
+
988
+ **P-diagnosis-64.** [official] `getFeaturedOfferExpectedPriceBatch` returns, for up to 40 SKUs, the listing price at or below which the offer can expect to become the Featured Offer "(before applicable promotions)", with `resultStatus` VALID_FOEP, NO_COMPETING_OFFER, OFFER_NOT_ELIGIBLE, OFFER_NOT_FOUND or ASIN_NOT_ELIGIBLE, and Amazon states the Featured Offer "is not guaranteed because competing offers might change". Source: Product Pricing v2022-05-01 model; "Price Adjustment Automation Workflows Guide".
989
+
990
+ **P-diagnosis-65.** [official] `getCompetitiveSummary` returns the Featured Offer per segment (customer membership PRIME, NON_PRIME or DEFAULT, a sample postal code, and the segment's share of glance views), reference prices such as `CompetitivePriceThreshold`, the lowest-priced offers, and each offer's live `COUPON`, `DEAL` or `BASKET_BUILDING` promotion with its discounted price. Source: Product Pricing v2022-05-01 model; "Product Pricing API and Notifications FAQ".
991
+
992
+ **P-diagnosis-66.** [official] Amazon announced on 2026-07-06 that "Starting in July 2026, we'll begin removing seller eligibility requirements for the Featured Offer", rolling out "gradually across all Amazon stores globally, completing by the end of 2026", and that "We're not changing how the Featured Offer is selected", which remains based on criteria "such as competitive pricing, delivery speed, and performance". Source: "Updates to Featured Offer eligibility requirements" (Seller Forums, News_Amazon); Susie_Amazon reply (2026-07-16).
993
+
994
+ **P-diagnosis-67.** [official] A Sponsored Products ad includes the product's title, image and price, the list price when the offer is below it, and the Prime badge when the offer has Prime shipping; Amazon's responsive display creatives add live deal, coupon and Subscribe & Save badges and star ratings from the listing, showing the highest discount when several are active. Source: "How to improve your product detail page for advertising"; "Responsive eCommerce creatives".
995
+
996
+ **P-diagnosis-68.** [official] Amazon's ads guidance recommends advertising products with five or more reviews and a rating of 3.5 stars or higher, and at least four images of at least 1,000 pixels on a white background with the product filling 80% of the frame. Source: "How to improve your product detail page for advertising"; "Best practices for your Sponsored Products ads". Figures for human readers only.
997
+
998
+ **P-diagnosis-69.** [official] Amazon states that creating deals requires an overall rating of at least four stars and coupons at least 3.5 stars, that a Lightning Deal runs 4 to 12 hours as Amazon determines, and that coupons run for a limited time. Source: "Guide to running Amazon seller promotions, coupons, and deals" (Sell on Amazon). Figures for human readers only.
999
+
1000
+ **P-diagnosis-70.** [official] The Promotions API (2025-12-01) reads a seller's coupons, deals, price discounts and basket-building promotions with their status (including UPCOMING, RUNNING, EXPIRED, CANCELLED), schedule (`startDate`, `endDate`, `eventId`) and validation issues, filtered by ASIN, SKU, type, status and start, end or update date; it has no create or edit operation. Source: Promotions 2025-12-01 model.
1001
+
1002
+ **P-diagnosis-71.** [official] Between 2026-02-12 and 2026-05-31, by category, Amazon stopped sharing reviews between variations "with significant differences" (sharing continues for color or pattern, same-function size, pack size, secondary scent and model fitment), which Amazon says "may affect your products' overall star ratings and review counts"; star ratings are linked to the child ASIN and aggregated on the parent, and star-only ratings without text are allowed. Source: "Changes to review sharing across product variations starting Feb 12" (News_Amazon); Billy_Amazon reply (2026-09-02).
1003
+
1004
+ **P-diagnosis-72.** [official] Catalog Items 2022-04-01 returns an ASIN's variation relationships (`parentAsins`, `childAsins`, `variationTheme`), browse classifications, images by variant (MAIN, PT01–PT08, SWCH) and sales ranks; Listings Items returns a listing's `mainImage`, `status`, `lastUpdatedDate` and `issues` with enforcement actions; and Amazon states that not every listing problem has a defined issue. Source: Catalog Items 2022-04-01 model; Listings Items 2021-08-01 model; "Notification Type Values" (`LISTINGS_ITEM_ISSUES_CHANGE`).
1005
+
1006
+ **P-diagnosis-73.** [official] The Customer Feedback API returns an ASIN's ten most positive and ten most negative review topics with mentions, share of reviews and effect on star rating, six monthly trend points and its browse node, refreshed weekly, in English, for seven marketplaces; it does not return the star rating or review count. Source: Customer Feedback 2024-06-01 model; "Customer Feedback API".
1007
+
1008
+ **P-diagnosis-74.** [official] SP-API notifications, including `ANY_OFFER_CHANGED`, `PRICING_HEALTH`, `FBA_INVENTORY_AVAILABILITY_CHANGES`, `LISTINGS_ITEM_STATUS_CHANGE` and `LISTINGS_ITEM_ISSUES_CHANGE`, are delivered only to an Amazon SQS queue or an Amazon EventBridge destination, the Notifications API has no operation that returns delivered events, and Amazon Marketing Stream delivers only to advertiser-owned AWS destinations (Firehose or SQS for v1, an S3 bucket and SQS queue for v2). Source: Notifications API v1 model; "Notification Type Values"; "Amazon Marketing Stream overview"; Stream v2 GA release note.
1009
+
1010
+ **P-diagnosis-75.** [official] The polling reads Amazon documents for the facts those notifications carry are `getCompetitiveSummary`, `getFeaturedOfferExpectedPriceBatch` and v0 `getItemOffers` (Featured Offer, competitive price threshold, Buy Box winner), `getInventorySummaries` with `startDateTime` (inventory changed since a time), `getListingsItem` with `issues` and `summaries`, and `searchPromotions`; Amazon recommends "a means to retrieve needed information in the event of an unexpected outage or delay in notification delivery". Source: Product Pricing v2022-05-01 and v0 models; FBA Inventory v1 model; Listings Items 2021-08-01 model; Promotions 2025-12-01 model; "Notifications API".
1011
+
1012
+ **P-diagnosis-76.** [official] Sponsored Brands Product Collection creates are mapped to Manual Collection ads from August 2026; the Deprecations page says create requests return an error "Post January 2027", and the ListMigrations release note of 2026-09-18 says "Beginning February 2027, product collections will no longer be supported". Source: Amazon Ads API "Deprecations"; "Release notes" (2026-09-18).
1013
+
1014
+ **P-diagnosis-77.** [official] Amazon's pages disagree on the scope of Reporting v1's one-concurrent-report gate: the reporting overview and the 2026-09-30 GA note say per advertiser, the v1 overview and "Limits" say per client ID and "not per advertiser account". Source: "Amazon Ads reporting overview"; "Release notes" (2026-09-30); "Reporting overview" (v1); "Limits" (v1).
1015
+
1016
+ **P-diagnosis-78.** [official] The SP v3 list request describes `includeExtendedDataFields` as returning "creationDate, lastUpdateDate, servingStatus", while the returned `extendedData` object's fields are `creationDateTime`, `lastUpdateDateTime`, `servingStatus` and `servingStatusDetails`. Source: Sponsored Products v3 OpenAPI.
1017
+
1018
+ **P-diagnosis-79.** [opinion] Keepa records over time the Buy Box price (-1 when no offer qualified), the Buy Box seller (-1 when no seller qualified), list and deal prices, rating (0–50) and review-count histories, coupons from 2024-06-15, Amazon's own US promotions, parent-ASIN changes, categories and a suggested lower price when the Buy Box is suppressed; it states its variation-specific rating-count history stopped on 2025-04-09 because Amazon removed the data point. Source: Keepa `Product.java`.
1019
+
1020
+ **P-diagnosis-80.** [opinion] Optmyzr (Lakshmi Padmanaban) calls a conversion-rate drop "the most misdiagnosed cause of ACoS spikes" and traces it to reviews, competitors' products or prices, images or copy, low stock extending delivery windows, and Buy Box loss, advising CVR by ASIN before bids; Chuck Kessler (Canopy) orders the causes as Featured Offer, traffic, price, images, reviews, delivery promise and content; Bob Norberg (eComEngine) puts availability first and ads last. Source: Optmyzr, "Your Amazon ACoS Spiked"; Canopy, "Amazon Conversion Rate"; eComEngine, "'Why Are Sales Down?'".
1021
+
1022
+ **P-diagnosis-81.** [opinion] Luis Rijo (PPC Land) states that the star rating under a sponsored product comes from the same shared or non-shared review pool, so a variation that loses shared reviews shows a lower rating in its ad unit. Source: PPC Land, "Amazon's Seller Assistant now checks review sharing eligibility per variation".
1023
+
1024
+ **P-diagnosis-82.** [research] For counts that follow a Poisson distribution the mean equals the variance and the k-sigma limits are c ± k√c, with no lower limit when it is negative; when an indicator varies more than chance alone, ignoring the over-dispersion classifies too many units as abnormal, and multiplicative or additive (random-effects) corrections widen the limits. Source: NIST/SEMATECH e-Handbook §6.3.3.1; Spiegelhalter (2005), *Qual Saf Health Care* 14: 347–351; Spiegelhalter (2005), *Stat Med* 24: 1185–1202.
1025
+
1026
+ **P-diagnosis-83.** [research] CUSUM charts (Page 1954) detect sustained mean shifts of 2 sigma or less more efficiently than Shewhart charts, and EWMA charts (Roberts 1959) weight past data geometrically so a small or gradual drift can be detected. Source: Page (1954), *Biometrika* 41: 100–115; Roberts (1959), *Technometrics* 1: 239–250; NIST/SEMATECH e-Handbook §6.3.2.3 and §6.3.2.4.
1027
+
1028
+ **P-diagnosis-84.** [research] PELT finds the optimal number and location of changepoints under a penalised cost in time linear in the series length, more accurately than Binary Segmentation; Seasonal Hybrid ESD removes trend and seasonal components and flags anomalies with median and MAD, robust to seasonal spikes. Source: Killick, Fearnhead & Eckley (2012), *JASA* 107: 1590–1598; Hochenbaum, Vallis & Kejariwal (2017), arXiv:1704.07706; Rosner (1983), *Technometrics* 25: 165–172.
1029
+
1030
+ **P-diagnosis-85.** [research] The distribution-change and outlier root-cause methods of Budhathoki et al. (AISTATS 2021; ICML 2022) are by Amazon researchers, attribute a change or outlier to causal mechanisms with Shapley-value averaging over orderings, and are public in DoWhy's `gcm` module (`gcm.distribution_change`, `gcm.attribute_anomalies`), released in DoWhy v0.8; each needs an analyst-supplied causal graph. Source: Amazon Science publication page and blogs (2022-05-31, 2022-07-19); AWS Open Source Blog (2023-01-11); DoWhy user guide; Blöbaum et al., arXiv:2206.06821.
1031
+
1032
+ ### Seat's positions (enter no skill)
1033
+
1034
+ - [seat] Because the identities are exact per row, a decomposition of a spend or sales change into impressions, CTR and CPC (or clicks, CVR and AOV) leaves no unexplained remainder; what it cannot do is name the cause behind the part that moved.
1035
+ - [seat] Account-level ratios move with mix: a shift of spend between campaigns, placements, search terms or marketplaces changes account CTR, CPC and CVR when no row's ratio changes.
1036
+ - [seat] The layers documented here fall into three kinds: causes that stop or limit serving (status values, eligibility, moderation, billing, budgets, dates); causes that change the market (new supply, reserves, competitors' bids, demand); and causes that change the record (restatement, invalid traffic, null values, time zones, currencies, renamed metrics, incidents). Only the first kind appears in serving status, and the change history holds only changes to the advertiser's own SP and SB entities (edits plus IN_BUDGET transitions).
1037
+ - [seat] A recent window compared with an older one compares an unsettled record with a settled one; on Amazon's own pages the unsettled period runs from days for clicks to weeks for conversions.
1038
+ - [seat] Seen through Amazon's reserve description and GSP theory, a CPC change has at least three documented channels that do not involve the advertiser's bid: competitors' bids, Amazon's real-time reserves, and Amazon's relevance ranking.
1039
+ - [seat] The Featured Offer can be lost three ways with different fixes: another eligible offer wins, the offer is ineligible on price, or no offer is featured; the Product Pricing reads separate the first two (`currentFeaturedOffer`, `resultStatus`, `100708`), and Keepa's -1 Buy Box seller marks the third.
1040
+ - [seat] A rating that falls through a promotion's rating floor can end a coupon or deal, so a rating drop can show up first as a promotion ending and a price rise to the shopper.
1041
+ - [seat] With small daily order counts, a day-over-day drop is usually inside Poisson limits before over-dispersion is even allowed for; a test of whether a movement exceeds noise is a separate step from apportioning it, and neither names the cause.
1042
+ - [seat] The 2025–2026 additions read here (prompts, off-Amazon and creator supply, Alexa+, auto-assembled videos) join existing campaigns by default (Amazon Business-exclusive campaigns, by contrast, are set by `siteRestrictions`), so a campaign's totals can change from a date with no entry in its change history.
1043
+
1044
+ ## Verification
1045
+
1046
+ Verified 2026-11-09 by an adversarial verifier seat.
1047
+
1048
+ **Method.** Every cited page was re-opened on 2026-11-09 by plain GET: Ads API docs pages through their markdown sources on `d3a0d0y2hgofx6.cloudfront.net` (40 pages, all HTTP 200); the OpenAPI models from `d1y2lf8k3vrkfu.cloudfront.net`, `dtrnk0o2zy01c.cloudfront.net` and `d3a0d0y2hgofx6.cloudfront.net` (SP v3, v1 merged, Change history, Eligibility, Moderation, Billing, Advertisers, Exports, Profiles, SB v4, SD), with enums extracted and compared programmatically; 13 Amazon Ads help pages and 7 library/resources pages from the content embedded in the public HTML; the Seller Forums thread; the status page's `status.json`, `history.json`, `history.schema.json` and script; the SP-API schemas on raw.githubusercontent.com and the public GitHub contents listing; aboutamazon.com's markdown copy; the FTC release (through a fetch tool, since curl got 404); all 20 practitioner and vendor pages; and the research records through Crossref, RePEc, USENIX, arXiv and PMLR. Each quote was matched against the page text, each enum against the model, each date against the page's own date or metadata, and each tag against who is speaking. Release notes for 2025–2026 were scanned for changes that overturn a claim. The two internal files cited were confirmed present. Calls made: none to any Amazon Ads API host (advertising-api*.amazon.com), none to Login with Amazon (api.amazon.com/auth), none to the Amazon Ads MCP server, none to any SP-API host, and none to the Seller Central help hub's POST content call. No seller data was read. No git repository was touched; the only file written is this one.
1049
+
1050
+ **Corrections (was → now).**
1051
+
1052
+ 1. A: the v1 Impressions family "carries `metric.grossImpressions`" → it has 12 fields and no gross-impressions field; gross impressions are the v3 column `grossImpressions`. Positions P-1, P-2 and P-3 and stable items 1–3 now cite the metric family pages ("Clicks (Delivery)", "Impressions (Delivery)", "Purchases"), not the "Metrics library" index.
1053
+ 2. B: staff reply "posted 9 months before the read" → timestamp 2026-02-13; the view-time inference ("serves part of the day") is retagged [seat].
1054
+ 3. C: SB v4 values "not in the SP list include … ADVERTISER_ACCOUNT_OUT_OF_BUDGET, ADVERTISER_STATUS_ENABLED, ELIGIBLE, INELIGIBLE" → only ADVERTISER_OUT_OF_PREPAY_BALANCE and UNKNOWN are absent from every SP v3 enum. The 73-value SP product-ad enum is completed. P-10 and stable item 7 are reworded.
1055
+ 4. E: Listings Items enforcement actions → `SEARCH_SUPPRESSED` added, with Amazon's descriptions (new P-57).
1056
+ 5. F: the three policy pages "each say" the country/supply sentence → two do; "Prohibited content across all supply" does not.
1057
+ 6. G: the billing notification list now adds the seller-balance names (SELLER_ACCOUNT_BALANCE_RESERVED, SELLER_ACCOUNT_INSUFFICIENT_AVAILABLE_BALANCE_CAUSED_SUSPENSION and others) (new P-59).
1058
+ 7. H: "Off-site spend draws the campaign budget" as Amazon's words → the page's verbatim sentence (it advises accounting for additional budget); the shared-budget statement is attributed to PPC Land. Stable item 13 is reworded.
1059
+ 8. H: profile `dailyBudget` "is the account-level cap behind ACCOUNT_OUT_OF_BUDGET" stated as RULE → Amazon's field note quoted; the link is retagged [seat].
1060
+ 9. H: `percentTimeInBudget` → the model's own example value 65.2 is added (a third scale); open question 3 is updated.
1061
+ 10. H: unspent budget sharing → exact release-note title, the first posting date (2025-07-07), a verbatim quote and the monthly-portfolio-budget limit (P-18).
1062
+ 11. H: Stream v1 "budget use changes by 5%" → Amazon's wording "budget allotment changes by 5% or more"; Stream v1 shutoff noted.
1063
+ 12. J: python-amazon-ad-api "shows the same response shape" → the page shows an endpoint map and the THEME/v1.1 note only.
1064
+ 13. K: shutoff list "Amazon Marketing Stream v1 and v2 reporting" → Stream Version 1 and "Version 2 reporting (sponsored ads)"; Stream Version 2 is not deprecated and is called the primary surface.
1065
+ 14. K: the IVT reconcile page is scoped to Display, Video, and Audio campaigns against third parties, with Amazon's 5% materiality note.
1066
+ 15. L: "DATE_LIMITED is the API's signal of such truncation" (retention) → Amazon defines it as a field that began collecting data after the report's start date. "New features" is cited, and P-24 is rewritten. New stable item 25.
1067
+ 16. L: status page "North America reporting disruptions" → posted for NA, EU and FE. history.json holds 15 records, 2026-06-03 to 2026-11-04; the June Stream incidents are added; the status.json read time is updated. P-27 and open question 13 are rewritten.
1068
+ 17. N: prompts → verbatim navigation path, plus Amazon's note that Sponsored Products prompts (and benchmarks) are not yet in console unified reporting (P-36; new open question 15).
1069
+ 18. N: Perpetua "off-Amazon placements began on 2023-08-16" → Perpetua reports Amazon announced them that day; author (Perpetua Marketing Team) and date (2023-08-31) added.
1070
+ 19. N: "Off-Amazon ad serving" column, tagged [opinion] via PPC Land → [official] release note of 2026-06-08, with PPC Land as corroboration (new P-58). PPC Land article dates added.
1071
+ 20. N: added from the release notes: auto-assembled videos (2026-08-09) and SP video ad extensions (new P-56, stable item 26); benchmarks GA 2026-05-18; the SB negative-adjustment history (announced for 2026-02-02, extended to 2026-06-15, existing settings keep running); the SB Product Collection → Manual Collection mapping from August 2026.
1072
+ 21. N: bid recommendations "v3 content type shut off … in favour of v4" → announced for shutoff on 2025-05-15; the live model still lists v3, v4 and v5 (P-38).
1073
+ 22. O: FTC "share of Sponsored Products clicks charged the full bid" → "the share of the time advertisers paid the amount of their bid", quoted verbatim with "beginning in 2019". Unopened press-coverage notes (SB soft reserve from 2018; Florida joining) are flagged as such (P-39).
1074
+ 23. Q: "`totalMedianClickPrice` is the median price of the products clicked" in an [official] position → the schema gives it no description, so this is retagged as the seat's reading. "Paid and organic together" is not stated by the schema (P-33).
1075
+ 24. R: "the console search-term report includes zero-click terms" → the v3 FAQ says so, but "Understand unified reporting" describes the console Search term template as "at least 1 click"; the conflict is recorded (P-35, stable item 24, new open question 14).
1076
+ 25. Practitioners: Canopy's formula quoted verbatim ("Maximum profitable CPC = Target ACoS × Price × Conversion Rate").
1077
+ 26. Research: Budhathoki 2021 "using Shapley values" and "(Amazon)" → removed (not in the abstract); ICML 2022 "noise terms" → the abstract's wording (P-55). Ostrovsky & Schwarz → abstract quoted from RePEc; "at Yahoo" marked as from working-paper summaries; the seat's "without any change in advertisers' bids" softened (P-53). EOS full title restored; the Adtributor and Lewis & Rao figures quoted verbatim.
1078
+ 27. Seat positions: "only the advertiser's own edits appear in the change history" → own SP and SB entities, edits plus IN_BUDGET transitions; Amazon Business removed from "join existing campaigns by default" (exclusive campaigns are set by `siteRestrictions`), and auto-assembled videos added.
1079
+ 28. What cx must read at run time: "each only if cx has a sanctioned reader for it" (a ceiling on cx) → each named by its own door (`cx-amazon-sp-api`, `cx-keepa`, public status JSON, the release-notes RSS feed). `/query/adExtensions`, `optOuts.videoExtension`, `SEARCH_SUPPRESSED` and the required `adProductFilter` are added.
1080
+ 29. Page names: "Reporting FAQ" → "Sponsored ads reporting FAQ (version 3)"; "Dates" → "Dates and historical data retention"; "Reporting overview" → "Amazon Ads reporting overview". Pages read rows are corrected, and verifier-read pages are added.
1081
+
1082
+ **Removals.** The 2024-11-13 status-page "six months" announcement (not found); `metric.grossImpressions` as a v1 field; "using Shapley values"; the "(Amazon)" affiliation tag on arXiv:2102.13384; "began on 2023-08-16".
1083
+
1084
+ **Verified unchanged (sample of the load-bearing ones).** SP v3 campaign (24), ad group (30), keyword (36) and ad reason (92) enums; the v1 DeliveryReason (93), DeliveryStatus, State, Status (`deliveryReasons` max 50) and ReportStatus; the Change history scope sentence, filters, change-type table, 90 days, count 50–200, pageOffset 10,000; Eligibility names, severities and program reason codes; the Moderation statuses, ETA, max 10 and SP-only component results; billing status codes, impact and suspensionDate; Profiles time zones; the v1 retention table and benchmark start 2025-06-01; the impression share definitions and requirements; the benchmark quartile requirements and incompatibilities; the null-is-not-zero text; the traffic-validation quotes; all "Resolve a payment failure", "Troubleshoot your campaign status", "Portfolio budgets" and placement-report quotes; the Featured Offer and stock quotes; the dynamic-bidding "up to 100% for all placements" quote; the prompts quotes and dates; every quote in Amazon's FTC response; the release-note dates; the SQP and Sales and Traffic fields; the Keepa field texts; the Optmyzr, Openbridge, Rel.ai, Ad Badger, Intentwise, Karooya, Relevant Audience and Tinuiti claims and dates; the Crossref bibliographic records.
1085
+
1086
+ **Stayed unreachable.** The Amazon support article "Understand Sponsored Products off-Amazon advertising" (searched again; not found); the Amazon page behind Canopy's "never exceed your maximum adjusted bid" quote (searched; the "pricing transparency" guide read instead has no reserve wording); the Amazon Ads help text on reserve prices; the docs concept page `concepts/reporting/advertising-console`; the change-history, eligibility, moderation and billing guides at guessed paths; Seller Central help pages, including Brand Analytics help; Tinuiti Q3 2026 (form); Digiday; the SSRN copy and the JPE landing page (abstract read through RePEc). The aboutamazon Prime Day pages and Search Engine Land were not retried, and nothing in the file rests on them.
1087
+
1088
+ ### Gap fill 2026-11-09
1089
+
1090
+ Done by the research seat on 2026-11-09 after three completeness critics. Same limits as the first pass: plain GET of public pages only; no Ads API, Login with Amazon, MCP, SP-API host or help-hub POST call; no seller data; no git repository touched; only this file written. The SP-API developer docs moved from `developer-docs.amazon.com` to `developer-docs.amazon` (a 301 redirect); their markdown sources (`<slug>.md`) were read there.
1091
+
1092
+ **Added.**
1093
+
1094
+ 1. Gap 1, price and Pricing Health: new section S (Featured Offer withheld for a price above the competitive external price or recent prices; the competitive external price defined; `PRICING_HEALTH` reference prices and `BuyBoxDisqualification`; listing issue `100708` and the min/max and high-price errors; `getFeaturedOfferExpectedPriceBatch`, `getCompetitiveSummary` and v0 `getItemOffers` fields; the 2026-07-06 announcement removing seller eligibility; the self-service dispute; Keepa price, Buy Box and `suggestedLowerPrice` history). Positions P-diagnosis-60 to 66, stable items 27–30, run-time reads, open questions 16–17. The Seller Central Pricing Health and Featured Offer eligibility help pages stayed unreachable (help-hub POST only); Amazon's rule was read from the SP-API docs and Seller Forums staff posts instead, and P-launch-6's "As of September 2026" wording was not re-opened.
1095
+ 2. Gap 2, conversion-side causes: new section T (what an SP ad and a display creative take from the listing; coupon and deal rating floors and durations; the Promotions API; the 2026 review-sharing change and how ratings aggregate across a variation family; Catalog Items relationships, classifications, images; Listings Items `mainImage`, issues; Customer Feedback topics and trends; FBA inventory summaries; Keepa rating, review count, coupon, deal, promotion, parent-ASIN and category histories) and a practitioners' subsection "Conversion-side causes" (Optmyzr, Canopy, eComEngine, Seller Labs, PPC Land). Positions P-diagnosis-67 to 73, 79–81; stable items 31–33, 35–36; open questions 18–20.
1096
+ 3. Gap 3, notifications: new section U and a corrected run-time list. SP-API notifications reach only an SQS or EventBridge destination, and Stream only advertiser-owned AWS destinations (Firehose or SQS for v1, S3 and SQS for v2); the run-time list no longer counts "offer and inventory notifications" as reads through `cx-amazon-sp-api`, and names the polling substitutes. Positions P-diagnosis-74 and 75, stable item 34. Section E's notification sentence now says where they are delivered.
1097
+ 4. Gap 4, noise tests: new research subsections "Whether a movement exceeds noise" (Page 1954 CUSUM, Roberts 1959 EWMA, both through Crossref records and the NIST handbook; Poisson count limits from NIST; over-dispersion from Spiegelhalter 2005 twice; PELT from Killick, Fearnhead and Eckley 2012; S-H-ESD from Hochenbaum, Vallis and Kejariwal 2017 with Rosner 1983) and "Root-cause attribution by Amazon's own researchers" (Amazon Science publication and blog pages, the AWS Open Source Blog, the DoWhy guide and README, DoWhy-GCM). Positions P-diagnosis-82 to 85.
1098
+
1099
+ **Settled.**
1100
+
1101
+ 1. SB Product Collection end date: re-opened the Deprecations page and the 2026-09-18 ListMigrations note. Both dates are Amazon's: "Post January 2027" create requests return an error (Deprecations, V0 and V1), and "Beginning February 2027, product collections will no longer be supported" (release note); creates map to Manual Collection from August 2026. Section N now carries both (it said January 2027 only); new P-diagnosis-76 and open question 21. Agrees with `method/ads-api-surface.md` P-42.
1102
+ 2. Reporting v1 concurrency: re-opened the reporting overview, the v1 overview, "Limits" and the 2026-09-30 GA note. Two pages say per advertiser and two say per client ID; section R now quotes the GA note and the "Limits" sentence, and says no page reconciles them (new P-diagnosis-77). Agrees with `method/reporting.md` P-15; `beyond/automation-and-amazon-tools.md` §J's single-sided RULE is not supported by the four pages read.
1103
+ 3. Dynamic bids – up and down: re-opened both library guides (each `dateModified` 2026-10-09) and the SP v3 model. The dynamic-bidding guide and the model say 100% for all placements; the author's guide says 100% for top of the first page and 50% elsewhere. Section N and P-diagnosis-37 now record both and defer to P-bids-and-placements-8.
1104
+ 4. `includeExtendedDataFields` field names: re-read the SP v3 model. The request description says "creationDate, lastUpdateDate, servingStatus"; the response schemas name `creationDateTime`, `lastUpdateDateTime`, `servingStatus`, `servingStatusDetails`, and no `creationDate` or `lastUpdateDate` field exists in the model. This file's names were right; section C now quotes both texts and new P-diagnosis-78 records them. `method/ads-api-surface.md` §H follows the request description, not the response fields.
1105
+
1106
+ **Declined, in part.**
1107
+
1108
+ 1. Gap 2's reason, "Optmyzr's own chain (traffic, conversion, demand) puts conversion drops in a third of cases": the Optmyzr article (re-read 2026-11-09) names three root causes and gives no share for any of them. The gap itself was filled; the "a third of cases" figure was not entered.
1109
+ 2. Gap 2's "browse-node or category change" read: no Amazon page read states how a reclassification changes ad serving. The reads (Catalog Items `classifications`, Customer Feedback `getItemBrowseNode`, Keepa `categories` and `categoryTree`) and the mechanism through `ASIN_CATEGORY_SAME_AS` targets are recorded, the mechanism as [seat], with open question 18.
1110
+ 3. Gap 4's "with small daily counts, most 'drops' are noise": no source read measures that share for Amazon advertisers. The Poisson arithmetic is entered as [seat], not as a position.