@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,1225 @@
1
+ # Budgets and pacing
2
+
3
+ Read 2026-11-09 by the research seat.
4
+
5
+ Tags: [official] is an Amazon page, cited by page name and URL and read 2026-11-09 unless another date is given. [opinion] is a named practitioner or vendor, with the person or firm given. [research] is a paper or an academic working paper. [seat] is this seat's own reading and is never a position. Figures (percentages, amounts, day counts, limits) are recorded with page and date **for human readers only** unless the line says otherwise: a skill reads the live value at run time from the operation named in *What cx must read at run time*, because Amazon changes these figures and its own pages disagree on several of them.
6
+
7
+ URLs. Ads API documentation pages are cited by their public address `https://advertising.amazon.com/API/docs/en-us/<path>`. That address serves a client-side shell, so each was read as markdown at `https://d3a0d0y2hgofx6.cloudfront.net/en-us/<path>.md` (the host the docs site's own `llms.txt` names). OpenAPI specifications were read at the `cloudfront.net/openapi/...` addresses given in *Pages read*. Amazon Ads help pages are cited as `https://advertising.amazon.com/help/<ID>`. A plain GET of that address returns a shell with the article embedded as JSON (`"nodeId":"<ID>","content":"<html>"`), and the article was read from that JSON.
8
+
9
+ ## What this covers
10
+
11
+ This file covers money on the sponsored-ads side of an Amazon advertising account. It covers how much a campaign may spend, how Amazon spends it across a day and a month, how cx can tell that a campaign or account has stopped serving for money reasons, and what Amazon offers for raising, capping, sharing and recommending budgets. The scope:
12
+
13
+ - the daily budget of Sponsored Products (SP), Sponsored Brands (SB) and Sponsored Display (SD): monthly averaging, the 25% / 100% over-delivery setting, the month cap and the invoice adjustment, and mid-day and mid-month changes;
14
+ - lifetime budgets (SB) and the daily-or-lifetime choice;
15
+ - the seller-only SP account daily budget cap;
16
+ - detecting out-of-budget: serving status and delivery reasons, the budget usage API, the budget recommendations and missed-opportunity APIs (SP, SB, SD), the initial budget recommendation for new SP campaigns, and the console budget report;
17
+ - budget rules: schedule-based, performance-based, recommended events, hours of day, stacking, evaluation timing, and how a rule-raised budget is read back;
18
+ - portfolios: date-range and monthly-recurring caps, and unspent-budget sharing;
19
+ - campaign budgets in Ads API v1 (`budgets[]`, `recurrenceTimePeriod`, per-marketplace budgets and currency on global campaigns);
20
+ - budget limits by marketplace;
21
+ - invalid traffic (IVT) and the credits it produces;
22
+ - billing as far as it changes spend: payment methods, credit limits and invoice thresholds, payment failure as a cause of suspension, promotional credits, the billing API and its notifications;
23
+ - intraday pacing and allocation as practitioners describe them;
24
+ - plan-level pacing (added 2026-11-09): monthly spend plans per marketplace and currency, what Amazon offers for them (portfolio caps per profile, global campaigns' per-marketplace budgets) and the third-party plan tools;
25
+ - what the missed-opportunity estimates measure and do not (added 2026-11-09);
26
+ - research on budget-constrained bidding and pacing.
27
+
28
+ It stays in its lane. Owned elsewhere and only cross-referenced:
29
+
30
+ - bids, bidding strategies, placement adjustments and rule-based bidding: `bids-and-placements.md`;
31
+ - budgets at launch (first-campaign sizing): `launch.md`;
32
+ - event calendars and deal periods: `seasons-and-deals.md` (this file covers the budget-rule mechanism for events, not the calendar);
33
+ - how campaigns are grouped, including what goes into a portfolio: `campaign-structure.md`;
34
+ - reading performance metrics and attribution windows: `beyond/metrics-and-attribution.md`;
35
+ - profit targets that a budget is sized against: `beyond/goals-and-economics.md`;
36
+ - Amazon's automated products (Ads Agent, recommendations): `beyond/automation-and-amazon-tools.md`;
37
+ - the full Ads API surface, regional hosts and media types: `method/ads-api-surface.md`;
38
+ - report creation and polling: `method/reporting.md`;
39
+ - measuring the effect of a budget change: `method/change-measurement.md`;
40
+ - diagnosing a fall in delivery from all causes: `diagnosis.md` (this file covers only the money causes).
41
+
42
+ ## Amazon's own rules and guidance
43
+
44
+ Each item is marked RULE (Amazon states it as a requirement or a mechanism, or the API enforces it) or GUIDANCE (Amazon recommends it). Amazon's budget material is spread over four hosts:
45
+
46
+ - Amazon Ads help pages;
47
+ - library guides and "what's new" posts on advertising.amazon.com;
48
+ - the Ads API guides and release notes;
49
+ - the OpenAPI specifications.
50
+
51
+ The hosts disagree on several figures. The disagreements are recorded where they occur, with the page that is newer or more specific named.
52
+
53
+ ### A. What a daily budget is and how Amazon spends it
54
+
55
+ - RULE: "A bid is how much you'll spend per click, and your budget is how much you're willing to spend on clicks per day. Each time a shopper clicks your ad, the bid amount will be deducted from the daily budget. Budgets are spent as quickly as possible and not paced throughout the duration of your campaign." [official] *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS), https://advertising.amazon.com/help/GTGPQGUXNCTHE2DS
56
+ - [seat] "the bid amount will be deducted" is the page's simplification. The auction page says the charge "may exceed the runner-up bid but will never exceed the maximum bid you authorize" (next item). What is deducted is the price charged, not the bid.
57
+ - RULE: "the price charged to you may exceed the runner-up bid but will never exceed the maximum bid you authorize". [official] *Understand Amazon Ads auctions* (help GEXGZNBBWPZZK7P8), https://advertising.amazon.com/help/GEXGZNBBWPZZK7P8
58
+ - RULE: "A daily budget is the maximum amount that you're willing to spend, on average, each day over a calendar month. You won't necessarily spend all of your daily budget each day. If you do reach your daily budget within a day, your campaign will pause until the following day when your daily budget resets." [official] *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS)
59
+ - RULE: "Daily budgets are spent as quickly as possible, because all available impressions for your ads to show to relevant shoppers are taken. This means that a smaller budget could be spent in a few minutes". When a campaign is out of budget, "your ads won't be eligible to show until the next day, at midnight when the daily budget resets". [official] *Sponsored Products budget basics and best practices*, https://advertising.amazon.com/library/guides/sponsored-products-budget-best-practices (the older address https://advertising.amazon.com/library/guides/how-to-budget-sponsored-products 301-redirects to this page)
60
+ - RULE (SD API): the SD v3 campaign object carries `deliveryProfile` with the single enum value `as_soon_as_possible`. [official] *Sponsored Display v3* OpenAPI (`Campaign` schema)
61
+ - RULE: on vCPM-priced sponsored ads, "when your sponsored ad gets 1,000 viewable impressions, your bid amount is deducted from your daily or lifetime budget". The page's illustration is "Daily budget ($20) ÷ winning bid ($1) = number of impressions per day (20,000)". [official] *Understand bidding on Sponsored ads* (help GDS2E64R9GQ35768), https://advertising.amazon.com/help/GDS2E64R9GQ35768
62
+ - RULE (contrast, not sponsored ads): Display, Video, and Audio campaigns (the programmatic buying formerly sold as Amazon DSP, now one of the three campaign types inside the Amazon Ads Agent platform; section O) are paced. The page says it "breaks your total budget into smaller delivery targets - daily and then into shorter intervals of just a few minutes - and continuously adjusts bidding behavior to hit those targets"; the system "recalculates how competitively your campaign bids every few minutes". [official] *Understand delivery and pacing* (help GCELVBWV7S8S9AJA), https://advertising.amazon.com/help/GCELVBWV7S8S9AJA
63
+ - In the v1 API the DSP pacing choice is `Pacing.deliveryProfile` EVEN | PACE_AHEAD | ASAP. [official] *Amazon Ads API v1* OpenAPI (`AmazonAdsAPIALL_prod_3p.json`)
64
+ - Conflict (for human readers only): the v1 spec says `PACE_AHEAD` "can deliver up to 25% more than the daily Even pace targets"; the help page says Pace ahead "starts with a more aggressive (15%) front-loaded delivery pattern". [official] both pages above.
65
+ - [seat] So "pacing" means two different things on Amazon. Sponsored ads have no intraday pacer: the budget is spent as auctions are won until it is gone. Display, Video, and Audio line items are paced against a flight. Practitioner talk of "pacing" on sponsored ads means the advertiser's own spreading of spend (bids, schedules, rules), not an Amazon mechanism.
66
+
67
+ ### B. Over-delivery within a day, the monthly cap and the 25% / 100% setting
68
+
69
+ - RULE (monthly averaging and cap): "The daily budget amount is averaged over the course of a calendar month. … At the end of the month, you will not spend more than the daily budget you have set, multiplied by the number of days in that month. Your invoice will be adjusted for any over-delivery, so that you will not be charged for any amount in excess of your monthly charging limit." The worked example: a $100 budget with $90 of clicks on day one "could receive up to $110 worth of clicks on the second day". [official] Ads API guide *Average daily budget user guide*, https://advertising.amazon.com/API/docs/en-us/guides/account-management/average-daily-budget
70
+ - RULE (the help page's wording): "we use leftover funds from low traffic days to increase your budget by up to 100%. At the end of the month, you won't spend more than the daily budget you've set, multiplied by the number of days in that month." And: "By default, we'll increase your budget up to 100% on high-traffic days. If you'd like us to only increase your daily budget by 25%, you can change this in your campaign settings. (Sponsored ads > Campaigns > Settings)." The page's arithmetic is "Daily Budget ($10) x Days in the month (30) = Monthly budget ($300)". [official] *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS)
71
+ - RULE (the setting, and its scope): "You can set the average daily budget increase amount at either 25% or 100% of campaign budget. You select your choice at the profile level, so all sponsored ads campaigns are set at the same amount. By default, all campaigns have a 100% average daily budget increase amount." Opting out to 25% is `POST /accountBudgets/featureFlags` with `{"featureFlags":{"isOptedOutForAverageDailyBudgetIncrease": true}}`. Setting it back to 100% is the same call with `false`. The current value is read with `GET /accountBudgets/featureFlags`. [official] *Average daily budget user guide* (as above); *Account budgets* API reference (media type `application/vnd.accountBudgetFeatureFlags.v1+json`), read in the API docs search index
72
+ - RULE (history): "We have updated our daily budgeting policy for Sponsored Products, Sponsored Brands, and Sponsored Display, allowing you to spend up to 100% more than the average daily budget on any given day." [official] Ads API release note *New sponsored ads daily budgeting policy and options*, 2023-03-28, https://advertising.amazon.com/API/docs/en-us/release-notes/index. Then: "We have now updated the default rollover value for all accounts to be 100%. This change only impacts accounts that have not yet selected a default … If you have already chosen either 25% or 100%, you will not experience any change in your settings." [official] release note *Updated: Sponsored ads daily budgeting policy and options*, 2023-06-20 (same page). The console announcement, titled *New sponsored ads daily budgeting policy and options* and dated 2023-05-09, says the change is "effective worldwide for sponsored ads". [official] *New sponsored ads daily budgeting policy and options* (what's new), https://advertising.amazon.com/resources/whats-new/sponsored-ads-daily-budgeting-policy-and-options
73
+ - Conflict (stale library guide): the library guide read today still gives 25%: "less than or up to 25% more than your average daily budget on any given day", with the example "$12.50 (25% higher)" on a $10 budget and "$300" for the month. [official] *Sponsored Products budget basics and best practices*, https://advertising.amazon.com/library/guides/sponsored-products-budget-best-practices. (The research seat listed this as two guides; the second address, `library/guides/how-to-budget-sponsored-products`, 301-redirects to the same page, so it is one page.)
74
+ - [seat] The release notes, the API guide and the help page agree that 100% is the default since 2023 and 25% is an opt-out. The library guide predates the change. A skill that quotes "25%" from the library is quoting a superseded figure. The live value for a profile is `isOptedOutForAverageDailyBudgetIncrease`.
75
+ - RULE (an Amazon moderator's statement, forum): "Your daily budget amount is averaged over the course of a calendar month. On any given day you could spend less than your daily budget, or up to 100% more than your average daily budget. … However, at the end of the month, you won't spend more than the daily budget you've set, multiplied by the number of days in that month." This was Veronica_Amazon (Amazon moderator) answering a seller whose $10 auto campaign spent $20.83 in a day. The page shows "3 years ago" with no exact date. [official, forum moderator] Seller Forums (CA) thread, https://sellercentral.amazon.ca/seller-forums/discussions/t/06995973-7cba-4289-9b83-03df691d326a. The same moderator gave a similar answer, without a percentage ("you could spend less than or more than your average daily budget, on any given day. However, by the end of the month, you will not spend more than your daily budget"), to a seller who reported spend "about 100%" over a $100 cap on a thread tagged Sponsored display. [official, forum moderator] Seller Forums (EU) thread, https://sellercentral-europe.amazon.com/seller-forums/discussions/t/d89a0bd7-549e-4216-991f-88a27d0547c3
76
+ - RULE (credit on the invoice): "If a campaign receives clicks that exceed the overall monthly budget, the difference between your ad cost and your monthly budget may be credited back to your account." The invoice line is called "Over-delivery credits". [official] *View and understand your invoice* (help GDWV9R4RA7FCHSTE), https://advertising.amazon.com/help/GDWV9R4RA7FCHSTE
77
+ - [seat] Campaign-manager Cost and report `cost` show gross delivered cost. The month cap is enforced on the invoice, so a month's report cost can exceed budget × days while the bill does not. Reconciling report cost to the bill belongs to section M and `beyond/metrics-and-attribution.md`.
78
+
79
+ ### C. Changing a budget, and daily versus lifetime
80
+
81
+ - RULE (mid-month change): after a mid-month change, the rest of the month is capped at the new daily budget × the days remaining. The worked example: a $50 daily budget with $800 spent by the 20th, then changed to $10, allows at most $900 for the month. [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L), https://advertising.amazon.com/help/GVYUKBJQFPH7ZQ2L
82
+ - RULE (several changes in one day): the highest budget set during the day applies to that day, and the last budget set applies from the next day. [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L)
83
+ - RULE (cut below today's spend): "I reduced my daily budget, but I already exceeded the new budget earlier today." — "Your spending will be capped for the rest of the day. Your new budget will take effect tomorrow." A cut that stays above today's spend "will take effect today". Daily budget changes otherwise "take effect immediately". [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L)
84
+ - RULE (lifetime): "If you're using a lifetime budget, you can only increase it once your campaign is live." And: "you can't switch from a daily budget to a lifetime budget once a campaign is live. If you want to do this, pause your current campaign, copy it to a new one, and choose lifetime budget." [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L)
85
+ - RULE (status latency): after a budget change on an out-of-budget campaign, it is "typically 1-2 hours" before the status changes back to Delivering. The same page advises "Avoid frequent budget changes within the same day". [official] *Troubleshoot your campaign status* (help GEC8BVH43CU9UNYH), https://advertising.amazon.com/help/GEC8BVH43CU9UNYH. The "avoid" line is GUIDANCE.
86
+ - RULE (lifetime budget, SB): "In Sponsored Brands campaigns, you can choose between a daily budget and a lifetime budget. A lifetime budget is the total amount that you're willing to spend on a single campaign for as long as it runs. It requires an end date and a minimum $100 budget." [official] *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS). The $100 figure is for human readers only; the API's lifetime minimum by marketplace is in section K.
87
+ - RULE (SB API): `budgetType` is `DAILY` | `LIFETIME`, and "For the lifetime budget type, `startDate` and `endDate` must be specified". [official] *Sponsored Brands v4* OpenAPI, https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/4-0/openapi.json
88
+ - RULE (SB lifetime, out of budget): "If your budget depletes before end of the day or before the campaign end date (in the case of lifetime budget), your campaign ads will no longer be eligible for impressions." [official] *Troubleshoot your campaign for impressions* (help G8WCYU3FQKFVSMR4), https://advertising.amazon.com/help/G8WCYU3FQKFVSMR4
89
+ - RULE (SP v3 create and update): `budget.budgetType` is `DAILY` | `OTHER` on read, and create and update accept `DAILY` only. [official] *Sponsored Products v3* OpenAPI (`SponsoredProducts_prod_3p.json`)
90
+ - RULE (SD): SD campaigns carry a daily budget. "If you don't specify a `budget`, it will be set as the default budget for your region". [official] *Sponsored Display v3* OpenAPI, https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-display/3-0/openapi.yaml. The defaults table gives US 100, UK 100, DE 100, IN 1000, JP 10000, AE 400, SA 400, SG 300, TR 300, MX 150, BR 150 and EG 500, in local currency. [official] Ads API reference *Limits, constraints, and quotas* (section *Default budgets*), https://advertising.amazon.com/API/docs/en-us/reference/concepts/limits. These figures are for human readers only.
91
+ - [seat] An SD campaign created through the API without a budget therefore spends up to a regional default the seller never typed. A JP or IN default is large in local currency.
92
+ - GUIDANCE: "you can change your daily budget at any time", and "At least once every two weeks, check in on how well your current budget is serving your campaigns." [official] *Sponsored Products budget basics and best practices*
93
+ - GUIDANCE: "a minimum of $10 (or the equivalent for the country in which you are selling) per campaign" for many advertisers; "you should always choose a budget that you're able to pay". [official] *Sponsored Products budget basics and best practices*. The $10 is for human readers only.
94
+
95
+ ### D. Detecting out-of-budget: serving status and delivery reasons
96
+
97
+ There are four places where Amazon says a campaign has stopped for money:
98
+
99
+ - the per-campaign serving status in the version-specific APIs;
100
+ - the v1 `deliveryReasons`;
101
+ - the portfolio serving status;
102
+ - the billing status and billing notifications (section M).
103
+
104
+ - RULE (SP v3): `extendedData.servingStatus` on a campaign includes `CAMPAIGN_OUT_OF_BUDGET`, `PORTFOLIO_OUT_OF_BUDGET`, `ACCOUNT_OUT_OF_BUDGET`, `ADVERTISER_OUT_OF_BUDGET`, `ADVERTISER_EXCEED_SPENDS_LIMIT` and `ADVERTISER_PAYMENT_FAILURE`, with `servingStatusDetails[] {name, message, helpUrl}`. `extendedData` is returned when the list request sets `includeExtendedDataFields: true` ("Whether to get entity with extended data fields such as creationDate, lastUpdateDate, servingStatus"). [official] *Sponsored Products v3* OpenAPI. Extended-data list calls "hold 5x the weight of standard calls towards throttling limits". [official] Ads API reference *Rate limiting*, https://advertising.amazon.com/API/docs/en-us/reference/concepts/rate-limiting, read in the docs search index
105
+ - RULE (meanings): the computed-status reference gives the meanings.
106
+ - `CAMPAIGN_OUT_OF_BUDGET`: "Campaign daily budget has been exceeded."
107
+ - `PORTFOLIO_OUT_OF_BUDGET`: "The maximum budget cap at the portfolio level has been reached."
108
+ - `ACCOUNT_OUT_OF_BUDGET`: "Total ad-spend for the day across all of your campaigns has reached your Account Daily Budget Cap threshold. Your account level budget governs how much you spend per day across all of your campaigns."
109
+ - `ADVERTISER_PAYMENT_FAILURE`: "Advertiser payment was unsuccessful."
110
+
111
+ On Sponsored Brands (the page's *Sponsored Brands Campaign Status* table), a campaign status `OUT_OF_BUDGET` ("The campaign has run out of budget") clears when "The next calendar day has started, causing the daily spent budget to refresh" or when the budget is increased "(for daily budget only) through a `PUT` request". The same SB table has `BILLING_ERROR` ("The campaign has been stopped because of billing error"), cleared by "Fix billing error(s)". [official] Ads API reference *Computed status and campaign status*, https://advertising.amazon.com/API/docs/en-us/reference/concepts/computed-status. (The research seat had attributed the `OUT_OF_BUDGET` transitions to SD; the page places them under Sponsored Brands.)
112
+ - RULE (v1): a v1 campaign has `status{deliveryStatus: DELIVERING | NOT_DELIVERING | UNAVAILABLE | LIMITED, deliveryReasons[]}`. The money reasons include:
113
+ - `CAMPAIGN_OUT_OF_BUDGET`;
114
+ - `PORTFOLIO_OUT_OF_BUDGET`;
115
+ - `ADVERTISER_OUT_OF_BUDGET`, described as "out of budget for Sponsored Products campaigns for sellers", which is the account daily cap;
116
+ - `ADVERTISER_OUT_OF_POSTPAY_CREDIT_LIMIT`, `ADVERTISER_OUT_OF_POSTPAY_MONTHLY_BUDGET` and `ADVERTISER_OUT_OF_PREPAY_BALANCE`;
117
+ - `ADVERTISER_PAYMENT_FAILURE`, `SPEND_LIMIT_EXCEEDED` and `OUT_OF_REWARD_BUDGET`.
118
+
119
+ [official] *Amazon Ads API v1* OpenAPI; Ads API reference *Common models: enums*, https://advertising.amazon.com/API/docs/en-us/reference/common-models/enums. The enums page maps the names across APIs:
120
+
121
+ | v1 | SP | SB | SD |
122
+ |---|---|---|---|
123
+ | `ADVERTISER_OUT_OF_BUDGET` | `ADVERTISER_OUT_OF_BUDGET` AND `ACCOUNT_OUT_OF_BUDGET` | `ADVERTISER_ACCOUNT_OUT_OF_BUDGET` | `ACCOUNT_OUT_OF_BUDGET` |
124
+ | `CAMPAIGN_OUT_OF_BUDGET` | `CAMPAIGN_OUT_OF_BUDGET` | `CAMPAIGN_OUT_OF_BUDGET` | `CAMPAIGN_OUT_OF_BUDGET` |
125
+ | `PORTFOLIO_OUT_OF_BUDGET` | `PORTFOLIO_OUT_OF_BUDGET` | (none) | (none) |
126
+
127
+ The enums page lists `deliveryStatus` as `DELIVERING`, `NOT_DELIVERING` and `UNAVAILABLE`; the v1 OpenAPI adds `LIMITED` ("partial delivery status, applicable to global resources that have different delivery status across marketplaces"). The postpay, prepay, `SPEND_LIMIT_EXCEEDED` and `OUT_OF_REWARD_BUDGET` reasons are in the v1 OpenAPI enum and not on the enums page; `SPEND_LIMIT_EXCEEDED` and `OUT_OF_REWARD_BUDGET` carry no description in the spec.
128
+ - Conflict (gap fill 2026-11-09): the enums page's SB cell for `PORTFOLIO_OUT_OF_BUDGET` is empty, but the *Sponsored Brands v4* OpenAPI's `CampaignServingStatus` (and its ad-group and ad serving-status enums) carries `PORTFOLIO_OUT_OF_BUDGET` beside `CAMPAIGN_OUT_OF_BUDGET` and `ADVERTISER_ACCOUNT_OUT_OF_BUDGET`. [official] *Sponsored Brands v4* OpenAPI, read 2026-11-09. [seat] The spec is the contract the API answers with, so an SB campaign can come back as `PORTFOLIO_OUT_OF_BUDGET` whatever the mapping table shows.
129
+ - RULE (portfolio): `extendedData.servingStatus` on a portfolio takes `PortfolioServingStatus` values:
130
+ - account and payment states: `ADVERTISER_ACCOUNT_OUT_OF_BUDGET`, `ADVERTISER_ARCHIVED`, `ADVERTISER_EXCEED_SPENDS_LIMIT`, `ADVERTISER_OUT_OF_BUDGET`, `ADVERTISER_OUT_OF_PREPAY_BALANCE`, `ADVERTISER_PAUSED`, `ADVERTISER_PAYMENT_FAILURE`;
131
+ - portfolio states: `PORTFOLIO_ENDED`, `PORTFOLIO_OUT_OF_BUDGET`, `PORTFOLIO_PENDING_START_DATE`, `PORTFOLIO_STATUS_ENABLED`.
132
+
133
+ A portfolio also carries `inBudget` (boolean). [official] *Portfolios v3* OpenAPI (`Portfolios_prod_3p.json`)
134
+ - RULE (console troubleshooting): the status page lists out of budget, portfolio budget cap reached and the SP daily budget cap as causes of a campaign not delivering. While out of budget, ads are not eligible "until midnight when the daily budget is reset". [official] *Troubleshoot your campaign status* (help GEC8BVH43CU9UNYH)
135
+ - [seat] "Midnight" is not defined on the page by timezone. The SP v3 and reporting docs work in the profile's timezone (the `timezone` of `GET /v2/profiles`). The seat did not find a page that states the budget reset uses the profile timezone; see Open questions.
136
+ - RULE (billing as a delivery cause): "If your credit or debit card is declined, we may automatically suspend all your campaigns." [official] *Troubleshoot your campaign for impressions* (help G8WCYU3FQKFVSMR4)
137
+ - RULE (change history as a record of out-of-budget): `POST /history` returns campaign change events including `IN_BUDGET` and `BUDGET_AMOUNT`, and on campaigns also `RULE_BASED_BUDGET_VALUE`, `APPLICABLE_RULE_ID`, `APPLICABLE_RULE_NAME` and `PORTFOLIO_ID`. Event metadata carries `campaignBudgetType` `DAILY` | `LIFETIME_BUDGET`. History covers SP and SB only ("Changes for Sponsored Display campaigns are not returned"), with "Max 90 days of history", a count of 50–200 per page and times in UTC epoch milliseconds. It "doesn't return information about who made the change". [official] *Change history* OpenAPI (`Changehistory_prod_3p.json`), https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Changehistory_prod_3p.json
138
+ - [seat] `IN_BUDGET` events are the only Amazon-provided timeline of when a campaign went out of budget and came back. The usage API gives the current percentage only, and the budget recommendation gives a 7-day `percentTimeInBudget` aggregate. Whether `IN_BUDGET` events record each out-of-budget transition for SP was not tested by this seat; reading them needs a seller's data.
139
+
140
+ ### E. The budget usage API: how much of today's budget is gone
141
+
142
+ - RULE (what it is): "The budget usage API retrieves the budget usage percent for your campaigns and portfolios to provide near real-time information about your budget usage. You can request the budget usage percent which is retrieved in near real-time for any active, paused, or expired campaigns or portfolios." [official] Ads API guide *Budget usage overview*, https://advertising.amazon.com/API/docs/en-us/guides/budgets/usage/overview
143
+ - RULE (the denominator): "Budget usage percent is the current campaign ad spend for the day divided by the specified daily budget. This includes changes in budget due to budget rules and increases from average daily budget calculations." In Amazon's example, a $100 budget with a +50% rule and $80 spent gives "$80.00/$150.00 = 53.3%". [official] *Budget usage overview* (as above)
144
+ - [seat] So 100% usage means the day's effective budget is gone. That budget is the set budget plus rule increases plus the average-daily-budget lift. It does not mean the typed budget is gone. A campaign can show more than 100% of its typed budget spent and still be delivering.
145
+ - RULE (operations): one POST per ad product, each with `{"campaignIds": [...]}` or `{"portfolioIds": [...]}`, at most 100 ids per call:
146
+ - `POST /sp/campaigns/budget/usage` (`application/vnd.spcampaignbudgetusage.v1+json`);
147
+ - `POST /sb/campaigns/budget/usage` (`application/vnd.sbcampaignbudgetusage.v1+json`);
148
+ - `POST /sd/campaigns/budget/usage`;
149
+ - `POST /portfolios/budget/usage` (`application/vnd.portfoliobudgetusage.v1+json`).
150
+
151
+ The reply is a multi-status of `success[]` and `error[]`, each carrying the `index` of the request item. A success item carries `campaignId` or `portfolioId`, `budget`, `budgetUsagePercent` and `usageUpdatedTimestamp`. [official] *Sponsored Products v3*, *Sponsored Brands v4*, *Sponsored Display v3* and *Portfolios v3* OpenAPI specs; Ads API guide *Getting started with the budget usage API*, https://advertising.amazon.com/API/docs/en-us/guides/budgets/usage/getting-started
152
+ - Conflict: the getting-started guide's sample shows the field as `lastUpdatedDate`, and one sample even reads `budgetConsumptionPercent`. The specs name `usageUpdatedTimestamp` and `budgetUsagePercent`. [seat] Read both names defensively.
153
+ - RULE (history): "Budget usage percentage now generally available for real-time pulls in Amazon Ads API", 2023-04-05: "users worldwide can pull their real-time budget usage percentage for Sponsored Products, Sponsored Brands, and Sponsored Display … for both campaigns and portfolios". [official] Ads API release notes, https://advertising.amazon.com/API/docs/en-us/release-notes/index
154
+ - RULE (the push alternative, not reachable from cx): the Amazon Marketing Stream v1 dataset `budget-usage` sends "notifications at every 5% interval of budget consumption". Its fields are `budget_scope_id`, `budget_scope_type` (`CAMPAIGN` | `PORTFOLIO`) and `budget`, where `budget` is "the rule-based budget if any budget rule is winning". Stream v1 "is shut off on June 30, 2027". [official] Ads API guide *Sponsored ads budget usage dataset*, https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/datasets/budget-usage. The Stream v2 dataset list names `ads-performance-v1` (hourly) and other performance datasets, and no budget-usage dataset. [official] Ads API guide *Stream v2 datasets overview*, https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/v2/datasets/overview
155
+ - RULE (Amazon's stated replacement): the deprecation notice for Stream v1, v3 reporting and Sponsored Ads v2 reporting (all shut off June 30, 2027) says: "For messaging data (entity state changes and budget consumption notifications), use the Campaign Management API. … These features are not carried forward in Stream v2." [official] Ads API *Deprecations* page, section *September 2026 - Deprecation of Amazon Marketing Stream Version 1, v3 reporting, and Sponsored Ads v2 reporting*, https://advertising.amazon.com/API/docs/en-us/release-notes/deprecations
156
+ - [seat] Stream needs an SQS queue or a Firehose delivery owned by the integrator, which the open door does not have. For cx the budget-usage reading is a pull: the usage endpoints above.
157
+
158
+ ### F. Budget recommendations, missed opportunities and the budget report
159
+
160
+ - RULE (SP, what it returns): "1. Recommended daily budget - Estimated budget needed to keep the campaign in budget for the full 24-hour period." The estimated missed impressions, clicks and sales are "the estimated additional impressions, clicks and sales the campaign might have generated if it had adopted the recommended budget. These are estimates based on previous website traffic and historical campaign performance, not a guarantee". [official] Ads API guide *Budget recommendations and missed opportunities*, https://advertising.amazon.com/API/docs/en-us/guides/sponsored-products/budget-recommendations-and-missed-opportunities
161
+ - RULE (the 7-day figure): "Percent time in budget - The share of time the campaign was in budget during the past seven days." [official] same page.
162
+ - GUIDANCE: "We recommend waiting until a campaign has been active nine days to use this endpoint." [official] same page. Nine days is for human readers only.
163
+ - RULE (SP operation): `POST /sp/campaigns/budgetRecommendations` with media type `application/vnd.budgetrecommendation.v3+json` and `{"campaignIds": [...]}` (at most 100). The reply is `budgetRecommendationsSuccessResults[]`, each with:
164
+ - `campaignId`, `index` and `suggestedBudget`;
165
+ - `sevenDaysMissedOpportunities {startDate, endDate (YYYYMMDD, "Local time"), percentTimeInBudget, estimatedMissedImpressionsLower/Upper, estimatedMissedClicksLower/Upper, estimatedMissedSalesLower/Upper ("Provided in local currency")}`. The SP spec describes `percentTimeInBudget` as "Provided as a decimal ranging from 0 to 1 (e.g. 0.76 means the campaign was in budget for 76% of the time between the startDate and endDate period)". No -1 value is documented for it (the research seat had written "0 to 1, or -1"; -1 is documented only for the initial budget recommendation's `dailyBudget`);
166
+ - `budgetRuleRecommendation {suggestedBudgetIncreasePercent, ruleName, ruleId}`, which is filled "only if at least one budget rule has been created".
167
+
168
+ Errors come in `budgetRecommendationsErrorResults[]`. The guide's Scenario 3 returns `suggestedBudget`, `sevenDaysMissedOpportunities` and `budgetRuleRecommendation` all `null`, which "means that there is not enough historical data to make a recommendation". [official] *Sponsored Products v3* OpenAPI; *Budget recommendations and missed opportunities* (as above)
169
+ - RULE (SB): `POST /sb/campaigns/budgetRecommendations` (`application/vnd.sbbudgetrecommendation.v4+json`) returns `success[]` and `error[]` with the same idea and dates as YYYY-MM-DD. The 2023-01-31 release note launched it for the US: "Roughly ten percent of all Sponsored Brands campaigns go out of budget daily". It went global on 2023-07-20. [official] *Sponsored Brands v4* OpenAPI; Ads API release notes (2023-01-31, 2023-07-20). The "ten percent" is Amazon's own measurement as of 2023 and is for human readers only.
170
+ - RULE (SD): `POST /sd/campaigns/budgetRecommendations` (`application/vnd.sdbudgetrecommendations.v3+json`). Its `percentTimeInBudget` is described only as "Percentage of time the campaign is active with a budget", with the example value `60.5`, and its dates are YYYY-MM-DD. The SB v4 spec gives the same description without an example. [official] *Sponsored Display v3* and *Sponsored Brands v4* OpenAPI specs
171
+ - [seat] The SP spec states a 0-to-1 decimal and the SD example reads as a 0-to-100 percentage. The scale of the field may differ by ad product; read the value against its spec.
172
+ - RULE (new SP campaign): `POST /sp/campaigns/initialBudgetRecommendation` (`application/vnd.spinitialbudgetrecommendation.v3.4+json`) takes a draft campaign (`adGroups` with one item, `bidding`, `targetingType`, `startDate`, `endDate`). It returns:
173
+ - `dailyBudget`, where -1 means not enough information;
174
+ - `benchmark`;
175
+ - `specialEvents[]` (at most 5), with event dates and suggested budget;
176
+ - `recommendationId`.
177
+
178
+ [official] *Sponsored Products v3* OpenAPI. The first-campaign use is owned by `launch.md`.
179
+ - RULE (how Amazon computes the console's recommended budget): "we calculate the recommended budget as estimated missed clicks * estimated CPC", accounting for seasonality. The estimates come from "a machine-learning model" comparing similar campaigns that stayed in budget, and are for reference. [official] *Sponsored Products budget basics and best practices*
180
+ - [seat] Read literally, that formula gives the additional budget, not the total. The API field `suggestedBudget` is documented as the total daily budget needed. The library wording is shorthand; the API field is the one to read. What the estimates are built from, and what they cannot show, is in F2 below.
181
+ - RULE (suggested daily budget at create): "The suggested daily budget is the minimum daily budget required for your campaign to remain active through the day." It is "based on campaigns that have similar ASINs to yours, based on both category and price", using "machine-learning models of historical campaigns with similar ASINs, bids, bidding strategies, and targeting types". [official] *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS)
182
+ - RULE (console budget report): "The budget report shows how your campaign performance may be impacted when your campaigns are out of budget. Available for: sellers and vendors running Sponsored Products campaigns." It has time units "summary, daily, weekly, monthly, and quarterly" and "The lookback window for this report is 2 years". Its columns include Average Time in Budget ("The percentage of time your campaign was in budget throughout the duration that you selected"), estimated missed impressions, clicks and sales ranges, and Recommended Budget. [official] *Budget report for Sponsored Products* (help GMSBDCQF5ZW5P53N), https://advertising.amazon.com/help/GMSBDCQF5ZW5P53N
183
+ - GUIDANCE (same page): "Look for high-performing campaigns that have less than a 100% Avg Time in Budget with Est. Missed Sales, and increase the budget".
184
+ - The same page says: "You can access this report in the reporting center or access the data through the Advertising API." [official] help GMSBDCQF5ZW5P53N
185
+ - [seat] Despite that sentence, neither seat found an Ads API report type with the console budget report's columns (Average Time in Budget, missed-opportunity ranges by day, week, month or quarter). The API reads found are the 7-day `sevenDaysMissedOpportunities` per campaign and the Stream v1 `sp-budget-recommendations` dataset. See Open questions.
186
+ - RULE (Stream dataset): `sp-budget-recommendations` "provides an unmodified view of the Sponsored Products budget recommendations and missed opportunities insights from campaigns that have been recently out of budget". Its fields include `suggested_budget` ("Expressed in local currency") and `reason_for_suggestion`. It went GA on 2024-02-20. [official] Ads API guide *Sponsored Products budget recommendations and missed opportunities* (Stream), https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/datasets/budget-recs-missed-opportunities; release notes 2024-02-20.
187
+
188
+ #### F2. What the missed-opportunity figures measure (gap fill 2026-11-09)
189
+
190
+ The figures above are the most quoted argument for a budget raise. Amazon's own pages say how they are built, and what they are built from limits what they can show.
191
+
192
+ - RULE (how missed sales are derived, verbatim): "Based on similar campaigns (with similar products and targeting) in the same marketplace which did not go out of budget, we used machine learning to estimate missed clicks. Then using the historical CTR and historical sales together with the estimated missed clicks, we can also calculate the estimated missed sales and missed impressions. Like any predictive model, these metrics are estimated for reference only and are not guaranteed." And: "Same as missed opportunities, the recommended budget is also based on the machine-learning model's estimated missed clicks. We also estimate the CPC based on your campaign's historical CPCs and taking into account other factors including seasonality. Then, we calculate the recommended budget as estimated missed clicks * estimated CPC." [official] *Sponsored Products budget basics and best practices*, read 2026-11-09.
193
+ - RULE (the report's column definitions): Estimated Missed Clicks is "based on factors that may include historical performance of similar campaigns that didn't run out of budget"; Estimated Missed Sales is "based on factors that may include estimated missed clicks and historical sales"; Estimated Missed Impressions is "based on factors that may include estimated missed clicks and historical click-through rate (CTR)". Each is "an estimate, not a guarantee", and "Some campaigns may not have enough data to provide an estimate." [official] *Budget report for Sponsored Products* (help GMSBDCQF5ZW5P53N), read 2026-11-09.
194
+ - RULE (the API's wording): `estimatedMissedSalesLower` is the "Lower bound estimate of the additional sales the campaign might have generated if it had not run out of budget during the {startDate} to {endDate} period. Provided in local currency"; the click and impression bounds are worded the same way. The guide adds that these are "estimates based on previous website traffic and historical campaign performance, not a guarantee of actual impressions, clicks, and sales." [official] *Sponsored Products v3* OpenAPI (`SevenDaysMissedOpportunities`); *Budget recommendations and missed opportunities*, both read 2026-11-09.
195
+ - RULE (what "sales" is on Sponsored Products): the reporting columns define `sales7d` as "Total value of sales occurring within 7 days of an ad click". [official] Ads API guide *Reporting columns (version 3)*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/columns, read 2026-11-09. Ad sales are click-attributed sales, not sales caused by the ad; that distinction is owned by `beyond/metrics-and-attribution.md` and `areas/ads-organic-and-total.md`.
196
+ - Conflict (the samples): the SP spec describes `percentTimeInBudget` as "a decimal ranging from 0 to 1", while the same spec's response examples carry `65.2` and `80`, and one example carries `suggestedBudget: "-1"` as a string. The guide's Scenario 1 sample returns 3–5 missed impressions against 8–12 missed clicks, more clicks than impressions. [official] *Sponsored Products v3* OpenAPI (`BudgetRecommendationResponse` examples); *Budget recommendations and missed opportunities*, both read 2026-11-09. [seat] The samples are illustrations, but they show the fields were not drawn from one consistent case; the scale of `percentTimeInBudget` is best judged from the value itself (a value above 1 is a percentage).
197
+ - [seat] What follows from Amazon's own description:
198
+ - The missed-sales figure is a model output stacked on a model output: modelled missed clicks (from other campaigns that stayed in budget), multiplied by this campaign's own historical CTR and sales. It is not an observation of what the campaign would have sold.
199
+ - The "historical sales" it uses are attributed sales (`sales7d` for sellers), so the estimate is of attributed sales, not of sales the raise would cause. Attributed and incremental differ most on brand terms (Blake, Nosko and Tadelis 2015, in *Published research*).
200
+ - The campaign's own historical rates come from the hours it was in budget. The hours a raise buys are the hours after exhaustion, usually later in the day, and practitioner hourly data show conversion rate and CPC differ by hour (P8 below). Amazon does not say whether its model conditions on hour of day.
201
+ - The day-level metrics of a day the campaign went out of budget cover only the in-budget hours. A daily ACOS, CVR or ROAS on such a day is a partial-day figure, and a 7-day average that mixes full and truncated days is weighted toward the hours that were served.
202
+ - The seat found no published validation by Amazon or anyone else of the missed-opportunity estimates against what campaigns did after a raise (searches of amazon.science, arXiv and Amazon's help and API pages on 2026-11-09). Ad Badger (2021) remarks of the console report's ranges that "the difference between both values is great" (P8).
203
+ - The direct read of what a raise did is a before/after of the campaign's own spend, clicks, orders and hourly cost once the budget changed, which is `method/change-measurement.md`'s.
204
+
205
+ ### G. Budget rules
206
+
207
+ - RULE (what they do): "Budget rules allow you to set rules to automatically increase daily budgets based on shopping events and campaign performance." Schedule-based rules "increase budget during a special event or custom date range". Performance-based rules "increase budget when a performance metric (such as ROAS) is greater or equal to a chosen value". [official] *Understand budget rules in Sponsored ads* (help GNSMLANWNF344YBE), https://advertising.amazon.com/help/GNSMLANWNF344YBE
208
+ - [seat] Rules only raise. There is no budget-rule type that lowers a budget below the typed daily budget.
209
+ - RULE (review timing, help page): "Active budget rules are reviewed daily to determine the next day's budget." "If more than one rule meets the conditions, all applicable increases are cumulatively applied to the daily budget." [official] help GNSMLANWNF344YBE
210
+ - RULE (evaluation timing, API guide): "Budget rules are evaluated on your campaigns at the start of the day to calculate campaign budget for the day. … Each time a new budget rule is created or an existing rule is updated, the budget rule is evaluated immediately to update the budget for that day. Similarly, budget rules for a campaign are evaluated … each time the campaign daily budget is modified." "Multiple rules can be specified for a campaign to a maximum of 250." [official] Ads API guide *Budget rule evaluation*, https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/rule-evaluation
211
+ - Conflict: the help page says rules set the next day's budget, and the API guide says the same day, at the start of the day and again on any edit. [seat] The API guide is more specific and is the one with worked examples.
212
+ - RULE (additive since 2023): "As of February 2023 … If more than one budget rule satisfies your set conditions, all budget rules are applied and their increases are added to daily budget independently". The worked examples:
213
+ - +40% (performance) and +100% (Black Friday) give a "140% daily budget increase for that day";
214
+ - +50% for the day with +25% from 5:00 PM to 9:00 PM gives "a total of 75% in that period", and "at 9:00PM the increase will be back to 50%".
215
+
216
+ [official] *Budget rule evaluation*; release notes 2023-01-31 (awareness) and 2023-03-20 (live, "all advertisers worldwide (vendors and sellers) … Sponsored Products, Sponsored Brands, and Sponsored Display").
217
+ - RULE (statuses): rule statuses are:
218
+ - Active;
219
+ - On Hold: "Performance criteria have not yet been met", "Another active rule supersedes the current rule", or "A recurrence condition has not yet been met";
220
+ - Paused;
221
+ - Budget threshold not met: "the minimum required daily budget threshold required is not met. This is applicable for performance rules only";
222
+ - Pending Start;
223
+ - Expired.
224
+
225
+ [official] *Budget rule evaluation*. The console help page lists a shorter set: Active ("increased budget is used for budget enforcement for the day"), On hold, Paused, Upcoming ("will become active in future") and Expired. [official] help G3HZWVWYE23DBR2V. In the API, `ruleState` is `ACTIVE` | `PAUSED`, and `ruleStatus` is a free string ("The budget rule evaluation status. Read-only."), not an enum. [official] *Sponsored Products v3* OpenAPI (`SPCampaignBudgetRule`)
226
+ - RULE (performance metrics and lookback): SP and SD performance rules use `ACOS`, `CTR`, `CVR` and `ROAS`. SB uses `ROAS`, plus `IS` (top-of-search impression share, not for video) and `NTB`, which were added 2023-04-06. The comparison operators are `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN` and `LESS_THAN_OR_EQUAL_TO`. "These metrics are calculated using data from the previous 7 days for sellers and 14 days for vendors." [official] Ads API guide *Budget Rules overview* (H1 *Sponsored ads budget rules overview*), https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/overview. The performance guide words the same split as an attribution window: "For sellers, the time period used for metric calculation is within 7 days of an ad click. For vendors, metrics are calculated within 14 days of an ad click." [official] *Performance-based rules*, https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/performance-based. The console help page says only "We calculate the performance threshold using data from the previous 7 days." [official] help GNSMLANWNF344YBE. SB metric enum `PerformanceMetricForSB`: `IS`, `NTB`, `ROAS`. [official] *Sponsored Brands v4* OpenAPI; release note 2023-04-06.
227
+ - RULE (minimum budget for performance rules): "Note : Campaigns must have a minimum daily budget of $10 to use performance-based rules." [official] *Understand budget rules in Sponsored ads* (help GNSMLANWNF344YBE), current page read 2026-11-09; the same sentence is in *Budget rules now available in Amazon advertising console globally* (what's new, 2021-08-12), https://advertising.amazon.com/resources/whats-new/dynamic-budget-control. The API guide states that a minimum exists ("The minimum required budget aims at increasing the likelihood the campaign will have enough traffic and the metrics can be evaluated") without giving the figure. [official] *Performance-based rules*. The $10 (a US-dollar figure; no other currency is given) is for human readers only; the live signal is the status "Budget threshold not met".
228
+ - RULE (hours of day): `recurrence.intraDaySchedule [{startTime, endTime}]` (hh:mm:ss, at most one window) "is currently only available for campaigns in the following marketplaces: US, CA, UK, IN, JP". Hours of day are "available only for schedule-based budget rules", and "there is a minimum budget required for hours-of-day, schedule-based budget rules to become active". The spec caps `intraDaySchedule` at `maxItems: 1`. Launched 2023-11-16. [official] Ads API guide *Schedule-based rules*, https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/schedule-based; *Sponsored Products v3* OpenAPI (`Recurrence`); *Create budget rules for sponsored ads campaigns* (help G3HZWVWYE23DBR2V), https://advertising.amazon.com/help/G3HZWVWYE23DBR2V; release notes 2023-11-16.
229
+ - RULE (shape): `POST /sp/budgetRules` takes `budgetRulesDetails[]` (at most 25). Each detail has:
230
+ - `name`: at most 355 characters, unique within a campaign;
231
+ - `ruleType`: `SCHEDULE` | `PERFORMANCE`;
232
+ - `duration`: either `dateRangeTypeRuleDuration {startDate, endDate}` (YYYYMMDD, inclusive, start no earlier than today) or `eventTypeRuleDuration {eventId}`;
233
+ - `recurrence {type, daysOfWeek[], intraDaySchedule[]}`;
234
+ - `budgetIncreaseBy {type: PERCENT, value}`;
235
+ - `performanceMeasureCondition {metricName, threshold, comparisonOperator}` on performance rules.
236
+
237
+ [official] *Sponsored Products v3* OpenAPI (`SPBudgetRuleDetails` and related schemas)
238
+ - Conflict: the SP spec's `RecurrenceType` enum lists only `DAILY` ("The frequency of the rule application."), while `Recurrence.daysOfWeek` is described as "Object representing days of the week for weekly type rule". The schedule-based guide documents `weekly` recurrence ("only available for custom date ranges") and its samples send `"type": "WEEKLY"` (SP, with `daysOfWeek: ["MONDAY"]` and an `intraDaySchedule`) and `"type": "weekly"` (SD). The console offers "daily" or "weekly" recurrence. [official] *Sponsored Products v3* OpenAPI; *Schedule-based rules*; help G3HZWVWYE23DBR2V. (The research seat had written that the guides show `type: DAILY` with `daysOfWeek`; they show `WEEKLY`.)
239
+ - RULE (association): a rule is created once and attached to campaigns:
240
+ - `POST /sp/campaigns/{campaignId}/budgetRules` with `budgetRuleIds` (at most 25 per call);
241
+ - or in bulk, `POST /sp/budgetRulesAssociation` (at most 50) and `POST /sp/budgetRulesAssociation/delete`.
242
+
243
+ Attached rules are listed with `GET /sp/campaigns/{campaignId}/budgetRules` and removed with `DELETE /sp/campaigns/{campaignId}/budgetRules/{budgetRuleId}`. `GET /sp/budgetRules` lists the profile's rules, and `GET /sp/budgetRules/{budgetRuleId}/campaigns` lists the campaigns a rule is on. SB and SD have the same per-campaign and per-rule family under `/sb/` and `/sd/`, but the bulk `budgetRulesAssociation` calls exist in the SP spec only; the SB v4 and SD v3 specs have no bulk association path. `GET /sp/budgetRules` returns at most 30 rules per page with `nextToken`. [official] *Sponsored Products v3*, *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; *Schedule-based rules* (association samples)
244
+ - RULE (recommended events): `POST /sp/campaigns/budgetRules/recommendations` (`application/vnd.spbudgetrulesrecommendation.v3+json`) with a `campaignId` returns `recommendedBudgetRuleEvents[] {eventId, eventName, startDate, endDate, suggestedBudgetIncreasePercent}`. SB has the same under `/sb/`. An event whose dates Amazon has not yet announced comes back with empty dates, and a rule tied to its `eventId` takes the dates once Amazon announces them. [official] *Schedule-based rules*; *Sponsored Products v3* and *Sponsored Brands v4* OpenAPI specs. "We'll recommend events based on the products in your campaign when we anticipate more demand and a need for an increased budget." [official] *Budget rules now available in Amazon advertising console globally* (what's new, 2021-08-12)
245
+ - RULE (reading the raised budget back):
246
+ - SP v3 campaigns carry `budget.effectiveBudget`.
247
+ - SB v4 and SD v3 campaigns carry `ruleBasedBudget {value, applicableRuleId, applicableRuleName, isProcessing}`. `isProcessing` is "set to `true` if rule evaluation is in progress". (The guides also name SP v2 and snapshots; SP v2 campaign management and the v1/v2 snapshots APIs are shut off — snapshots on 2024-12-15 per release note 2024-10-09 — so those are history.)
248
+ - Amazon warns: "As of February 2023, the `applicableRuleId` can be incomplete since multiple rules could be active at the same time … so you should use `GET /sb/campaigns/{campaignId}/budgetRules` to see active rules".
249
+
250
+ [official] *Sponsored Products v3*, *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; Ads API guides *Viewing changes to daily budgets for campaigns with budget rules*, https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/campaigns-api, and *Including budget rules values in a snapshot* (which carries the warning "Snapshots APIs are deprecated"), https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/snapshots; *Deprecations* page; release note 2024-10-09.
251
+ - RULE (reports): the `campaigns` report type carries `campaignRuleBasedBudget`, `applicableBudgetRuleId` and `applicableBudgetRuleName`; the guide's SB sample uses the legacy `POST /v2/hsa/campaigns/report`. [official] Ads API guide *Including budget rules values in a report*, https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/reports. [seat] Sponsored Ads v2 and v3 reporting both shut off on 2027-06-30 (section N). The reporting v3 campaign report carries `campaignRuleBasedBudgetAmount`, `campaignApplicableBudgetRuleId` and `campaignApplicableBudgetRuleName`. [official] Ads API guide *Campaign reports (v3)*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/campaign. The exports campaign entity carries `budgetCaps.budgetValue.monetaryBudget.ruleAmount`, "The monetary amount of the budget when a budget rule is applied", and maps it to SP `budget.effectiveBudget` and SB/SD `ruleBasedBudget.value`. [official] Ads API guide *Exports: campaigns*, https://advertising.amazon.com/API/docs/en-us/guides/exports/entities/campaigns
252
+ - RULE (history endpoints gone): `GET /sp/campaigns/{campaignId}/budgetRules/budgetHistory`, `GET /sb/campaigns/{campaignId}/budgetRules/budgetHistory` and `GET /sd/campaigns/{campaignId}/budgetRules/budgetHistory` were deprecated on 2023-08-31, with no replacement listed. [official] release note 2023-02-28; *Deprecations* page (row *Budget rules history*, replacement "None"). [seat] Change history (`POST /history`, section D) records `RULE_BASED_BUDGET_VALUE` and `APPLICABLE_RULE_ID` changes on SP and SB campaigns, which is the remaining API timeline of rule effects.
253
+ - GUIDANCE (Amazon's examples):
254
+ - If a campaign runs out at the same time each period, such as weekends, use a schedule-based rule; "20% is a good starting point". [official] *Sponsored Products budget basics and best practices*
255
+ - The help page's example raises budget "by 20% every day from 6 PM- 9 PM" for a cleaning-supply seller whose shoppers search for dish soap at dinner. [official] help GNSMLANWNF344YBE
256
+ - The API guide's examples include +100% on Black Friday. [official] *Budget rule evaluation*
257
+ - Conflict (thresholds in Amazon's own examples): in the help table the +20% rule is "if ROAS is greater than 5" and the +40% rule "if ROAS is greater than 3", so a ROAS of 4 meets only the second. The API guide gives both rules as "greater than 3" and still says the 20% rule's "condition was not met" at ROAS 4, which is internally inconsistent. The performance guide's SB and SP scenarios say "set 10% as the threshold" while the samples send `threshold: 20`, `budgetIncreaseBy.value: 10` and `LESS_THAN_OR_EQUAL_TO`. [official] help GNSMLANWNF344YBE; *Budget rule evaluation*; *Performance-based rules*. [seat] These are illustrations, not rules. The thresholds are the seller's to choose.
258
+ - RULE (history of availability): budget rules launched in the console on 2021-08-12 for Sponsored Products only, for vendors and registered sellers, in 16 marketplaces (US, CA, MX, BR, DE, ES, FR, IT, NL, UK, SA, AE, AU, IN, JP, SG; the research seat had counted 15). [official] *Budget rules now available in Amazon advertising console globally* (what's new, 2021-08-12). They are now on SP, SB and SD in the API. [official] release note 2023-03-20. Recommended events are SP and SB only. [official] *Schedule-based rules*
259
+
260
+ ### H. Portfolios: caps and unspent-budget sharing
261
+
262
+ - RULE (what a portfolio cap is): portfolios offer "Budget caps – Define a date range or recurring monthly budget cap and ensure that your campaign spends do not exceed your desired marketing needs". "The `dateRange` policy specifies a budget cap for a specific period of time. The `monthlyRecurring` policy specifies a budget that is automatically renewed at the beginning of each month. The `NO_CAP` setting allows the campaigns in your portfolio to continue spending until those individual campaign budgets have been used." "A campaign can only belong to one portfolio at a time." Portfolios "do not compete against each other" (the help page: "They don't compete against each other"; it words the cap as "ensure that your campaign Cost doesn't exceed your desired marketing needs"). [official] Ads API guide *Get started with Portfolios*, https://advertising.amazon.com/API/docs/en-us/guides/portfolios/get-started; *Understand portfolios* (help GPEJN2E6R52G7C2T), https://advertising.amazon.com/help/GPEJN2E6R52G7C2T
263
+ - RULE (shape, Portfolios v3, released 2024-07-18): `POST /portfolios`, `PUT /portfolios` and `POST /portfolios/list` take media type `application/vnd.spPortfolio.v3+json`; list filters by `portfolioIdFilter` and others. The budget object is `budget {amount, currencyCode, startDate, endDate (ISO dates), policy: DATE_RANGE | MONTHLY_RECURRING | NO_CAP | OTHER}`. A portfolio also carries:
264
+ - `inBudget`;
265
+ - `budgetControls.campaignUnspentBudgetSharing.featureState` `ENABLED` | `DISABLED`;
266
+ - `extendedData.servingStatus` (section D).
267
+
268
+ Removing a cap means setting `policy: NO_CAP` with the amount and dates nulled. [official] *Portfolios v3* OpenAPI (`Portfolios_prod_3p.json`), https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Portfolios_prod_3p.json
269
+ - RULE (budget validation errors in SP and portfolios): a write can fail with:
270
+ - `BUDGET_TOO_LOW`, `BUDGET_TOO_HIGH` or `BUDGET_OUT_OF_MARKET_PLACE_RANGE`, and on portfolios only `BUDGET_AMOUNT_INVALID` (it is in `PortfolioBudgetErrorReason`, not in `SponsoredProductsBudgetErrorReason`);
271
+ - `BUDGET_CURRENCY_DOES_NOT_MATCH_MARKETPLACE_SETTINGS`;
272
+ - `BUDGET_LT_DEFAULT_BIDS`, `BUDGET_LT_KEYWORD_BIDS` or `BUDGET_LT_PREDEFINED_TARGET_BIDS`;
273
+ - `BUDGETING_POLICY_INVALID`, `MISSING_BUDGETING_POLICY` or `MISSING_IN_BUDGET_FLAG`.
274
+
275
+ [official] *Portfolios v3* (`PortfolioBudgetErrorReason`) and *Sponsored Products v3* (`SponsoredProductsBudgetErrorReason`) OpenAPI specs. Portfolio writes can also fail on billing (`PortfolioBillingErrorReason`: `ADVERTISER_SUSPENDED`, `BILLING_ACCOUNT_NOT_FOUND`, `EXPIRED_PAYMENT_METHOD`, `PAYMENT_PROFILE_NOT_FOUND`, `VETTING_FAILURE`). [official] *Portfolios v3* OpenAPI
276
+ - [seat] The `BUDGET_LT_*_BIDS` reasons mean Amazon refuses a daily budget below the campaign's own bids.
277
+ - RULE (unspent-budget sharing): "campaigns that have already spent their full daily budget can automatically use unspent campaign budget from other campaigns from previous days in the month, allowing them to spend up to 100% more than their average daily budget on any given day. … At the end of the month, the campaigns in your portfolio will not spend more in total than the sum of the daily budget for each campaign, multiplied by the number of days in that month. Your invoice will be adjusted for any over-delivery". The worked example: three $100 campaigns spend $70, $50 and $100, which leaves "$80 in unspent leftovers"; the next day the third campaign "can still spend the additional $80". The pool is reset each month: "at the beginning of the next month the leftover amount is reset to 0". A campaign first uses its own leftovers through the average daily budget, and sharing is "offered to help campaigns that still run out of budget, even after spending their own leftovers". [official] Ads API guide *Sharing leftover budget in a portfolio*, https://advertising.amazon.com/API/docs/en-us/guides/portfolios/sharing-leftover
278
+ - RULE (default on): "By default, all portfolios created after 6/20/2025 have unspent campaign budget sharing turned on." It is turned off per portfolio with `PUT /portfolios` and `budgetControls.campaignUnspentBudgetSharing.featureState: DISABLED`. [official] *Sharing leftover budget in a portfolio*; release notes 2025-07-07 and 2025-07-19 ("allows high-performing campaigns to spend up to twice their daily budget by tapping into unspent campaign budget … staying within your total monthly portfolio budget").
279
+ - [seat] With sharing on, the monthly bound is the portfolio's sum of daily budgets × days, not each campaign's. One campaign can therefore spend more than its own budget × days in a month. A lower portfolio cap still binds, with status `PORTFOLIO_OUT_OF_BUDGET`.
280
+ - RULE (billing by portfolio): "Billing details will reflect the portfolio mapping at the time the invoice is issued. If you don't group your campaigns into portfolios, the invoices will be a list of campaign-level spend." [official] help GPEJN2E6R52G7C2T. Invoice lines in the billing API carry `portfolioId`. [official] *Advertising Billing* OpenAPI
281
+ - RULE (bulk): portfolios, including budget policy and amounts, are supported in bulksheets for all campaign types (since 2022-01-01). [official] Ads API guide *Bulksheets: portfolios*, https://advertising.amazon.com/API/docs/en-us/no-code-tools/bulksheets/bulksheets-portfolios; release notes 2022-01-01.
282
+
283
+ ### I. The Sponsored Products account daily budget cap (sellers)
284
+
285
+ - RULE: "Sellers have the option to set a daily budget at the campaign level, or the account level using a Sponsored Products daily budget cap. The daily budget cap will be the maximum cumulative amount all of the Sponsored Products campaigns in your account can spend per day." "This feature is only available to Sellers. If you're not a seller and looking for ways to set a daily budget across multiple campaigns, try a portfolio budget cap." [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L)
286
+ - RULE (status): when the cap is hit, SP campaigns show `ACCOUNT_OUT_OF_BUDGET`: "Total ad-spend for the day across all of your campaigns has reached your Account Daily Budget Cap threshold." [official] *Computed status and campaign status*. In v1 it is `ADVERTISER_OUT_OF_BUDGET`, "out of budget for Sponsored Products campaigns for sellers". [official] *Amazon Ads API v1* OpenAPI
287
+ - RULE (where it is set): "To change or remove the Sponsored Products daily budget cap, go to all campaigns in Campaign Manager and select Advertising Settings." [official] *Troubleshoot your campaign status* (help GEC8BVH43CU9UNYH)
288
+ - [seat] The seat found no Ads API operation that reads or sets this cap. The console sets it, and the API only shows its effect as a serving status.
289
+ - RULE (notifications vs campaign manager): "Budget notifications are an account alert, while the information displayed in the campaign manager reflects campaign reporting that may take additional time to process. … If a portfolio budget or Sponsored Products overall budget has been reached, you'll need to adjust those caps". [official] help GVYUKBJQFPH7ZQ2L
290
+
291
+ ### J. Campaign budgets in Ads API v1, global campaigns and currency
292
+
293
+ - RULE (shape): a v1 campaign carries `budgets[]` (at most 2 items). Each item is `{budgetType: MONETARY, recurrenceTimePeriod: DAILY | LIFETIME | MONTHLY, budgetValue: {monetaryBudgetValue: {monetaryBudget: {value, currencyCode, ruleValue}, marketplaceSettings[] {marketplace, monetaryBudget}}}}`. `marketplaceSettings` takes at most 30 items. `ruleValue` is "The monetary amount of the budget when a budget rule is applied." [official] *Amazon Ads API v1* OpenAPI (`AmazonAdsAPIALL_prod_3p.json`, campaign schemas), https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALL_prod_3p.json; Ads API reference *Common models: campaigns*, https://advertising.amazon.com/API/docs/en-us/reference/common-models/campaigns
294
+ - Conflict: the v1 OpenAPI `Recurrence` enum is `DAILY`, `LIFETIME`, `MONTHLY`; the *Common models: enums* page lists `recurrenceTimePeriod` as `DAILY`, `LIFETIME`, `OTHER`. [official] both pages.
295
+ - [seat] Which `recurrenceTimePeriod` values a given ad product accepts follows the product: SP daily, SB daily or lifetime, DSP flights. `MONTHLY` exists in the spec's shared model. The seat found no sponsored-ads guide that offers a monthly campaign budget, and the Stream campaign dataset lists `budgets.recurrence_time_period` `DAILY`, `MONTHLY` and `LIFETIME` without saying which products use which.
296
+ - RULE (operations): v1 campaign operations are all POST: `/adsApi/v1/create/campaigns`, `/adsApi/v1/query/campaigns`, `/adsApi/v1/update/campaigns` and `/adsApi/v1/delete/campaigns`. [official] *Amazon Ads API v1* OpenAPI. The door's own reference gives the SP v1 budget shape `budgets: [{ budgetType: "MONETARY", budgetValue: { monetaryBudgetValue: { monetaryBudget: { value } } }, recurrenceTimePeriod: "DAILY" }]`. [seat, from the plugin] `cx-amazon-ads/skills/amazon-ads/references/door.md`
297
+ - RULE (budget settings): `optimizations.budgetSettings` carries `budgetAllocation` (`AUTO` | `MANUAL`, DSP), `flightBudgetRolloverStrategy` (DSP) and `offAmazonBudgetControlStrategy` (SP). [official] *Amazon Ads API v1* OpenAPI. On SP v3 the same SP setting is `offAmazonSettings.offAmazonBudgetControlStrategy` `MAXIMIZE_REACH` | `MINIMIZE_SPEND`, and global campaigns carry `marketplaceBudgetAllocation` `AUTO` | `MANUAL`. [official] *Sponsored Products v3* OpenAPI
298
+ - RULE (what the setting means): SP v3 `MAXIMIZE_REACH` "Allow ad placements both on and off Amazon"; `MINIMIZE_SPEND` "Restrict ad placements to Amazon owned-and-operated properties only." The v1 spec words them "Maximize the reach of off-Amazon inventory within the budget" and "Minimize spend on off-Amazon inventory while maintaining delivery." [official] *Sponsored Products v3* and *Amazon Ads API v1* OpenAPI specs. The status page says: "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." [official] help GEC8BVH43CU9UNYH
299
+ - [seat] Read together ("within the budget"), off-Amazon SP cost is spent from the campaign's budget; the help page's "account for additional budget" is ambiguous on that point. The placement mechanics are owned by `bids-and-placements.md`.
300
+ - RULE (global SP campaigns): a global campaign is created once and runs in several marketplaces, each with its own budget in local currency. Amazon's example is "The budgets are $100, £80, €60" for US, GB and DE, set through `marketplaceSettings`. The request uses the `Amazon-Ads-AccountId` header instead of a profile scope. The supported marketplaces are AE, AU, BE, BR, CA, DE, EG, ES, FR, GB, IN, IT, JP, MX, NL, PL, SA, SE, SG, TR and US. Values for other marketplaces can be filled with the localization APIs. "Only the `spCampaigns` report surfaces global campaigns." [official] Ads API guide *Global campaigns for Sponsored Products*, https://advertising.amazon.com/API/docs/en-us/guides/campaign-management/global-campaigns. The reporting page at `guides/reporting/ads-v1/report-types/sp-campaigns` is titled *Migrating from: spCampaigns* and maps the v3 `spCampaigns` columns to v1 fields (`campaign.budgetAmount`, `campaign.budgetType`, `campaign.currencyCode`, `campaign.deliveryStatus`); it does not itself discuss global campaigns. [official] https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/report-types/sp-campaigns
301
+ - RULE (setting the per-marketplace budgets of a global campaign; gap fill 2026-11-09):
302
+ - Each marketplace's budget is a `marketplaceSettings[] {marketplace, monetaryBudget {value}}` entry inside `budgets[].budgetValue.monetaryBudgetValue`; the read returns each with its `currencyCode` (USD, GBP, EUR in Amazon's example). `marketplaceSettings` is "List of Monetary Budget values selectively applied at the given marketplace level", at most 30. [official] *Global campaigns for Sponsored Products*; *Amazon Ads API v1* OpenAPI (`MonetaryBudgetValue`), both read 2026-11-09.
303
+ - The per-marketplace overrides (`marketplaceConfigurations[].overrides`) cover `state`, `name`, `startDateTime`, `endDateTime`, `optimizations` and `tags`; budget is not among them. "Bid strategy is campaign-level; only bid values differ per marketplace." [official] *Global campaigns for Sponsored Products* (*Key fields*, FAQ).
304
+ - Adding a marketplace: "Update `marketplaces` *and include the budget for the new marketplace in the same call* — a `marketplaces`-only update is rejected with `FIELD_VALUE_IS_NULL`." A campaign can also "auto-expand to new marketplaces as they become available (`autoScaleGlobalCampaign: AUTO`)". [official] *Global campaigns for Sponsored Products* (Scenario 4, step 2; section *Global campaign APIs*).
305
+ - Values for other marketplaces "can either be entered directly by you, or you can provide the values for one marketplace and receive the localized values for all other marketplaces using the localization APIs". [official] same page.
306
+ - Allocation mode: SP v3 `SponsoredProductsMarketplaceBudgetAllocation` reads "`AUTO` | Auto distribute global budget to marketplaces in global campaign. Budget updates for marketplaces are not allowed for AUTO campaigns. The budget can only be updated in global campaign for AUTO campaigns. | `MANUAL` | Manually distribute global budget to marketplaces in global campaign." Its list filter "is not functional yet" and "By default, only MANUAL campaigns are returned". [official] *Sponsored Products v3* OpenAPI, read 2026-11-09. In v1, `marketplaceBudgetAllocation` appears in the read model `BudgetSettings` only; `CreateBudgetSettings` and `UpdateBudgetSettings` do not carry it. [official] *Amazon Ads API v1* OpenAPI, read 2026-11-09.
307
+ - Status per marketplace: "Query responses include a `status` object with a global `deliveryStatus` plus per-market `marketplaceSettings`", with `deliveryStatus` `DELIVERING`, `LIMITED`, `NOT_DELIVERING` or `UNAVAILABLE` and `deliveryReasons` including `CAMPAIGN_OUT_OF_BUDGET`; "In `status.marketplaceSettings[]`, the API returns the marketplace ID (for example, `A1F83G8C2ARO7P` for the UK) rather than the country code." [official] *Global campaigns for Sponsored Products* (*Delivery status*). [seat] A global campaign that is out of budget in one marketplace only reads `LIMITED` at the top; the marketplace that stopped is in `status.marketplaceSettings[]`, keyed by marketplace ID.
308
+ - [seat] So on a `MANUAL` global campaign each marketplace's daily budget is a separate local-currency number that cx sets; on an `AUTO` one only the global figure can be written, and Amazon splits it. Neither page says whether the monthly-averaging cap (section B) applies per marketplace or to the global figure; see Open questions.
309
+ - RULE (portfolios are per marketplace): Portfolios v3 is called with a profile scope, and a profile is one marketplace; the v1 spec has no portfolio path (only a `CampaignPortfolioIdFilter`). A portfolio budget's `currencyCode` must match the marketplace (`BUDGET_CURRENCY_DOES_NOT_MATCH_MARKETPLACE_SETTINGS`). [official] *Portfolios v3* OpenAPI; *Amazon Ads API v1* OpenAPI, both read 2026-11-09. [seat] A monthly plan "per client per marketplace" therefore has a native Amazon counterpart only per profile: a `MONTHLY_RECURRING` portfolio cap in local currency, one per portfolio, with no Amazon object that caps several marketplaces together or converts between their currencies.
310
+ - RULE (currency): a budget is always in the marketplace's currency. A portfolio budget whose `currencyCode` does not match fails with `BUDGET_CURRENCY_DOES_NOT_MATCH_MARKETPLACE_SETTINGS`. [official] *Portfolios v3* OpenAPI. In reports, v3 campaign reports carry `campaignBudgetAmount`, `campaignBudgetType` and `campaignBudgetCurrencyCode`. v1 reports carry `campaign.budgetAmount` ("The budget allocated to the campaign") and the `budgetCurrency.value` dimension, and "The `metric.sales` field requires the `budgetCurrency.value` field". [official] *Campaign reports (v3)*; Ads API guides *Helpful concepts* (reporting v1), https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/helpful-concepts, and *Budget currency* dimension, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/budget-currency
311
+ - RULE (converted currency in v1 reports): v1 reporting has a `convertedCurrency.value` dimension ("The currency selected by the customer to view metrics", SP, SB, SD, Sponsored TV, DSP, Full-Funnel) and converted metrics such as `metric.totalCostConverted` ("Values are displayed in the selected currency"). The v1 cost metric is `metric.totalCost` ("The total amount spent on running the campaign"; v3 Sponsored Ads name `spend`), which requires `budgetCurrency.value`. [official] Ads API guides *Converted currency (Currency)*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/converted-currency, and *Costs* metric family, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/costs-and-fees/costs
312
+ - [seat] So spend can be read in one currency across marketplaces from v1 reports. No converted field was found for budget amounts on campaign entities; adding typed budgets across marketplaces still needs a rate the entity APIs do not supply. (The research seat had written that the API supplies no conversion at all.)
313
+ - RULE (exports): the exports campaign entity carries `budgetCaps.budgetType`, `budgetCaps.recurrenceTimePeriod`, `budgetCaps.budgetValue.monetaryBudget.currencyCode`, `.amount` and `.ruleAmount`, with a mapping table to the SP, SB, SD and DSP field names. [official] *Exports: campaigns*
314
+
315
+ ### K. Sponsored Brands and Sponsored Display budgets, and budget limits by marketplace
316
+
317
+ - RULE (SB): daily or lifetime, chosen at create and fixed thereafter (sections C and G). SB budget rules support ROAS, IS and NTB. SB budget recommendations are under `/sb/` (section F). [official] *Sponsored Brands v4* OpenAPI; help GVYUKBJQFPH7ZQ2L
318
+ - RULE (SD): daily budget only, with a regional default when none is given (section C). SD optimization rules (a separate feature from budget rules, beta since 2023-09-18) require the campaign budget to be at least "5x the value of any COST_PER_ORDER threshold", "10x the value of any COST_PER_THOUSAND_VIEWABLE_IMPRESSIONS threshold" and 20× a CPC threshold. [official] *Sponsored Display v3* OpenAPI (`POST /sd/campaigns`, `POST /sd/optimizationRules`); release notes 2023-09-18. The per-marketplace minimum thresholds (e.g. US cost per order 5, cost per click 0.5) are in *Limits, constraints, and quotas* (section *Metric minimum threshold values*). These figures are for human readers only.
319
+ - RULE (writing an SB budget; gap fill 2026-11-09): `PUT /sb/v4/campaigns` with media type `application/vnd.sbcampaignresource.v4+json` takes `{"campaigns": [UpdateCampaign]}`, 1 to 10 items. `UpdateCampaign` requires only `campaignId`; its budget field is `budget` ("The budget of the campaign", a double), with `startDate` ("can only be changed if the current startDate is in the future") and a nullable `endDate` ("If null is explicitly provided in a campaign update request, any existing endDate for the campaign will be removed"). `UpdateCampaign` has no `budgetType`: `budgetType` (`DAILY` | `LIFETIME`, "For the lifetime budget type, `startDate` and `endDate` must be specified") is in `CreateCampaign` only. The reply is `campaigns.success[] {index, campaignId, campaign}` and `campaigns.error[]`, each at most 10. [official] *Sponsored Brands v4* OpenAPI, read 2026-11-09. With the help page's rules ("If you're using a lifetime budget, you can only increase it once your campaign is live"; no switch from daily to lifetime once live; section C), the budget type of a live SB campaign is fixed and only the amount (and, for a lifetime budget, upward only) is written.
320
+ - RULE (writing an SD budget, v3): `PUT /sd/campaigns` takes a JSON array of `UpdateCampaign` (media type `application/json`); "The mutable fields are `name`, `state`, `budget`, `startDate`, and `endDate`. Maximum length of the array is 100 objects." `budgetType` is in the shared `BaseCampaign` with the single value `daily` (lower case) and `budget` is "The amount of the budget". The 207 reply is an array of `{code, description, campaignId}`, without the campaign's new values. [official] *Sponsored Display v3* OpenAPI, read 2026-11-09. The read-back is `GET /sd/campaigns/{campaignId}` or `GET /sd/campaigns/extended/{campaignId}` (same spec).
321
+ - RULE (writing an SD budget, v1): the SD v1 model's `SDCampaignUpdate.budgets` (exactly 1 item) references `SDCreateBudget`, which has `budgetType` (`MONETARY`) and `budgetValue.monetaryBudgetValue.monetaryBudget.value` and no `recurrenceTimePeriod`; the read model `SDBudget` requires `budgetType`, `budgetValue` and `recurrenceTimePeriod`. [official] *Amazon Ads API v1, Sponsored Display* OpenAPI (`AmazonAdsAPISD_prod_3p.json`), https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPISD_prod_3p.json, read 2026-11-09.
322
+ - [opinion] `zhangwg4apollo` (GitHub issue #475 on `amzn/ads-advanced-tools-docs`, *SDCreateBudget schema is missing recurrenceTimePeriod — budget updates silently ignored*, opened 2026-07-21, open with no reply on 2026-11-09) reports that an SD v1 budget update built to that schema returns HTTP 207 with no error while the server ignores the budget object, so a change from 5.0 to 1.0 never takes effect; the reporter proposes adding `recurrenceTimePeriod` as the SP and SB create-budget schemas have it. https://github.com/amzn/ads-advanced-tools-docs/issues/475. The full surface record is `method/ads-api-surface.md`'s.
323
+ - [seat] If the report holds, a 207 with no error on an SD v1 budget write does not show the budget changed; only a read of the campaign afterwards does. Sending `recurrenceTimePeriod: "DAILY"` follows the read model, though the update schema does not list it. The SD v3 write's reply also omits the new values, so on both SD paths the budget is confirmed by reading it back.
324
+ - RULE (SD auto-pause): "Sponsored Display campaigns with no delivery could be automatically paused", announced 2023-04-28. The pausing applied to campaigns with no delivery for 6 months, from 2023-09-30. [official] release notes 2023-04-28.
325
+ - RULE (limits table, for human readers only): budget constraints by marketplace, in local currency:
326
+ - SP min / max daily: US, CA, UK, DE, FR, IT, ES, NL, BE, IE 1 / 1,000,000; IN 50 / 21,000,000; JP 100 / 21,000,000; AU 1.4 / 1,500,000; MX 1 / 21,000,000; UAE and SA 4 / 3,700,000; BR 1.32 / 5,300,000; SG 1.39 / 1,300,000; TR 2 / 2,500,000; PL 2 / 2,000,000; SE 9 / 9,300,000; EG 7 / 7,400,000; ZA 20 / 7,000,000.
327
+ - SB daily and lifetime minimums: US and most EU 1 daily and 100 lifetime; IN seller 100 daily, IN vendor 500 daily, IN lifetime 5,000; JP 100 daily and 10,000 lifetime; MX 1,000 lifetime.
328
+ - SD daily: US seller 1 / 1,000,000 and US vendor 1 / 50,000, with the same seller and vendor split in CA, UK, DE, FR, IT and ES.
329
+
330
+ [official] *Limits, constraints, and quotas* (section *Budget constraints by marketplace*)
331
+ - [seat] The table has visible inconsistencies, so it is a poor run-time source. The IE SB maximum lifetime reads 2,000,000 where every comparable row reads 20,000,000. The SP ZA minimum is 20 and the SB ZA minimum is 6. The SB BR row (4 / 3,700,000 daily) differs from the SP and SD BR rows (1.32 / 5,300,000), and the SB JP maximum lifetime (21,000,000) equals its maximum daily. The live authority is the write's own error (`BUDGET_TOO_LOW`, `BUDGET_TOO_HIGH`, `BUDGET_OUT_OF_MARKET_PLACE_RANGE`).
332
+ - RULE (service latency, for human readers only): "Impression/click event to availability via API" is 12 h at P99, and "Impression/click invalidation" is 72 h at P99. [official] *Limits, constraints, and quotas* (section *Service limits*)
333
+
334
+ ### L. Invalid traffic and the credits it produces
335
+
336
+ - RULE (two stages): "IVT is filtered at two stages. Pre-bid filtering blocks IVT before an ad is served. … Most post-impression IVT is invalidated in real time. Some takes longer to detect, so we monitor traffic for up to 30 days after it occurs. IVT detected in this window is automatically removed from invoices and advertiser reports". "If an investigation identifies previously undetected IVT, affected metrics and invoices may be restated." [official] *Traffic validation* (help GBYPYH79NGJJ5JPS), https://advertising.amazon.com/help/GBYPYH79NGJJ5JPS
337
+ - RULE (the signal Amazon names): "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." And: "IVR level on its own doesn't indicate undetected IVT." [official] help GBYPYH79NGJJ5JPS
338
+ - RULE (timing, cost): "While 90% of detected invalid traffic (IVT) is removed in real time, traffic quality systems may take up to 72 hours to remove 100% of IVT. For this reason, you may see a discrepancy between the campaign manager and your invoice if you're looking at the cost from the last 3 days." "Cost … can fluctuate for up to 72 hours after a click due to traffic validation." [official] *Understand campaign spend* (help GUJY2CG5DTCPDCVQ), https://advertising.amazon.com/help/GUJY2CG5DTCPDCVQ
339
+ - RULE (SP methodology, MRC-accredited, figures for human readers only): "Amazon Ads prebid techniques block approximately 20-25% of ad requests WW for Sponsored Products" (since 2022-08-15). "Amazon Ads' General IVT post-impression detection techniques filter approximately 3-8% of Clicks WW for Sponsored Products." Data "is restated within a 30-day timeframe, in which data is considered official and final. Rare occurrences of quality issues due to irregularity may result in data revisions within a lookback period of 90 days." "Amazon Ads doesn't bill advertisers for invalid clicks that are identified as a result of filtration methods. Metrics are reported and billed net of General and Sophisticated IVT, defined for MRC purposes as 'Total Net.'" [official] *Sponsored Products description of methodology* (help G8KL93RTVG44RZAQ), https://advertising.amazon.com/help/G8KL93RTVG44RZAQ
340
+ - RULE (credit on the invoice): "If we detect invalid clicks on your ads, you'll receive a credit. If we later validate clicks that were initially considered invalid, you may receive a debit to your account." [official] *View and understand your invoice* (help GDWV9R4RA7FCHSTE)
341
+ - RULE (the report): report type ids `spGrossAndInvalids`, `sbGrossAndInvalids` and `sdGrossAndInvalids` (reporting v3, GA 2023-11-16). They are grouped by campaign, with time unit `SUMMARY` or `DAILY` and a 365-day range and retention. The columns are `grossImpressions`, `grossClickThroughs`, `invalidImpressions`, `invalidClickThroughs`, `invalidImpressionRate`, `invalidClickThroughRate`, `impressions`, `clicks`, `campaignName`, `campaignStatus`, `date`, `startDate` and `endDate`. [official] Ads API guide *Gross and invalid traffic reports*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/gross-and-invalid-traffic; release notes 2023-11-16. The page carries the warning "Reporting API v3 will be deprecated on June 30, 2027." [official] same page.
342
+ - RULE (IVT in v1 reporting): v1 reporting carries `metric.grossClicks` ("can include valid as well as invalid clicks"), `metric.invalidClicks` and `metric.invalidClickRate` ("invalid clicks / gross clicks"), for SP, SB, SD, Sponsored TV, DSP and Full-Funnel; `metric.clicks` is "gross clicks - invalid clicks". [official] Ads API guide *Clicks* metric family (reporting v1), https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/delivery/clicks
343
+ - RULE (budget and IVT): "Due to the Amazon traffic validation process, it is possible that you may receive the same notification twice. For example, if a click is invalidated, that may reduce your budget usage under the 5% threshold." [official] *Sponsored ads budget usage dataset*
344
+ - [seat] The page does not say whether an invalidated click gives budget back for the same day. Two things can be read from Amazon's pages. Budget usage is computed on spend that is later net of IVT. Invoices are always net. Whether an out-of-budget campaign re-enters the auction the same day after invalidations was not found stated; see Open questions.
345
+ - RULE (DSP reconciliation, contrast): "A discrepancy of up to 5% between Display, Video, and Audio campaigns and third-party impressions or clicks is within the acceptable range", which is the MRC 5% materiality threshold. [official] *Reconcile invalid traffic (IVT) related discrepancies* (help G39K82KRHKMU9XPP), https://advertising.amazon.com/help/G39K82KRHKMU9XPP. This applies to Ads Agent display products, not sponsored ads.
346
+
347
+ ### M. Billing as far as it changes spend
348
+
349
+ - RULE (billing cycle and credit limit, sponsored ads): "Every time the cost of your account reaches your credit limit, an invoice is issued and that billing cycle ends. … You're always charged at least once a month. If you don't reach your credit limit, you'll be charged for your accumulated cost on the second day of the next month." "Your credit limit begins at $50 and increases each time you reach your credit limit and you make a successful payment. From $50, it increases to $150, $200, $350, and finally $500. Some advertisers may have a credit limit higher than $500 based on previous payment activity." The same page then says: "If you're just getting started, your credit limit is $1. … Once you make this $1 payment, your credit limit increases to $10." "If you pay by invoice, payment is due within 30 days." [official] *Understand Amazon Ads billing cycles* (help GY3YNTWRZYVPLADL), https://advertising.amazon.com/help/GY3YNTWRZYVPLADL
350
+ - Conflict: the starting credit limit is $50 in the rule and $1 in the example on the same page. All figures are for human readers only.
351
+ - [seat] The credit limit sets how often a payment is attempted, not how much may be spent. Each charge attempt is a chance for a payment failure, which pauses campaigns (next items). A new account with a low credit limit is charged many times in its first days.
352
+ - RULE (payment methods): sellers can pay by card, from the seller account, or by invoice; vendors by card, deduction from payments, or invoice. From the seller account, "Charges will be deducted from the Funds Available in your Seller Account- not your Total Balance. If your amount due exceeds the funds available, your payment will fail." [official] *Payment methods (Sponsored ads)* (help GMELNQQNEEVLX456), https://advertising.amazon.com/help/GMELNQQNEEVLX456
353
+ - RULE (failure pauses delivery): "If your payment method fails after multiple attempts, your advertising account will be placed into payment failure status and your campaigns will be paused. If you're updating your payment method due to a payment failure, it can take up to 24 hours for your account to be enabled." [official] help GMELNQQNEEVLX456. "When Amazon can't charge your default payment method, your campaigns will pause." For the seller-balance method: "We retry the payment at a fixed frequency. The payment won't go through until the next attempt where there's sufficient balance." "Once your balance is sufficient, your account is reinstated automatically." [official] *Resolve a payment failure* (help G2SQRLBPB8TY587E), https://advertising.amazon.com/help/G2SQRLBPB8TY587E
354
+ - RULE (backup card): "If you pay for advertising with your vendor or seller account, the best way to avoid payment failure is to add a credit or debit card as a backup payment method. If your primary payment method fails, the full invoice amount will be deducted from the backup payment method." [official] *Add a backup payment method* (help GPGZ28EK9WM4LZ2E), https://advertising.amazon.com/help/GPGZ28EK9WM4LZ2E. The payment-failure page adds: "If your primary payment method fails, Amazon will try charging your backup payment method without pausing your campaigns", and that a newly added card may show "a $50 or equivalent pre-authorization charge" for verification. [official] *Resolve a payment failure* (help G2SQRLBPB8TY587E)
355
+ - RULE (2026 payment-method change): "Beginning April 2, 2026, we started notifying a small portion of sponsored ads advertisers that the primary payment methods for their advertising costs will transition to either available seller or vendor account balance or Pay by Invoice." The existing card stays as backup. "This is purely a billing change and will not have an impact on campaign delivery, targeting, or performance." Pay by Invoice "gives 30-60 days from when the ad spend occurred to the time of payment". [official] *Update regarding payment methods* (help GF2FM96W5SE8HYK6), https://advertising.amazon.com/help/GF2FM96W5SE8HYK6
356
+ - RULE (India vendor postpaid, a spend ceiling): "Postpaid billing is available for vendors who have spent at least ₹10 lakhs per month for 6 consecutive months on prepaid billing." The "spending limit is the maximum amount that you can owe Amazon at any time". An advertiser can "Set an optional monthly budget … to further control spending" and will "Receive notifications when spending reaches 80% of your limit or budget". Ads run "until your total unpaid amount … reaches" the limit. [official] *Postpaid billing* (help GSPZAPMBNFHU5T9D), https://advertising.amazon.com/help/GSPZAPMBNFHU5T9D. In v1 these show as `ADVERTISER_OUT_OF_POSTPAY_CREDIT_LIMIT` and `ADVERTISER_OUT_OF_POSTPAY_MONTHLY_BUDGET`. Prepaid accounts show `ADVERTISER_OUT_OF_PREPAY_BALANCE`. [official] *Amazon Ads API v1* OpenAPI
357
+ - RULE (invoice vs campaign cost): "The cost column in the campaign manager only shows the total click charges. Your invoice includes adjustments for invalid traffic, taxes, and promotions. Your invoice may also include creator commissions and promotional credit deductions". Delayed clicks from a closed month "can be added to the advertising invoice for April, while the campaign manager still displays those clicks in March". [official] help GUJY2CG5DTCPDCVQ. Invoices are issued "When you reach your credit limit or the second day of the month", and "Invoices close when they reach the credit limit, and a new invoice opens immediately". [official] help GDWV9R4RA7FCHSTE
358
+ - RULE (regulatory fees on top of spend): Amazon "may charge Regulatory Advertising Fees for ads served and/or purchased in France, Italy, Spain, United Kingdom, Austria, and Turkey". They are calculated on campaign cost before VAT and added at invoice issuance; the example is a $0.03 fee on a $1.00 click at a 3% rate. Canada's fees collected 2024-08-15 to 2025-07-31 are being refunded from 2026-04-15. [official] *Regulatory Advertising Fees* (help GRQM2HSUXGUWFJ3H), https://advertising.amazon.com/help/GRQM2HSUXGUWFJ3H
359
+ - [seat] A budget caps campaign cost, not the invoice. The invoice adds these fees and taxes on top.
360
+ - RULE (promotional credits): credits are marketplace-specific and can be restricted to a campaign type ("Sponsored Brands promotional funds can only be applied to Sponsored Brands campaigns"). They apply to "future costs only" and are applied automatically. "Credits won't appear in the campaign manager cost column; they're reflected as a deduction on your invoice." [official] *Understand advertising promotions* (help GFAN744AATXXDQBB), https://advertising.amazon.com/help/GFAN744AATXXDQBB; help GDWV9R4RA7FCHSTE. Partner-offered click credits include SP launch credits for a campaign with "no end date", SB launch credits, and an SP "Stay Active" offer for keeping a campaign active 30 days. [official] Ads API guide *Partner Opportunities - Click Credits*, https://advertising.amazon.com/API/docs/en-us/guides/recommendations/partner-opportunities/catalog/click-credits. New-seller credits are owned by `launch.md`.
361
+ - [seat] A credit does not raise a budget. The campaign still stops at its budget, and the credit only lowers the bill.
362
+ - RULE (billing API): the billing API offers:
363
+ - `POST /billing/statuses`, which returns `billingStatusCode`. Its values are `VALID_BILLING_STATUS`, `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` and `STORED_VALUE_BALANCE_TOO_LOW`.
364
+ - `POST /billing/notifications`. Each notification carries `notificationName`, `impact` (`CAMPAIGNS_SUSPENDED` | `NO_IMPACT`), `severity` (`ALERT` | `WARNING` | `INFO`), `suspensionDate` and `paymentDueDate`. The `notificationName` enum has 73 values, among them `SELLER_ACCOUNT_BALANCE_LOW`, `SELLER_ACCOUNT_INSUFFICIENT_AVAILABLE_BALANCE_CAUSED_SUSPENSION`, `SAFETY_BUDGET_BREACH_SUSPENSION`, `CREDIT_CARD_EXPIRES_SOON` and `PREPAY_INSUFFICIENT_BALANCE`.
365
+ - `GET /invoices`, `GET /invoices/{invoiceId}` and `POST /invoiceSummaries/list`. Invoice status is `ACCUMULATING`, `ISSUED`, `PROCESSING`, `PAID_IN_FULL`, `PAID_IN_PART` or `WRITTEN_OFF`. Invoice lines carry `campaignId`, `portfolioId`, `cost`, `costEventCount`, `costEventType`, `priceType`, `programName` and `promotionAmount`.
366
+ - `POST /billing/paymentMethods/list`, `POST /billing/paymentAgreements[/list]`, `POST /billing/invoices/pay`, `GET /billing/documents/{documentId}` and `POST /billingStatements`.
367
+
368
+ [official] *Advertising Billing* OpenAPI, https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/AdvertisingBilling_prod_3p.json; Ads API guides *Billing: getting started*, https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/getting-started, *Invoices*, https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/invoices, and *Payments*, https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/payments
369
+ - RULE (scope): "Currently, public APIs are available to set up billing profiles only for non-seller sponsored ads accounts. Sellers will continue to manage their billing information in Seller Central, and may continue to the payment setup." [official] *Billing: getting started*. The billing-profiles guide says it configures billing "for sponsored ads vendor accounts" and "does not support seller or ADSP accounts". [official] Ads API guide *Billing profiles*, https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/billing-profiles. [seat] The limit stated is on billing profiles; neither guide states that statuses, notifications or invoices refuse a seller profile. The payments guide's samples include a `SELLER_PAYABLE` method and the reason "Your seller or vendor account has insufficient balance". [official] *Payments*
370
+ - [seat] Whether `POST /billing/notifications` and `GET /invoices` answer for a seller profile through the door was not tested; it needs a seller's credentials. See Open questions.
371
+
372
+ ### N. Hourly data, timing and change records
373
+
374
+ - RULE (hourly in reports): the v1 reporting API has an `hour.value` dimension (time unit `HOURLY`; "The hour of the day associated with the report"), available for SP, SB, SD, Sponsored TV, DSP and Full-Funnel. Its retention table reads "hour.value | 14 days | 14 days" (data retention, maximum report date range), against 24 months retention and 120 days range for `date.value`. [official] *Helpful concepts* (reporting v1); Ads API guide *Hour (Time)*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/time/hour; Ads API guide *Dates and historical data retention* (section *Historical Data Retention*), https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dates, read in the docs search index
375
+ - RULE (whose day): "By default, performance is measured and data is aggregated based on each campaign timezone, which can also be included in the report via the `timeZone.value` dimension field." [official] *Dates and historical data retention*. The SP budget recommendation's dates are marked "Local time". [official] *Sponsored Products v3* OpenAPI
376
+ - [seat] With `hour.value` and `metric.totalCost`, a skill can see the hour in which a day's spend stopped. Summed hourly cost reaching the effective budget, followed by zero-cost hours, is the shape of an out-of-budget day. This is the only API route to "what time did it run out" without Stream.
377
+ - RULE (deprecations): v3 reporting, Stream v1 and v2 reporting are each marked "To be shutoff after June 30, 2027." Stream v1 is described as "Hourly delta-based traffic, conversion, and budget usage data delivered to Firehose or SQS". [official] Ads API guide *Reporting overview*, https://advertising.amazon.com/API/docs/en-us/guides/reporting/overview; *Deprecations* page (September 2026 entry: "Hard shutoff date: Stream Version 1, v3 reporting, and Sponsored Ads v2 reporting will stop delivering data on June 30, 2027"; "The Exports API for campaign metadata is not affected"); door reference (`references/door.md`)
378
+ - RULE (latency): click and impression events reach the API within 12 h at P99 (section K). Cost can change for 72 h (section L).
379
+ - RULE (change history): `POST /history` (section D) is the record of budget edits (`BUDGET_AMOUNT`), in-budget flips (`IN_BUDGET`) and rule-budget values on SP and SB, for 90 days. [official] *Change history* OpenAPI. Its schema has an inconsistency: the `changeType` enum lists 11 values, while the description's table lists more campaign change types, including `RULE_BASED_BUDGET_VALUE` and `APPLICABLE_RULE_ID`. [seat] Expect values outside the enum.
380
+
381
+ ### O. Amazon's AI and budget-led products in 2026
382
+
383
+ - RULE (the name, settled 2026-11-09 against the pages): "Amazon Ads Agent" names three things on Amazon's pages, and they are one platform plus a feature inside it.
384
+ - The platform. "Last year at unBoxed, Amazon Ads announced the unification of the demand-side platform and ads console into a single media buying experience." "Today at unBoxed 2026, we announced Amazon Ads Agent—the new name of the unified platform, now powered by agentic AI." It "brings three campaign types—sponsored ads, Full-Funnel Campaigns, and Display, Video, and Audio—together". [official] *Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent* (news, 2026-09-29), https://advertising.amazon.com/library/news/amazon-ads-agent, read 2026-11-09. (The earlier wording here, "brings together what was formerly the DSP and Ads Console", is not on the page; it was a paraphrase and is replaced by the two quotes.)
385
+ - The help centre's "formerly known as Amazon DSP". It appears where the text is about DSP-specific settings or accounts: "Amazon Ads Agent (formerly known as Amazon DSP) suggests a new maximum average CPM to help improve pacing and performance" (*Understand delivery alerts and recommendations*, help GR6VEAG2EQWG56RD, https://advertising.amazon.com/help/GR6VEAG2EQWG56RD), and "Instead of creating and maintaining separate accounts for Amazon Ads Agent (formerly known as Amazon DSP) per country and for sponsored ads, you can create 1 Advertising Account when onboarding new advertisers" (*Understand Advertiser Accounts*, help GXKXR56ZCMJ3WCS4, https://advertising.amazon.com/help/GXKXR56ZCMJ3WCS4). [official] both read 2026-11-09. [seat] It is the same platform name, written where the old text said "Amazon DSP"; the DSP buying itself is now the platform's "Display, Video, and Audio campaigns". Read alone, "formerly known as Amazon DSP" understates the platform, which also holds sponsored ads.
386
+ - The conversational experience. "A conversational experience in Amazon Ads Agent" lets "Enrolled beta advertisers … review and approve changes before they're made"; "This experience is in closed beta and continues to actively evolve"; access is "through a rolling closed beta" via an account executive. [official] *Ads Agent: An AI marketing assistant from Amazon Ads* (product page), https://advertising.amazon.com/solutions/products/ads-agent, read 2026-11-09. In 2025 "Ads Agent" was the name of that assistant inside the unified console (`beyond/automation-and-amazon-tools.md` §G).
387
+ - [seat] So the platform is generally named Amazon Ads Agent and runs sponsored ads; only the chat feature inside it is a closed beta. The owner of this subject is `beyond/automation-and-amazon-tools.md`.
388
+ - RULE (budget-in products): Full-Funnel Campaigns: "Advertisers provide their budget, products, and creative, and Amazon's AI handles the rest on their behalf". This "is now available to all advertisers in the United States". Media planning gives "data-backed budget allocation recommendations". [official] *Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent* (news, 2026-09-29). DVA+: "One objective, one budget, one campaign across all media types". [official] *The 11 biggest takeaways from unBoxed 2026* (news, 2026-09-30), https://advertising.amazon.com/library/news/unboxed-2026-news-announcements
389
+ - RULE (console dashboard, 2026): "Sponsored ads advertisers now benefit from a new intelligence dashboard which surfaces insights and actions across targeting, bidding, and budget controls. Available on the campaign overview page". [official] *New sponsored ads tools help small businesses grow* (expert advice, dated 2026-09-22 in search results), https://advertising.amazon.com/library/expert-advice/sponsored-ads-small-business-tools. The page names no API for it.
390
+ - RULE (v1 bid strategy that spends the budget): the v1 `BidStrategy` enum includes `SPEND_BUDGET_IN_FULL`, "Prioritize spending full budget, while maximizing performance". The DSP guides require it for programmatic-guaranteed share-of-voice ad groups. [official] *Amazon Ads API v1* OpenAPI; Ads API guide *Targeting PG deals*, https://advertising.amazon.com/API/docs/en-us/guides/dsp/targeting-pg-deals. The SP v3 `bidding.strategy` enum (`LEGACY_FOR_SALES`, `AUTO_FOR_SALES`, `MANUAL`, `RULE_BASED`, `OTHER`) has no budget-led value. [official] *Sponsored Products v3* OpenAPI
391
+ - [opinion] Nova Analytics (Matthieu, CTO, 2026-02-18) reports a Sponsored Products beta, "Automatically optimizing ROAS within the campaign budget", where "you set a daily budget" and Amazon sets the whole bid, rolling out "to select US accounts". https://novadata.io/resources/news/amazon-sponsored-products-roas-auto-bidding-2026. [seat] The seat found no Amazon page for this beta. If it exists, it would show in the SP API as `OTHER` or a new enum value. Bids are owned by `bids-and-placements.md`.
392
+ - RULE (MCP tool names, names only): the Amazon Ads MCP server's catalogue lists budget-touching tools:
393
+ - campaign and portfolio tools: `update_campaign_budget`, `update_campaign`, `create_portfolio`, `update_portfolio`, `query_portfolio`, `create_singleshot_portfolio`;
394
+ - `add_country_campaign`, with country-specific budget caps;
395
+ - billing tools: `list_invoices`, `list_invoice_summaries`, `query_billing_notifications`.
396
+
397
+ `add_country_campaign` is described as "Add countries to existing Amazon Ads Sponsored Products Manual campaigns with country-specific budget caps". [official] MCP tool catalogue, read as JSON from the docs host (https://d3a0d0y2hgofx6.cloudfront.net/en-us/mcp/campaign_management.json and https://d3a0d0y2hgofx6.cloudfront.net/en-us/mcp/billing.json; the hyphenated `campaign-management.json` returns 404). The seat read the catalogue only and called no MCP endpoint. [seat] Amazon's own agent surface treats budget and billing notifications as first-class tools, the same pair this file names for cx.
398
+
399
+ ## What practitioners add
400
+
401
+ Everything in this section is [opinion], named by person or firm and date. Where a practitioner states an Amazon mechanism, the line says whether Amazon's pages agree.
402
+
403
+ ### P1. The over-delivery figure, and its history
404
+
405
+ - Perpetua (Andrea Mamone, Perpetua Help Center *Amazon - Daily Budgets Rollover Percentage*, 2026-02-05) [opinion]:
406
+ - On defaults: "By default, all campaigns created after March 27th, 2023 will have a 100% budget rollover. All campaigns created before this date will have a 25% rollover."
407
+ - On switching: "once you select it, you will not be able to go back to that split of some having 25% and some having 75%" (the "75%" is the page's wording).
408
+ - Perpetua also offers the 25% / 100% choice inside its own account settings.
409
+ - [seat] Amazon's pages describe one profile-level setting, defaulted to 100% for accounts that had not chosen by 2023-06-20 (section B). Perpetua's point is the transition state. Before a profile-level choice is made, campaigns created before and after the change can differ. Once the choice is made, that split is gone. The API guide says the setting can be flipped both ways afterwards.
410
+ - Trellis (Mike Lepine, *Amazon Ads Budget Pacing SOP*, posted 2026-06-25 and updated 2026-08-06) [opinion] cites Amazon for a 25% ceiling and the example "$12.50 on one day" on a $10 budget. [seat] This repeats the stale library figure (section B).
411
+ - Perpetua blog (Franz Jordan, *Amazon PPC Series: Campaign Budgets Explained*, 2017-09-11, originally on the Sellics blog) [opinion] describes unused budget as able to "roll over" to later days, with the month cap "Daily budget x number of days left in the calendar month". [seat] This is dated 2017 and predates the 2023 100% policy. Its month-cap formula agrees with Amazon's current mid-month-change rule, which caps the rest of the month at the new budget × remaining days; its "roll over" wording describes the same monthly averaging.
412
+
413
+ ### P2. Intraday: when campaigns run out, and why the hour matters
414
+
415
+ - Trellis (Mike Lepine, 2026) [opinion]:
416
+ - The daily check should "Note the time of day they ran out, if available", with the example of a campaign that "ran out by 2 p.m. yesterday".
417
+ - A flagship campaign can "exhaust its budget mid-afternoon and sit dark through the evening rush".
418
+ - "A manual SOP cannot watch intra-day burn in real time."
419
+ - "Pacing without efficiency context is meaningless."
420
+ - "Plan at the monthly level."
421
+ - Intentwise (Michael Waters, *Amazon PPC Dayparting: The Expert's Guide*, 2024-01-01) [opinion]:
422
+ - "The big mistake we see again and again: Don't accidentally run out of budget."
423
+ - CPCs are lower at night "because advertisers are spending through their daily budget by the evening": "We find that, in general, CPCs are lower at night."
424
+ - Native scheduling can only raise: "you can only bid up through Amazon's 'Schedule Rules' tool."
425
+ - To stay in budget, "Either raise your daily budget, or lower your bids."
426
+ - The article gives no measured hourly figures.
427
+ - Clear Ads Agency (George Meressa, founder, named as author in the page's metadata; *Does Amazon Dayparting Save Money or Destroy Campaigns?*, 2026-03-26, modified 2026-11-03) [opinion]:
428
+ - "Most Amazon sellers should not daypart."
429
+ - "The goal is ensuring budget remains available during the 6 to 10 PM window when conversions are highest."
430
+ - One tactic it describes is "setting a daily budget at 60% of the normal target" paired with peak-hour boost rules.
431
+ - "A 2x conversion rate difference between best and worst hours is the minimum threshold." This is the agency's threshold for dayparting to pay, not a measured gap; "A 3x difference provides a more reliable buffer." Its two example accounts had "a 14% conversion rate from 6 to 10 PM and a 6% conversion rate from 1 to 5 AM" (about 2.3×) and "11% peak conversion and 9% off-peak conversion" ("a 1.2x difference").
432
+ - "A minimum of 30 days of data is required before hourly patterns carry statistical weight."
433
+ - "The cost-benefit threshold is approximately $20,000 in monthly ad spend."
434
+ - Overnight pauses mean the algorithm must relearn (the body reads "forces the algorithm to relearn" and the takeaway "force the system to relearn"), "raising CPCs by 15 to 30% during active hours".
435
+ - Its case example: an overnight pause during a launch "missed 23% of potential launch sales".
436
+
437
+ [seat] The relearning and 15–30% claims have no published method on the page.
438
+ - Scale Insights: the blog post *Your Amazon PPC budget shouldn't evaporate before lunch* was not readable. The blog address returned 404 and the help-desk host did not resolve, so no claim is taken from it. See Unreachable.
439
+
440
+ ### P3. Who controls the budget: tools that override Amazon's daily budget
441
+
442
+ - m19 (help page *Average daily budget*, no author, © 2026) [opinion]. The tool treats its own "Average daily budget" as "a soft limit not to reach":
443
+ - "On a daily basis, the algorithm might spend up to 2 times your Average daily budget."
444
+ - "The monthly limit the algorithm does not outreach is 1.1 times the average daily budget * Number of days in the month."
445
+ - "the algorithm uses portfolio & campaign budget caps and updates them daily."
446
+ - "The algorithm does not reallocate the unspent budget from one month to the other."
447
+ - A mid-month change makes the algorithm set "a Monthly Target again".
448
+ - "Please do not update the budget directly in the Amazon Advertising Console!", because "it may negatively impact the algorithm's budget optimization."
449
+
450
+ [seat] A seller using such a tool has Amazon budgets that are written daily by someone else. A cx change to the same field is overwritten at the tool's next run. Change history does not say who made a change (section D), so a skill can only infer a tool from the pattern of daily edits.
451
+ - Optmyzr (Disha, *Fix Amazon budget pacing*, 2026-08-17) [opinion]:
452
+ - The usual manual method is to "divide the budget by the days in the month and check yourself against a flat daily line". It "assumes every day spends the same, and Amazon accounts rarely do".
453
+ - "the numbers that tell you something is wrong only arrive after the money is gone."
454
+ - "a running total tells you where you've been, not where you'll land."
455
+ - Optmyzr sells a projection that "reads your spend history, weekday patterns, and seasonality".
456
+
457
+ ### P4. Allocation across campaigns
458
+
459
+ - Helium 10 (Steven Pope, *Amazon PPC Budgeting Challenges Are Sinking Sales*, 2025-02-13) [opinion]:
460
+ - "Aim for 80% on manual campaigns to target specific keywords, while auto campaigns should account for 20%."
461
+ - "Rather than setting a strict daily budget cap, evaluate your budget on a weekly basis."
462
+ - "If your campaigns are paused due to depleting or disabled budget, sales can drop sharply."
463
+ - During stockouts, keep a reduced budget running on auto campaigns rather than cutting it.
464
+ - Perpetua blog (Franz Jordan, 2017) [opinion]:
465
+ - The account-level cap "is not an average, but a fixed value for the entire day". With a cap, "an individual campaign can easily eat up the entire budget if the other campaigns only have below average expenses."
466
+ - Profitable campaigns get a budget "slightly above your daily average budget spend (i.e. a buffer of 20%)".
467
+ - A cap is for "days where you expect to receive a high traffic volume (e.g. Amazon Prime Day)".
468
+ - Campaign budgets "do not play a large role in campaign optimization."
469
+ - Intentwise (Aditi Sharma, *Amazon Budget Rules – A Boon for the Advertisers?*, 2021-07-30) [opinion]: "One must still go campaign by campaign to set these rules rather than having a bulk update." [seat] As of 2026 the API has a bulk association call (`POST /sp/budgetRulesAssociation`, section G), so that limitation is console-only.
470
+ - Amazon's allocation advice (GUIDANCE, sections C and F) is to move budget from campaigns that do not spend or convert to those that run out and convert. The practitioners above differ from it only in their own proportions.
471
+
472
+ ### P5. Running out of budget and organic rank
473
+
474
+ - The seat found no practitioner test of whether running out of budget affects organic rank; search results offered only unmeasured claims about lost sales velocity. One such claim: "Pausing or cutting PPC budgets during stockouts can hurt rankings." [opinion] Helium 10 (Steven Pope, 2025-02-13, above), with no data shown. Amazon frames out-of-budget only as missed impressions, clicks and sales (section F). The organic question is owned by `ads-organic-and-total.md`.
475
+
476
+ ### P6. Product announcements by third parties
477
+
478
+ - Nova Analytics (Matthieu, 2026-02-18) [opinion] reports an SP beta that sets bids within a daily budget (section O). The seat found no Amazon page for it.
479
+
480
+ ### P7. Plan-level pacing: monthly spend plans and the tools that run them (gap fill 2026-11-09)
481
+
482
+ Agencies and brands are held to a monthly (or fiscal-year) spend number per client, per account or marketplace, while Amazon's controls are per campaign per day, plus portfolio caps per marketplace (sections B, H, J). The tools below sit between the two. Each claim is the vendor's description of its own product.
483
+
484
+ - Helium 10 (knowledge-base article *Budget Manager: Smarter Ad Budget Planning and Management*, created 2025-09-05, updated 2025-11-06; read through the help centre's public article JSON because the article page returns 403) [opinion]:
485
+ - "Set daily, monthly, and annual budgets"; "Auto Pacing … Automatically adjusts daily spend based on performance and remaining budget"; "Ads pause automatically once the budget cap is reached" and "Automatically resumes on the first day of the next month".
486
+ - It works "at the profile level, meaning it applies to all campaigns within that profile, except for AI Advertising campaigns"; a profile is one marketplace.
487
+ - "Portfolio-level budgets are not considered. If a portfolio reaches its cap, Amazon will pause campaigns even if the profile-level budget remains."
488
+ - Mid-month: "you can manually increase or decrease it. The Budget Manager will automatically adjust daily budget allocations based on the updated total budget." Allocation is "based on a combination of spending capacity and ROAS".
489
+ - "Delivery Rate = (Ad Spend / Monthly Budget) * 100%". It will "resume the campaign if necessary" even when a campaign was paused earlier by an automated rule.
490
+ - Pacvue Budget Manager [opinion, second-hand]. Pacvue's own pages (`pacvue.com/tag/budget-manager`, the blog post *Primary approaches to projecting Amazon marketing spend*) returned 403 to a plain GET and the Wayback copies returned 502, so nothing is taken from Pacvue directly. Two third parties describe it:
491
+ - SmartScout (*Pacvue vs. Perpetua - Which PPC Bid Management Tool is Best for You?*, 2022-07-22, no byline): "Pacvue's Budget Manager is particularly helpful for brands and agencies who are given set PPC budgets for the year. The user can upload their monthly budget caps for the entire fiscal year. When a budget is reached, the budget manager will automatically pause campaigns until the budget refreshes the following month".
492
+ - Kepler Group (agency, *How to Spend the Right Amount at the Right Time on Amazon Search*, 2022-07-13, byline "Marketing"), on running Pacvue for an apparel client: rules "to decrease bidding early in the day to ensure budget was left to continue delivering ads between 4pm and midnight"; "We were able to increase the hours ads were served each day by 95%, so customers were seeing ads for 16.5 hours, compared to 8.5 hours before. Return on ad spend (ROAS) also increased 95% and cost per click decreased 58%". For the month: "budget scheduling across all search campaigns, which allowed us to map spend level by day for accurate pacing"; "Pacing increased to 100% across our client's brands". It calls Amazon's budget rules "time-intensive" and says "standard logic rules aren't able to adapt to real-time pacing". [seat] A single-client before/after with no control period or seasonality adjustment; the figures are the agency's.
493
+ - Skai [opinion]:
494
+ - *Skai Budget Manager* (Feature Focus, 2018-11-02): "Simply set the budget and KPIs for your portfolios and Skai Budget Manager will pace your campaigns accordingly. It will move budget between the campaigns of a portfolio automatically in order to hit your goals." Days within a flight can be set "to spend a bit more" around a promotion; "You can plan up to 31 days in advance and continue to replan leading up to the flight." Skai portfolios "can only be created at the channel level".
495
+ - *Skai Budget Navigator* and *Media Budget Forecasting* product pages (undated, read 2026-11-09): "Skai automatically regenerates forecasts on a daily basis and adjusts bid and budget allocations"; "Simply define a plan by setting a budget and KPI goals, and the necessary budget allocations will be made for you"; "Manage budgets and reallocation among portfolios during the cycle"; "Track how your plan is pacing at any time and be automatically alerted if there are opportunities beyond your plan's scope." The pages name no Amazon-specific mechanism (no mention of Amazon's monthly averaging or caps).
496
+ - Perpetua [opinion]:
497
+ - *Monthly Budget Tracker* (Anna Mamajanyan, Perpetua Help Center, updated 2026-04-22): "The monthly budget tracker is only a visualization tool. If you'd like to set a hard cap on your monthly budget, please do this in the Amazon Ad Console directly." Projected Spend is "Estimated spending for the entire budget period using historical 2-day and 7-day data". "Unlike Amazon Ads' hard caps, Perpetua's tracker is purely for monitoring and does not enforce spending limits."
498
+ - *Real-Time Budget Optimization* (Andrea Mamone, updated 2025-07-03): a recommendation to raise a budget is sent "any time a campaign with the selected goals reaches" a usage-percentage threshold the user sets; "The recommendations themselves will be generated on an hourly basis".
499
+ - Optmyzr (Lakshmi Padmanaban, *Why Amazon spend goes off track before you notice*, 2026-03-12) [opinion]: "Amazon's advertising interface works primarily as a reporting tool. Forecasting isn't built into it." Its forecast "takes your historical spend patterns—weekly trends, historic seasonal spikes, recent daily burn—and forecasts where you'll land at month-end if current pacing continues", with "a daily view … for each remaining day"; "The projection updates daily". Alerts take "the tolerance (like, alert me if I'm pacing 15% over target)". "Most advertisers worry about overspend, but underspend is just as costly." The product page *Amazon Ads Budget & Bid Management* adds rules to "pause those that hit their monthly limits" and "re-enable them automatically at the start of the next cycle".
500
+ - Adbrew (product page *Amazon PPC budget management software*, undated, read 2026-11-09) [opinion]: "Set the total for a period and let Adbrew fill in the days. Push more into a launch week or a sale, pull it out of the quiet days, and the month still lands on the number you set." Each campaign gets "a share of the day and a floor it will never drop below", and "Unused budget moves to the campaigns that ran out, so you still spend the amount you planned"; its illustration shows campaigns that "hit cap at 14:20", "16:05" and "18:40" receiving the unspent amount.
501
+ - Trellis (*Monthly Spend Pacer*, a skill in its Qore product, undated, read 2026-11-09) [opinion]: it "Projects month-end spend from the month so far and the last seven days", "acts only when the projection misses the target by more than 10%", adds budget "only where ACoS is at or under target", and lets the user set a "planned pacing curve for front- or back-loaded months"; "With fewer than five days left, it flags the variance and makes no changes", and "A one-time spike already explained in the change log is set aside". Its own guardrails ("The total account budget moves no more than 15% in a day"; changes over $500 a day need approval) are the product's design, stated here as Trellis's.
502
+ - JumpFly (Reilly McDonnell, *New Amazon Ads Feature: Shared Unspent Budget Across Portfolios Beta*, 2025-01-21) [opinion] describes Amazon's unspent-budget sharing (section H) from the agency side: with three campaigns totalling $150 a day in a 30-day month, "that's a budget of $4,500. The amount of $4,500 will not be surpassed in spending for the portfolio", and "Any budget not used at the end of the month will be reset for the next month". This agrees with Amazon's guide. JumpFly then had the feature in beta, "not available for every account".
503
+ - Where they differ:
504
+ - Enforcement. Helium 10, Pacvue (per SmartScout) and Optmyzr's rules pause campaigns at the plan's cap and re-enable them on the 1st; Perpetua's tracker enforces nothing and points to Amazon's own caps; Skai and Adbrew reallocate daily budgets to land on the number.
505
+ - Projection. Perpetua uses 2-day and 7-day history; Trellis month-to-date plus a 7-day run rate; Optmyzr weekly pattern, seasonality and recent burn; Skai a forecast regenerated daily. None of the pages read says how it accounts for Amazon's own monthly averaging (a campaign may spend up to 100% over its daily budget on one day and is held to budget × days in the month; section B).
506
+ - Scope. Helium 10 manages a whole profile; Skai and Perpetua manage by portfolio or goal; Adbrew by a plan's campaign list.
507
+ - [seat] What a mid-month re-forecast has to carry from Amazon's rules:
508
+ - A campaign's remaining room this month is bounded by its daily budget × the days left after a change (section C), not by the plan's remaining amount, so cutting budgets late in a month caps the rest of the month hard, and raising them gives at most the new budget × days left (plus up to 100% on any one day within that bound).
509
+ - Amazon's month is the calendar month; a fiscal month that differs (Kepler's point about weekends at month boundaries) is the plan's, not Amazon's.
510
+ - Report cost for the month can exceed the invoice (over-delivery credits, IVT, promotions; sections B, L, M), and cost moves for 72 hours, so month-to-date spend read in the last three days is not yet final.
511
+ - A tool that pauses at a plan cap and a portfolio `MONTHLY_RECURRING` cap do the same job; Helium 10 notes its plan ignores portfolio caps, so the lower of the two binds.
512
+ - Each marketplace's plan is in its own currency; adding plans across marketplaces needs a rate Amazon's entity APIs do not supply (section J; v1 reports convert cost, not budgets).
513
+
514
+ ### P8. Hourly performance, and what the hours after exhaustion are worth (gap fill 2026-11-09)
515
+
516
+ - Perpetua (blog *Study: Intraday Optimization - Hourly Amazon Ad Performance Data and Strategies*, no byline; data from "anonymized ad campaigns run by Perpetua users over a six-week period in Spring 2022", Sponsored Products US, Pacific time) [opinion, vendor data]:
517
+ - "CPC for Sponsored Products campaigns falls steadily over the course of the day. In the early hours of the morning, the average CPC stands at $1.13, falling to $0.84 by the end of the day." Perpetua's explanation: "more advertisers hitting their daily budget limits as the day progresses".
518
+ - Conversion rate peaks "between 6:00am and 10:00 am PST"; "The morning spike during the working week is significant, with conversion rates around three times higher than in the nighttime (20% vs 6-8%)."
519
+ - ACOS "ranges from 20-23%" from 6:00 am to 6:00 pm PST, against "an average ACOS of 41% in the hour starting at 11:00 pm PST".
520
+ - Its caveats: "This study does not represent or indicate the official performance of Amazon and Amazon Advertising"; "trends will often be specific to each product category"; ratio metrics at night rest on "vastly fewer impressions".
521
+ - Clear Ads Agency (George Meressa, 2026, P2) puts the peak window at "6 to 10 PM" and gives two accounts at 14% against 6% and 11% against 9% conversion between their best and worst hours. Kepler (P7) names "4pm and midnight" for its apparel client. Canopy Management (*Amazon Advertising Budgets: How to Allocate Spend Across Campaign Types in 2026*, 2026-01-13, modified 2026-10-16) offers an illustration, not data: "A campaign converting at 12% from 7-10 PM shouldn't have the same budget at 3 AM when conversion drops to 4%", and advises "Moving budget daily based on 24-48 hours of data leads to whiplash … Weekly is usually right."
522
+ - Ad Badger (*How do you use Amazon's New Budget Tab and Report?*, 2021-09-27) [opinion] on the console budget report's missed-opportunity ranges: "Amazon presented us with a range of estimated minimum to maximum values. As you might observe, the difference between both values is great."
523
+ - Where they disagree: the peak hours differ by source (Perpetua morning Pacific time across US SP; Clear Ads evening; Kepler afternoon to midnight), and the sizes differ (Perpetua about 3× between morning and night; Clear Ads' accounts 2.3× and 1.2×). Each is one vendor's or agency's data, by category or by account.
524
+ - [seat] For a budget raise this means the hours it buys are not the average hours. On the Perpetua data the hours after a typical exhaustion are cheaper per click and, late at night, convert less; a campaign's daily CVR and ACOS, measured on its in-budget hours, do not carry over to them. The campaign's own `hour.value` report (section N, 14 days) shows its hourly cost, clicks and attributed sales, including whether any hours after its usual stop were ever served.
525
+
526
+ ## Published research
527
+
528
+ All items are [research]. "Read" means the seat opened the abstract page. "Record" means only a bibliographic or search record was read, and the claim is limited to what that record states.
529
+
530
+ - Balseiro, S. and Gur, Y. (2019). *Learning in Repeated Auctions with Budgets: Regret Minimization and Equilibrium*. Management Science 65(9): 3952–3968, doi 10.1287/mnsc.2018.3174. [research, record]
531
+ - Budget-constrained advertisers who do not know their value distribution or competitors' bids use "adaptive pacing" strategies, which adjust bids through the campaign according to the advertiser's own expenditure path.
532
+ - The authors prove these strategies are asymptotically optimal against i.i.d. or arbitrary competing bids, and that they form an approximate Nash equilibrium in a regime motivated by online advertising.
533
+ - Balseiro, S., Kim, A., Mahdian, M. and Mirrokni, V. (2021). *Budget-Management Strategies in Repeated Auctions*. Operations Research 69(3): 859–876, doi 10.1287/opre.2020.2073; an earlier version appeared at WWW 2017. [research, record]
534
+ - The paper compares six budget-management methods applied by all budget-constrained advertisers at once: probabilistic throttling, thresholding, bid shading, reserve pricing and two forms of multiplicative boosting.
535
+ - Each method admits a system equilibrium, and each leads to a different one. The equilibria are compared on real sponsored-search auction data.
536
+ - The search record lists one author as at Amazon; the seat did not verify the affiliation.
537
+ - Conitzer, V., Kroer, C., Sodomka, E. and Stier-Moses, N. (2022). *Multiplicative Pacing Equilibria in Auction Markets*. Operations Research 70(2): 963–989, doi 10.1287/opre.2021.2167; arXiv 1706.07151. [research, read]
538
+ - Pacing equilibria always exist and refine competitive equilibria. They can be multiple, "with large variations in several natural objectives such as revenue and social welfare", though the authors' mixed-integer experiments find that multiplicity "occurs very rarely across several families of random instances".
539
+ - Finding a welfare- or revenue-maximising one is NP-hard.
540
+ - Agarwal, D., Ghosh, S., Wei, K. and You, S. (2014). *Budget Pacing for Targeted Online Advertisements at LinkedIn*. KDD 2014, pp. 1613–1619, doi 10.1145/2623330.2623366. [research, record]
541
+ - Greedy allocation, where an ad serves until its budget is gone, is suboptimal for advertisers and publishers when budgets are finite.
542
+ - The authors propose a pacing component that knows global supply patterns, tested in experiments on LinkedIn ads.
543
+ - Xu, J., Lee, K., Li, W., Qi, H. and Lu, Q. (2015). *Smart Pacing for Effective Online Ad Campaign Optimization*. KDD 2015; arXiv 1506.05851. [research, read]
544
+ - Advertisers want smooth spend and performance at once, which is hard when bid landscapes move fast.
545
+ - The method learns each campaign's delivery pace from offline and online data and was implemented in a production DSP. The abstract reports improvement without figures.
546
+ - Hajiaghayi, M. and Springer, M. (2022). *Analysis of a Learning Based Algorithm for Budget Pacing*. arXiv 2205.13330. [research, read]
547
+ - A learning algorithm learns a good average bid early in a campaign and paces the budget uniformly. It is robust to changes in the auction mechanism.
548
+ - Its aim is to spend nearly the whole budget while pacing "to prevent early exit from the campaign and a loss of the opportunity to bid on potentially lucrative impressions later in the period". It is evaluated on open-source campaign data.
549
+ - Bergemann, D., Bonatti, A. and Wu, N. (2025). *Bidding with Budgets: Algorithmic and Data-Driven Bids in Digital Advertising*. Cowles Foundation Discussion Paper 2429; journal version *Bidding with Budgets: Data-Driven Bid Algorithms in Digital Advertising*, International Journal of Industrial Organization (June 2025). [research, read]
550
+ - Abstract: "In digital advertising, the allocation of sponsored search, sponsored product, or display advertisements is mediated by auctions. The generation of bids in these auctions for attention is increasingly supported by auto-bidding algorithms and platform-provided data. We analyze the equilibrium properties of a sequence of increasingly sophisticated auto-bidding algorithms. First, we consider the equilibrium bidding behavior of an individual advertiser who controls the auto-bidding algorithm through the choice of their budget. …"
551
+ - Liu, M., Mao, J. and Kang, K. (2021). *Trustworthy and Powerful Online Marketplace Experimentation with Budget-split Design* (KDD 2021 title; the arXiv 2012.08724 title is *Trustworthy Online Marketplace Experimentation with Budget-split Design*); LinkedIn engineering blog *Budget-split testing* (2021). [research, record]
552
+ - Splitting each campaign's budget into two identical sub-campaigns gives an unbiased marketplace A/B test that avoids budget cannibalisation.
553
+ - LinkedIn reports up to 10× sensitivity, with tests shortened from weeks to 1–3 days.
554
+ - The test-design use is owned by `method/change-measurement.md`. It is listed here because the bias it removes comes from shared budgets.
555
+ - Jeunen, O., Murphy, S. and Allison, B. (2022/2023). *Learning to Bid with AuctionGym* (AdKDD 2022 best paper), later *Off-Policy Learning-to-Bid with AuctionGym* (KDD 2023). Amazon; https://www.amazon.science/publications/learning-to-bid-with-auctiongym; code at github.com/amzn/auction-gym. [research, record] An open simulation environment for bandit and RL bid learning in ad auctions. The record does not say whether budgets are modelled.
556
+ - Chen, M., Nabi, S. and Siniscalchi, M. (2023/2024). *Advancing Ad Auction Realism: Practical Insights & Modeling Implications*. arXiv 2307.11732; the PDF is also hosted on cdn.amazon.science. [research, read] Real ad auctions have query-dependent values, unknown competitors, aggregated feedback and partly known payment rules. Advertisers are modelled as adversarial-bandit learners. The abstract does not treat budgets.
557
+ - Özlük, Ö. and Cholette, S. (Journal of Optimization Theory and Applications; reported by phys.org, 2012). [research, record] The authors argue that a strict daily budget on pay-per-click search "could be greatly harming" sales. The seat read only the news write-up.
558
+ - Heymann, B. (2025). *Counterfactual simulations for large scale systems with burnout variables*. arXiv 2509.04038 (submitted 2025-09-04). [research, read; gap fill 2026-11-09]
559
+ - Budgets are "burnout variables - state variables that start active, shape dynamics, and irreversibly deactivate once certain conditions are met". Simulating "what-if scenarios in such systems is computationally demanding", and "This challenge arises in settings like online advertising, because of campaigns budgets, complicating counterfactual analysis despite rich data availability." The paper proposes "uncertainty relaxation" for parallel counterfactual estimation.
560
+ - Transfer [seat]: a counterfactual of "what if the campaign had not run out" is a simulation of a path the campaign never took, because the budget cap ends the observed path; Amazon's missed-opportunity figures (F2) are an estimate of that kind, built from other campaigns.
561
+ - Pathak, N., Jeunen, O. and Lambert, E. (2026). *Auditing Marketing Budget Allocation with Hindsight Regret*. arXiv 2604.25977 (v2 2026-04-30). [research, read; gap fill 2026-11-09]
562
+ - Spend-response functions are estimated "from historical logs", and "moderate feasible reallocations often capture most measurable gain, while larger shifts move into weak-support regions with higher uncertainty."
563
+ - Transfer [seat]: a response estimated from the spend a campaign has had says little about spend levels it has never had; a recommended budget far above a campaign's history sits in that weak-support region.
564
+ - Blake, T., Nosko, C. and Tadelis, S. (2015). *Consumer Heterogeneity and Paid Search Effectiveness: A Large Scale Field Experiment*. NBER Working Paper 20171 (2014); *Econometrica* 83 (2015). https://www.nber.org/papers/w20171. [research, read; gap fill 2026-11-09]
565
+ - eBay field experiments: "Because search clicks and purchase behavior are correlated, we show that returns from paid search are a fraction of conventional non-experimental estimates. As an extreme case, we show that brand-keyword ads have no measurable short-term benefits."
566
+ - Transfer [seat]: missed "sales" on Amazon are click-attributed sales (F2); on brand terms in particular they can be sales the seller would have had without the ad. The full treatment is `beyond/metrics-and-attribution.md`'s and `areas/ads-organic-and-total.md`'s.
567
+ - [seat] Two searches found no Amazon Science paper on sponsored-ads budget pacing. Amazon's "spent as quickly as possible and not paced" is the greedy regime Agarwal et al. call suboptimal, and Amazon's smoothing is monthly (the daily lift and the month cap), not intraday. None of the research tests Amazon's mechanism.
568
+
569
+ ## Stable enough for a skill
570
+
571
+ These hold across the pages read, or Amazon's API enforces them. The figures named are read live; the list states mechanisms.
572
+
573
+ 1. A sponsored-ads daily budget is a monthly average. Spend in a calendar month does not exceed daily budget × days in the month, and any over-delivery is credited on the invoice. — *Average daily budget user guide*; *Understand budgets in Sponsored ads*; *View and understand your invoice*.
574
+ 2. On a single day a campaign may spend more than its daily budget, up to a profile-level ceiling of +100% (the default) or +25% (opt-out), read from `isOptedOutForAverageDailyBudgetIncrease`. — *Average daily budget user guide*; release notes 2023-03-28 and 2023-06-20; *Understand budgets in Sponsored ads*.
575
+ 3. Sponsored ads are not paced within the day. Budget is spent as auctions are won, and an out-of-budget campaign stops until the daily reset. — *Understand budgets in Sponsored ads*; *Sponsored Products budget basics and best practices*; *Troubleshoot your campaign status*.
576
+ 4. A mid-month change caps the rest of the month at the new budget × the remaining days. Several changes in one day apply the day's highest budget today and the latest budget tomorrow. A cut below today's spend stops today's spend. — *Edit your Sponsored ads campaign budget*.
577
+ 5. SB offers daily or lifetime budgets. A live campaign cannot be switched from daily to lifetime (the help page's route is a copy into a new campaign), a live lifetime budget can only rise, and a lifetime budget needs start and end dates. SP and SD are daily. — *Edit your Sponsored ads campaign budget*; *Sponsored Brands v4* OpenAPI; *Sponsored Products v3* OpenAPI.
578
+ 6. Out-of-budget and money stops are machine-readable as serving status:
579
+ - SP `CAMPAIGN_OUT_OF_BUDGET`, `PORTFOLIO_OUT_OF_BUDGET`, `ACCOUNT_OUT_OF_BUDGET`, `ADVERTISER_PAYMENT_FAILURE` and others;
580
+ - v1 `deliveryReasons`;
581
+ - the portfolio `servingStatus`.
582
+
583
+ — *Computed status and campaign status*; *Common models: enums*; *Sponsored Products v3*, *Amazon Ads API v1* and *Portfolios v3* OpenAPI specs.
584
+ 7. Budget usage percent is today's spend divided by today's effective budget. The effective budget includes rule increases and the average-daily-budget lift. It is a POST per ad product and for portfolios, at most 100 ids. — *Budget usage overview*; the SP, SB, SD and Portfolios OpenAPI specs.
585
+ 8. Budget recommendations return a suggested daily budget, a 7-day share of time in budget (a 0–1 decimal in the SP spec; the SD example reads as a percentage), and lower and upper bounds of missed impressions, clicks and sales, per campaign, for SP, SB and SD. They are estimates and need history (Amazon suggests 9 days). — *Budget recommendations and missed opportunities*; SP, SB and SD OpenAPI specs.
586
+ 9. Budget rules only raise the budget. They are schedule-based (date range, event, or weekly recurrence on chosen days, with an optional hour window in US, CA, UK, IN and JP) or performance-based (ACOS, CTR, CVR or ROAS on SP and SD; ROAS, IS or NTB on SB; 7-day seller and 14-day vendor lookback). Increases from rules that meet their conditions add together. A campaign can have up to 250 rules. — *Budget rule evaluation*; *Budget Rules overview*; *Schedule-based rules*; *Performance-based rules*; release notes 2023-01-31, 2023-03-20, 2023-04-06 and 2023-11-16.
587
+ 10. A rule-raised budget is read back as SP `budget.effectiveBudget`, SB and SD `ruleBasedBudget.value`, or v1 `monetaryBudget.ruleValue`. `applicableRuleId` can be incomplete, so the active rules are read from the campaign's rule list. — *Sponsored Products v3*, *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; *Viewing changes to daily budgets for campaigns with budget rules*; *Amazon Ads API v1* OpenAPI.
588
+ 11. A portfolio cap is date-range, monthly-recurring or none. A campaign is in at most one portfolio. Hitting the cap stops all its campaigns with `PORTFOLIO_OUT_OF_BUDGET`. — *Get started with Portfolios*; *Portfolios v3* OpenAPI; *Computed status and campaign status*.
589
+ 12. In a portfolio with unspent-budget sharing on (the default for portfolios created after 2025-06-20), a campaign that has spent its budget can draw on other campaigns' leftovers from earlier days in the month. The monthly bound is the portfolio's sum of daily budgets × days, and the pool resets each month. — *Sharing leftover budget in a portfolio*; release notes 2025-07-07 and 2025-07-19.
590
+ 13. The SP account daily budget cap is seller-only and console-set. Hitting it stops all SP campaigns with `ACCOUNT_OUT_OF_BUDGET` (v1 `ADVERTISER_OUT_OF_BUDGET`). — *Edit your Sponsored ads campaign budget*; *Troubleshoot your campaign status*; *Computed status and campaign status*; *Amazon Ads API v1* OpenAPI.
591
+ 14. v1 campaign budgets are a list of monetary budgets with a recurrence period. Global SP campaigns carry one budget per marketplace in local currency. — *Amazon Ads API v1* OpenAPI; *Global campaigns for Sponsored Products*.
592
+ 15. Budgets are in marketplace currency, and Amazon refuses a budget outside the marketplace range or below the campaign's bids (`BUDGET_TOO_LOW`, `BUDGET_OUT_OF_MARKET_PLACE_RANGE`, `BUDGET_LT_*_BIDS`, `BUDGET_CURRENCY_DOES_NOT_MATCH_MARKETPLACE_SETTINGS`). — *Portfolios v3* and *Sponsored Products v3* OpenAPI specs.
593
+ 16. Cost is net of detected invalid traffic. Most IVT is removed in real time, cost can still move for 72 hours, data is restated within 30 days, and invoices carry IVT credits and debits. The gross and invalid report gives per-campaign IVT. — *Traffic validation*; *Understand campaign spend*; *Sponsored Products description of methodology*; *Gross and invalid traffic reports*.
594
+ 17. A payment failure pauses campaigns. On seller-balance payment, Amazon retries at a fixed frequency and reinstates the account when a charge succeeds. A backup card is charged the full invoice when the primary fails. — *Payment methods (Sponsored ads)*; *Resolve a payment failure*; *Add a backup payment method*.
595
+ 18. The invoice differs from campaign cost by IVT adjustments, over-delivery credits, promotional credits, taxes, regulatory fees and month-boundary delays. — *Understand campaign spend*; *View and understand your invoice*; *Regulatory Advertising Fees*.
596
+ 19. Change history (SP and SB, 90 days) records budget edits and in-budget changes, without who made them. — *Change history* OpenAPI.
597
+ 20. Hourly cost is available in v1 reports through `hour.value`, for the last 14 days. — *Dates and historical data retention*; *Hour (Time)*.
598
+ 21. Amazon builds its missed sales from modelled missed clicks (from similar campaigns that stayed in budget) and the campaign's own historical CTR and sales, and calls the figures estimates "for reference only". The sales are click-attributed sales. — *Sponsored Products budget basics and best practices*; *Budget report for Sponsored Products*; *Sponsored Products v3* OpenAPI; *Reporting columns (version 3)*.
599
+ 22. An SB budget is written with `PUT /sb/v4/campaigns` (`budget`, 1–10 campaigns); the budget type is set at create only. An SD v3 budget is written with `PUT /sd/campaigns` (`budget`, at most 100), whose reply does not echo the new value. — *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; *Edit your Sponsored ads campaign budget*.
600
+ 23. The SD v1 update-budget schema lacks `recurrenceTimePeriod`, which its read model requires, and a developer reports such updates silently ignored with a 207. — *Amazon Ads API v1, Sponsored Display* OpenAPI; issue #475.
601
+ 24. A global SP campaign's budgets are per marketplace in local currency; adding a marketplace needs its budget in the same update, and an `AUTO`-allocated global campaign accepts only the global budget. Status per marketplace is in `status.marketplaceSettings[]`. — *Global campaigns for Sponsored Products*; *Sponsored Products v3* and *Amazon Ads API v1* OpenAPI specs.
602
+ 25. Portfolios, and so the only monthly cap an advertiser sets as an amount (`MONTHLY_RECURRING`), are per profile (one marketplace) in that marketplace's currency. — *Portfolios v3* OpenAPI; *Get started with Portfolios*.
603
+
604
+ ## What cx must read at run time
605
+
606
+ All calls go through the door as `cx raw amazon-ads --origin <na|eu|fe> --method <M> --path <P> [--header ...] [--body ...]`. The profile scope header is `Amazon-Advertising-API-Scope: <profileId>`, except on global campaigns, which use `Amazon-Ads-AccountId`. Media types below go in both `Accept` and `Content-Type` where the operation has a body. The full surface and regional hosts are owned by `method/ads-api-surface.md`. The report flow is owned by `method/reporting.md`.
607
+
608
+ ### R1. Settings that change what a budget means
609
+
610
+ | What | Operation | Media type | Fields |
611
+ |---|---|---|---|
612
+ | Daily lift ceiling (25% or 100%) | `GET /accountBudgets/featureFlags` | `application/vnd.accountBudgetFeatureFlags.v1+json` | `featureFlags.isOptedOutForAverageDailyBudgetIncrease` (true = 25%) |
613
+ | Profile timezone and currency | `GET /v2/profiles` | `application/json` | `timezone`, `currencyCode`, `countryCode`, `accountInfo.type` (seller / vendor) |
614
+ | Portfolio caps and sharing | `POST /portfolios/list` | `application/vnd.spPortfolio.v3+json` | `budget.{amount,currencyCode,policy,startDate,endDate}`, `inBudget`, `budgetControls.campaignUnspentBudgetSharing.featureState`, `extendedData.servingStatus` (with `includeExtendedDataFields: true`) |
615
+
616
+ ### R2. Campaign budgets and status
617
+
618
+ | What | Operation | Media type | Fields |
619
+ |---|---|---|---|
620
+ | SP campaigns | `POST /sp/campaigns/list` with `includeExtendedDataFields: true` | `application/vnd.spCampaign.v3+json` | `budget.budget`, `budget.budgetType`, `budget.effectiveBudget`, `portfolioId`, `state`, `extendedData.servingStatus`, `extendedData.servingStatusDetails[]` |
621
+ | SB campaigns | `POST /sb/v4/campaigns/list` | `application/vnd.sbcampaignresource.v4+json` | `budget`, `budgetType` (`DAILY` / `LIFETIME`), `startDate`, `endDate`, `ruleBasedBudget.{value,isProcessing}`, `extendedData.servingStatus` |
622
+ | SD campaigns | `GET /sd/campaigns/extended` | `application/json` | `budget`, `budgetType`, `ruleBasedBudget`, `servingStatus` |
623
+ | v1 (all products, global SP) | `POST /adsApi/v1/query/campaigns` | per v1 spec | `budgets[].{recurrenceTimePeriod, budgetValue.monetaryBudgetValue.monetaryBudget.{value,currencyCode,ruleValue}, …marketplaceSettings[]}`, `status.deliveryStatus`, `status.deliveryReasons[]` |
624
+
625
+ The SP, SB and SD paths and media types above were checked against the *Sponsored Products v3*, *Sponsored Brands v4* and *Sponsored Display v3* specs read today. `method/ads-api-surface.md` owns the surface and is preferred if it later differs.
626
+
627
+ ### R3. Out of budget now, and how much was missed
628
+
629
+ | What | Operation | Media type | Fields |
630
+ |---|---|---|---|
631
+ | Today's usage, SP | `POST /sp/campaigns/budget/usage` `{"campaignIds":[≤100]}` | `application/vnd.spcampaignbudgetusage.v1+json` | `success[].{campaignId,budget,budgetUsagePercent,usageUpdatedTimestamp,index}`, `error[]` |
632
+ | Today's usage, SB | `POST /sb/campaigns/budget/usage` | `application/vnd.sbcampaignbudgetusage.v1+json` | same |
633
+ | Today's usage, SD | `POST /sd/campaigns/budget/usage` | `application/vnd.sdcampaignbudgetusage.v1+json` | same |
634
+ | Today's usage, portfolios | `POST /portfolios/budget/usage` `{"portfolioIds":[≤100]}` | `application/vnd.portfoliobudgetusage.v1+json` | `success[].{portfolioId,budget,budgetUsagePercent,usageUpdatedTimestamp}` |
635
+ | Missed opportunity, SP | `POST /sp/campaigns/budgetRecommendations` `{"campaignIds":[≤100]}` | `application/vnd.budgetrecommendation.v3+json` | `budgetRecommendationsSuccessResults[].{suggestedBudget, sevenDaysMissedOpportunities.{startDate,endDate,percentTimeInBudget,estimatedMissed{Impressions,Clicks,Sales}{Lower,Upper}}, budgetRuleRecommendation}`, `budgetRecommendationsErrorResults[]` (`percentTimeInBudget` a 0–1 decimal) |
636
+ | Missed opportunity, SB | `POST /sb/campaigns/budgetRecommendations` | `application/vnd.sbbudgetrecommendation.v4+json` | `success[]`, `error[]` (dates YYYY-MM-DD) |
637
+ | Missed opportunity, SD | `POST /sd/campaigns/budgetRecommendations` | `application/vnd.sdbudgetrecommendations.v3+json` | per SD v3 spec |
638
+ | Draft SP campaign | `POST /sp/campaigns/initialBudgetRecommendation` | `application/vnd.spinitialbudgetrecommendation.v3.4+json` | `dailyBudget` (-1 = not enough information), `benchmark`, `specialEvents[]`, `recommendationId` |
639
+
640
+ ### R4. Budget rules
641
+
642
+ | What | Operation | Media type | Fields |
643
+ |---|---|---|---|
644
+ | Rules on a campaign | `GET /sp/campaigns/{campaignId}/budgetRules` (and `/sb/`, `/sd/`) | `application/json` | `associatedRules[].{ruleId, ruleState, ruleStatus, ruleDetails.{name,ruleType,duration,recurrence,budgetIncreaseBy,performanceMeasureCondition}}` |
645
+ | All rules on the profile | `GET /sp/budgetRules?pageSize=…` | `application/json` | `budgetRulesForAdvertiserResponse[]`, `nextToken` |
646
+ | Campaigns a rule is on | `GET /sp/budgetRules/{budgetRuleId}/campaigns` | `application/json` | `associatedCampaigns[]` |
647
+ | Create / update rules | `POST` / `PUT /sp/budgetRules` | `application/json` | `budgetRulesDetails[≤25]` |
648
+ | Attach / detach | `POST /sp/campaigns/{campaignId}/budgetRules` (`budgetRuleIds` ≤25); `POST /sp/budgetRulesAssociation` (≤50, SP only); `POST /sp/budgetRulesAssociation/delete` (SP only); `DELETE /sp/campaigns/{campaignId}/budgetRules/{budgetRuleId}` | `application/json` | — |
649
+ | Recommended events | `POST /sp/campaigns/budgetRules/recommendations` `{"campaignId":…}`; SB `POST /sb/campaigns/budgetRules/recommendations` (`application/vnd.sbbudgetrulesrecommendation.v3+json`, SB v3 spec) | `application/vnd.spbudgetrulesrecommendation.v3+json` | `recommendedBudgetRuleEvents[].{eventId,eventName,startDate,endDate,suggestedBudgetIncreasePercent}` |
650
+
651
+ The reply wrappers `associatedRules`, `budgetRulesForAdvertiserResponse` and `associatedCampaigns` (each with `nextToken` where listed) are from the *Sponsored Products v3* spec read today. The SB and SD rule paths mirror SP under `/sb/` and `/sd/`.
652
+
653
+ ### R5. Writing a budget
654
+
655
+ | What | Operation | Media type | Body |
656
+ |---|---|---|---|
657
+ | SP daily budget | `PUT /sp/campaigns` | `application/vnd.spCampaign.v3+json` | `{"campaigns":[{"campaignId":…,"budget":{"budget":<amount>,"budgetType":"DAILY"}}]}` |
658
+ | SB budget amount | `PUT /sb/v4/campaigns` (1–10 per call) | `application/vnd.sbcampaignresource.v4+json` | `{"campaigns":[{"campaignId":…,"budget":<amount>}]}`; no `budgetType` on update (set at create, `DAILY` / `LIFETIME`); `endDate` nullable; reply `campaigns.success[].campaign` echoes the campaign |
659
+ | SD v3 budget amount | `PUT /sd/campaigns` (≤100 per call) | `application/json` | `[{"campaignId":…,"budget":<amount>}]` (`budgetType` is `daily` only); reply `[{code, description, campaignId}]` carries no values, so read back with `GET /sd/campaigns/{campaignId}` |
660
+ | v1 (any product) | `POST /adsApi/v1/update/campaigns` | per v1 spec | `budgets[{budgetType:"MONETARY", recurrenceTimePeriod, budgetValue.monetaryBudgetValue.monetaryBudget.value}]`; global SP: per-marketplace `…monetaryBudgetValue.marketplaceSettings[{marketplace, monetaryBudget.value}]` with the `Amazon-Ads-AccountId` header, and a new marketplace's budget in the same call as the `marketplaces` change |
661
+ | SD v1 budget | `POST /adsApi/v1/update/campaigns` (SD model, `budgets` exactly 1 item) | per SD v1 spec | the update schema `SDCreateBudget` omits `recurrenceTimePeriod`; issue #475 reports the budget silently ignored with a 207; read the campaign back with `POST /adsApi/v1/query/campaigns` |
662
+ | Portfolio cap | `PUT /portfolios` | `application/vnd.spPortfolio.v3+json` | `budget.{amount,currencyCode,policy,startDate,endDate}`; remove: `policy: NO_CAP`, amount and dates null |
663
+ | Lift ceiling | `POST /accountBudgets/featureFlags` | `application/vnd.accountBudgetFeatureFlags.v1+json` | `{"featureFlags":{"isOptedOutForAverageDailyBudgetIncrease":<bool>}}` (profile-wide) |
664
+
665
+ The write's reply carries the refusal reason (`SponsoredProductsBudgetErrorReason`), and that reason is the live statement of the marketplace's limits. A success status shows the request was accepted; the value Amazon holds is the one a read returns (R2), which is the confirmation on the SD paths in particular.
666
+
667
+ ### R5b. Plan-level reads for a monthly spend plan (gap fill 2026-11-09)
668
+
669
+ | What | Read | Fields |
670
+ |---|---|---|
671
+ | Month-to-date cost per campaign and marketplace | v1 report with `date.value`, campaign id, `metric.totalCost`, `budgetCurrency.value` (≤120 days per report, 24 months retained); add `convertedCurrency.value` and `metric.totalCostConverted` for one currency across marketplaces | daily cost; the last 3 days still move (IVT, section L) |
672
+ | Each campaign's room left this month | R2 daily budgets × days left in the calendar month (section C), in the profile's `timezone` and `currencyCode` (R1) | arithmetic on Amazon's rule, no API field |
673
+ | Native monthly caps | `POST /portfolios/list` (per profile) | `budget.policy` `MONTHLY_RECURRING` / `DATE_RANGE`, `budget.amount`, `inBudget`, `budgetControls.campaignUnspentBudgetSharing.featureState` |
674
+ | Global SP per-marketplace budgets and status | `POST /adsApi/v1/query/campaigns` with `Amazon-Ads-AccountId` | `budgets[].budgetValue.monetaryBudgetValue.marketplaceSettings[]`, `optimizations.budgetSettings.marketplaceBudgetAllocation`, `status.marketplaceSettings[]` (marketplace IDs) |
675
+ | Who else writes budgets | `POST /history` (SP, SB; 90 days) | daily `BUDGET_AMOUNT` edits not made by cx point to another tool (P3, P7); the writer is not named |
676
+ | Hours each campaign served | v1 report with `hour.value` (≤14 days) | hourly cost, clicks and sales; zero-cost hours after the day's last cost mark the stop |
677
+
678
+ ### R6. History and reports
679
+
680
+ | What | Operation / report | Fields |
681
+ |---|---|---|
682
+ | When it went out of budget, budget edits | `POST /history` (`application/vnd.historyresponse.v1.1+json` for v1.1), `eventTypes.CAMPAIGN.filters: ["IN_BUDGET","BUDGET_AMOUNT"]`, `fromDate`/`toDate` epoch ms (≤90 days), `count` 50–200 | `events[].{changeType, entityId, entityType, timestamp, previousValue, newValue, metadata.campaignBudgetType}` (SP, SB only) |
683
+ | Hour of the day spend stopped | v1 report with `hour.value`, `date.value`, campaign id, `metric.totalCost` with `budgetCurrency.value` (≤14 days back; hours in the campaign's time zone, `timeZone.value`) | hourly cost per campaign |
684
+ | Daily budget beside cost | reporting v3 `spCampaigns` with `campaignBudgetAmount`, `campaignBudgetType`, `campaignBudgetCurrencyCode`, `campaignRuleBasedBudgetAmount`, `cost`; or v1 `campaign.budgetAmount`, `campaign.budgetType`, `metric.totalCost`, `budgetCurrency.value` (add `convertedCurrency.value` and `metric.totalCostConverted` for one currency across marketplaces) | daily budget and cost per campaign |
685
+ | Invalid traffic | reporting v3 `spGrossAndInvalids` / `sbGrossAndInvalids` / `sdGrossAndInvalids`, `timeUnit` `SUMMARY` or `DAILY`, ≤365 days (v3 shuts off 2027-06-30) | `grossClickThroughs`, `invalidClickThroughs`, `invalidClickThroughRate`, `grossImpressions`, `invalidImpressions`, `invalidImpressionRate` |
686
+ | Invalid traffic, v1 | v1 report with `metric.grossClicks`, `metric.invalidClicks`, `metric.invalidClickRate` | gross and invalid clicks per campaign |
687
+ | Off-site SP cost | placement report (owned by `bids-and-placements.md` and `method/reporting.md`) | cost by placement |
688
+
689
+ The history event fields are from the *Change history* spec's `HistoryResponseEvents` schema. The enum-versus-table mismatch in `changeType` is noted in section N.
690
+
691
+ ### R7. Billing (where the door answers for the profile)
692
+
693
+ | What | Operation | Fields |
694
+ |---|---|---|
695
+ | Is billing healthy | `POST /billing/statuses` | `billingStatusCode` |
696
+ | Why campaigns may be suspended | `POST /billing/notifications` | `notificationName`, `impact`, `severity`, `suspensionDate`, `paymentDueDate` |
697
+ | Invoices and lines | `GET /invoices`, `GET /invoices/{invoiceId}`, `POST /invoiceSummaries/list` | `invoiceStatus`, lines `{campaignId, portfolioId, cost, promotionAmount, programName}` |
698
+ | Payment methods | `POST /billing/paymentMethods/list` | payment method `type` |
699
+
700
+ The billing-profiles API is documented as vendor-only ("does not support seller or ADSP accounts"); the other billing calls carry no stated seller limit and were not tested on a seller profile. For a seller profile, the serving status (`ADVERTISER_PAYMENT_FAILURE`) is the signal that is certain to be available.
701
+
702
+ ## Pages read
703
+
704
+ All pages were read on 2026-11-09 by plain GET. Ads API guides were read as markdown at `https://d3a0d0y2hgofx6.cloudfront.net/en-us/<path>.md` and are listed by their public address. Help pages were read from the article JSON that the public address embeds. "Search index" means the docs site's own `en-us/searchIndex.json`, read on the same host, which carries the text of pages and operations.
705
+
706
+ ### Amazon Ads help pages
707
+
708
+ | Page name | URL | Type | Date read | What it gave |
709
+ |---|---|---|---|---|
710
+ | Understand budgets in Sponsored ads | https://advertising.amazon.com/help/GTGPQGUXNCTHE2DS | help | 2026-11-09 | "spent as quickly as possible and not paced"; 100% default, 25% option; month cap; suggested budget method; SB lifetime $100 and end date |
711
+ | Edit your Sponsored ads campaign budget | https://advertising.amazon.com/help/GVYUKBJQFPH7ZQ2L | help | 2026-11-09 | mid-month cap with worked example; same-day changes; cut below spend; lifetime only up; no daily-lifetime switch; SP account cap (sellers) |
712
+ | Troubleshoot your campaign status | https://advertising.amazon.com/help/GEC8BVH43CU9UNYH | help | 2026-11-09 | out-of-budget until midnight; 1–2 h status lag; avoid frequent changes; portfolio cap and SP cap as causes; off-site cost in placement report |
713
+ | Budget report for Sponsored Products | https://advertising.amazon.com/help/GMSBDCQF5ZW5P53N | help | 2026-11-09 | report columns; 2-year lookback; time units; tip on time in budget |
714
+ | Understand budget rules in Sponsored ads | https://advertising.amazon.com/help/GNSMLANWNF344YBE | help | 2026-11-09 | rule types; daily review; cumulative increases; 6–9 PM example |
715
+ | Create budget rules for sponsored ads campaigns | https://advertising.amazon.com/help/G3HZWVWYE23DBR2V | help | 2026-11-09 | hours of day in US, CA, UK, IN, JP; rule statuses in the console |
716
+ | Understand portfolios | https://advertising.amazon.com/help/GPEJN2E6R52G7C2T | help | 2026-11-09 | caps; unspent sharing; billing by portfolio mapping at invoice time |
717
+ | Understand Amazon Ads auctions | https://advertising.amazon.com/help/GEXGZNBBWPZZK7P8 | help | 2026-11-09 | charge never exceeds max bid |
718
+ | Understand bidding on Sponsored ads | https://advertising.amazon.com/help/GDS2E64R9GQ35768 | help | 2026-11-09 | budget ÷ bid illustration; vCPM deduction from daily or lifetime budget |
719
+ | Understand delivery and pacing | https://advertising.amazon.com/help/GCELVBWV7S8S9AJA | help | 2026-11-09 | Ads Agent (DSP) pacing to minute-level targets (contrast) |
720
+ | Understand delivery alerts and recommendations | https://advertising.amazon.com/help/GR6VEAG2EQWG56RD | help | 2026-11-09 | "Amazon Ads Agent (formerly known as Amazon DSP)"; underpacing alerts (DSP) |
721
+ | Missed opportunities | https://advertising.amazon.com/help/GMVBE2ZYWDAXNV3Y | help | 2026-11-09 | DSP bid funnel only; nothing for sponsored-ads budgets |
722
+ | Troubleshoot your campaign for impressions | https://advertising.amazon.com/help/G8WCYU3FQKFVSMR4 | help | 2026-11-09 | card decline may suspend all campaigns; SB lifetime depletion |
723
+ | Understand Cost controls for sponsored ads | https://advertising.amazon.com/help/GNJDAT6AEYD3XJA8 | help | 2026-11-09 | SD target CPC is an average, not a ceiling (bids; cross-reference) |
724
+ | Traffic validation | https://advertising.amazon.com/help/GBYPYH79NGJJ5JPS | help | 2026-11-09 | two-stage IVT; 30-day monitoring; restatement; CVR drop signal |
725
+ | Understand campaign spend | https://advertising.amazon.com/help/GUJY2CG5DTCPDCVQ | help | 2026-11-09 | 90% real time, 72 h to 100%; invoice vs cost; month-boundary delays |
726
+ | Sponsored Products description of methodology | https://advertising.amazon.com/help/G8KL93RTVG44RZAQ | help | 2026-11-09 | prebid ~20–25%; GIVT ~3–8% of clicks; 30-day restatement, 90-day rare; billed "Total Net" |
727
+ | Reconcile invalid traffic (IVT) related discrepancies | https://advertising.amazon.com/help/G39K82KRHKMU9XPP | help | 2026-11-09 | 5% MRC materiality (DSP) |
728
+ | Understand Amazon Ads billing cycles | https://advertising.amazon.com/help/GY3YNTWRZYVPLADL | help | 2026-11-09 | credit-limit steps $50 to $500 (and a $1 / $10 example); 2nd-of-month charge; 30-day invoice terms |
729
+ | Payment methods (Sponsored ads) | https://advertising.amazon.com/help/GMELNQQNEEVLX456 | help | 2026-11-09 | Funds Available not Total Balance; failure pauses campaigns; 24 h re-enable |
730
+ | Resolve a payment failure | https://advertising.amazon.com/help/G2SQRLBPB8TY587E | help | 2026-11-09 | retries at fixed frequency; automatic reinstatement |
731
+ | Add a backup payment method | https://advertising.amazon.com/help/GPGZ28EK9WM4LZ2E | help | 2026-11-09 | backup card charged full invoice |
732
+ | Update regarding payment methods | https://advertising.amazon.com/help/GF2FM96W5SE8HYK6 | help | 2026-11-09 | 2026-04-02 move to seller/vendor balance or invoice; no delivery impact |
733
+ | Postpaid billing | https://advertising.amazon.com/help/GSPZAPMBNFHU5T9D | help | 2026-11-09 | India vendor spending limit; optional monthly budget; 80% notice |
734
+ | View and understand your invoice | https://advertising.amazon.com/help/GDWV9R4RA7FCHSTE | help | 2026-11-09 | over-delivery credits; IVT credits and debits; promo credits off the cost column |
735
+ | Understand advertising promotions | https://advertising.amazon.com/help/GFAN744AATXXDQBB | help | 2026-11-09 | credits are future-only, automatic, can be campaign-type restricted |
736
+ | Regulatory Advertising Fees | https://advertising.amazon.com/help/GRQM2HSUXGUWFJ3H | help | 2026-11-09 | DST fees on top of campaign cost; Canada refund |
737
+ | Bidding and budget (hub) | https://advertising.amazon.com/help/G8MCJMVDGD6VQSPW | help | 2026-11-09 | hub only; links to the pages above |
738
+ | Understand budgets (hub) | https://advertising.amazon.com/help/GSXM697WAXDBRHBM | help | 2026-11-09 | parent node; no body |
739
+ | Billing and payments (hub) | https://advertising.amazon.com/help/GV6V8X76E8T7M96K | help | 2026-11-09 | hub; child list |
740
+ | Payment Methodology (hub) | https://advertising.amazon.com/help/G53HPHJRXXQVN9GV | help | 2026-11-09 | parent node; no body |
741
+ | Troubleshooting (hub) | https://advertising.amazon.com/help/GKMNF6V89SR9EULD | help | 2026-11-09 | hub; child list |
742
+ | Common Questions (hub) | https://advertising.amazon.com/help/GELAB3HJMHTNST3E | help | 2026-11-09 | parent node; no body |
743
+ | Support Center Homepage | https://advertising.amazon.com/help/GX4827LQGBFHA2U8 | help | 2026-11-09 | navigation only |
744
+
745
+ ### Amazon Ads library guides, news and what's-new
746
+
747
+ | Page name | URL | Type | Date read | What it gave |
748
+ |---|---|---|---|---|
749
+ | Sponsored Products budget basics and best practices | https://advertising.amazon.com/library/guides/sponsored-products-budget-best-practices (the address `library/guides/how-to-budget-sponsored-products` 301-redirects here) | library guide | 2026-11-09 | "spent as quickly as possible"; stale 25% / $12.50; $10 minimum; review every two weeks; four scenarios; weekend rule "20%"; recommended budget formula |
750
+ | Budget rules (library) | https://advertising.amazon.com/library/guides/budget-rules | library guide | 2026-11-09 | rule types and example events only |
751
+ | New sponsored ads daily budgeting policy and options | https://advertising.amazon.com/resources/whats-new/sponsored-ads-daily-budgeting-policy-and-options | what's new (2023-05-09) | 2026-11-09 | 100% policy worldwide; 25% / 100% option; marketplace list |
752
+ | Budget rules now available in Amazon advertising console globally | https://advertising.amazon.com/resources/whats-new/dynamic-budget-control | what's new (2021-08-12) | 2026-11-09 | SP-only launch in 16 marketplaces; $10 minimum for performance rules; 7-day metrics; recommended events |
753
+ | Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent | https://advertising.amazon.com/library/news/amazon-ads-agent | news (2026-09-29) | 2026-11-09 | Full-Funnel Campaigns budget-in; budget allocation recommendations |
754
+ | The 11 biggest takeaways from unBoxed 2026 | https://advertising.amazon.com/library/news/unboxed-2026-news-announcements | news (2026-09-30) | 2026-11-09 | DVA+ "one budget" |
755
+ | New sponsored ads tools help small businesses grow | https://advertising.amazon.com/library/expert-advice/sponsored-ads-small-business-tools | expert advice (2026) | 2026-11-09 | intelligence dashboard across targeting, bidding and budget controls (verifier seat) |
756
+
757
+ ### Ads API guides and references (read as markdown)
758
+
759
+ | Page name | URL | Type | Date read | What it gave |
760
+ |---|---|---|---|---|
761
+ | Average daily budget user guide | https://advertising.amazon.com/API/docs/en-us/guides/account-management/average-daily-budget | API guide | 2026-11-09 | month cap; invoice adjustment; profile-level 25% / 100% flag, both directions |
762
+ | Budget usage overview | https://advertising.amazon.com/API/docs/en-us/guides/budgets/usage/overview | API guide | 2026-11-09 | definition and denominator; 53.3% example |
763
+ | Getting started with the budget usage API | https://advertising.amazon.com/API/docs/en-us/guides/budgets/usage/getting-started | API guide | 2026-11-09 | requests; field-name variants in samples |
764
+ | Budget recommendations and missed opportunities (SP) | https://advertising.amazon.com/API/docs/en-us/guides/sponsored-products/budget-recommendations-and-missed-opportunities | API guide | 2026-11-09 | fields; nine-day advice; rule recommendation only if a rule exists |
765
+ | Budget Rules overview | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/overview | API guide | 2026-11-09 | metrics; 7 / 14-day lookback |
766
+ | Schedule-based rules | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/schedule-based | API guide | 2026-11-09 | `intraDaySchedule` marketplaces; minimum budget for hours of day; events; `WEEKLY` recurrence samples; association calls |
767
+ | Performance-based rules | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/performance-based | API guide | 2026-11-09 | minimum-budget statement; endpoints per product; 7 / 14-day attribution; association calls |
768
+ | Budget rule evaluation | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/rule-evaluation | API guide | 2026-11-09 | start-of-day and on-edit evaluation; 250 rules; additive examples; statuses |
769
+ | Viewing changes to daily budgets for campaigns with budget rules | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/campaigns-api | API guide | 2026-11-09 | `ruleBasedBudget` read-back; `applicableRuleId` warning (not association calls, as the research seat had it) |
770
+ | Including budget rules values in a snapshot | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/snapshots | API guide | 2026-11-09 | `ruleBasedBudget`; `applicableRuleId` incomplete |
771
+ | Including budget rules values in a report | https://advertising.amazon.com/API/docs/en-us/guides/rules/budget-rules/reports | API guide | 2026-11-09 | rule-budget report metrics |
772
+ | Bidding rules overview | https://advertising.amazon.com/API/docs/en-us/guides/rules/bidding-rules/overview | API guide | 2026-11-09 | boundary with bids (cross-reference) |
773
+ | Get started with Portfolios | https://advertising.amazon.com/API/docs/en-us/guides/portfolios/get-started | API guide | 2026-11-09 | policies; one portfolio per campaign; no competition between portfolios |
774
+ | Sharing leftover budget in a portfolio | https://advertising.amazon.com/API/docs/en-us/guides/portfolios/sharing-leftover | API guide | 2026-11-09 | mechanism; $80 example; default after 2025-06-20; monthly reset |
775
+ | Use portfolios with bulksheets | https://advertising.amazon.com/API/docs/en-us/no-code-tools/bulksheets/bulksheets-portfolios | API guide | 2026-11-09 | portfolio budget columns in bulksheets |
776
+ | Global campaigns for Sponsored Products | https://advertising.amazon.com/API/docs/en-us/guides/campaign-management/global-campaigns | API guide | 2026-11-09 | per-marketplace budgets in local currency; marketplace list |
777
+ | Campaign entity (campaign management) | https://advertising.amazon.com/API/docs/en-us/guides/campaign-management/entities/campaign | API guide | 2026-11-09 | v1 campaign budget fields |
778
+ | Sponsored Products campaigns guide | https://advertising.amazon.com/API/docs/en-us/guides/sponsored-products/campaigns | API guide | 2026-11-09 | SP v3 budget object |
779
+ | Sponsored Brands: get started with campaigns | https://advertising.amazon.com/API/docs/en-us/guides/sponsored-brands/campaigns/get-started-with-campaigns | API guide | 2026-11-09 | SB budget type at create |
780
+ | Exports: campaigns | https://advertising.amazon.com/API/docs/en-us/guides/exports/entities/campaigns | API guide | 2026-11-09 | `budgetCaps` incl. `ruleAmount`; cross-product mapping |
781
+ | Common models: campaigns | https://advertising.amazon.com/API/docs/en-us/reference/common-models/campaigns | API reference | 2026-11-09 | v1 `budgets[]` |
782
+ | Common models: enums | https://advertising.amazon.com/API/docs/en-us/reference/common-models/enums | API reference | 2026-11-09 | `deliveryReasons` and the cross-API mapping |
783
+ | Computed status and campaign status | https://advertising.amazon.com/API/docs/en-us/reference/concepts/computed-status | API reference | 2026-11-09 | out-of-budget status meanings; SB `OUT_OF_BUDGET` and `BILLING_ERROR` transitions |
784
+ | Limits, constraints, and quotas | https://advertising.amazon.com/API/docs/en-us/reference/concepts/limits | API reference | 2026-11-09 | budget ranges by marketplace; SD default budgets; SD thresholds; service limits 12 h / 72 h |
785
+ | Reporting overview | https://advertising.amazon.com/API/docs/en-us/guides/reporting/overview | API guide | 2026-11-09 | 2027-06-30 shut-offs |
786
+ | Helpful concepts (reporting v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/helpful-concepts | API guide | 2026-11-09 | `hour.value` HOURLY; `campaign.budgetAmount`; `budgetCurrency.value` requirement |
787
+ | Hour (Time) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/time/hour | API guide | 2026-11-09 | `hour.value` availability by product |
788
+ | Budget currency (dimension) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/budget-currency | API guide | 2026-11-09 | `budgetCurrency.value` |
789
+ | Portfolio (level of detail) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/level-of-detail/portfolio | API guide | 2026-11-09 | portfolio dimension in v1 reports |
790
+ | Migrating from: spCampaigns | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/report-types/sp-campaigns | API guide | 2026-11-09 | v3 `spCampaigns` to v1 field mapping for budget, budget type, currency, delivery status |
791
+ | Converted currency (Currency) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dimensions/currency/converted-currency | API guide | 2026-11-09 | `convertedCurrency.value` (verifier seat) |
792
+ | Costs (metric family, reporting v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/costs-and-fees/costs | API guide | 2026-11-09 | `metric.totalCost`, `metric.totalCostConverted` (verifier seat) |
793
+ | Clicks (metric family, reporting v1) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/metrics/delivery/clicks | API guide | 2026-11-09 | `metric.grossClicks`, `metric.invalidClicks`, `metric.invalidClickRate` (verifier seat) |
794
+ | Dates and historical data retention | https://advertising.amazon.com/API/docs/en-us/guides/reporting/ads-v1/dates | API guide | 2026-11-09 | campaign time zone aggregation; retention (verifier seat, page read directly) |
795
+ | Deprecations | https://advertising.amazon.com/API/docs/en-us/release-notes/deprecations | API reference | 2026-11-09 | Stream v1 / v3 / v2 shut-off 2027-06-30; budget consumption notifications to Campaign Management; budget rules history (verifier seat) |
796
+ | Campaign reports (v3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/campaign | API guide | 2026-11-09 | budget and rule-budget columns |
797
+ | Gross and invalid traffic reports | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/report-types/gross-and-invalid-traffic | API guide | 2026-11-09 | report ids, columns, 365 days |
798
+ | Sponsored ads budget usage dataset (Stream) | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/datasets/budget-usage | API guide | 2026-11-09 | 5% notifications; rule-based budget; duplicate after invalidation |
799
+ | SP budget recommendations and missed opportunities (Stream) | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/datasets/budget-recs-missed-opportunities | API guide | 2026-11-09 | dataset fields; local currency |
800
+ | Stream v2 datasets overview | https://advertising.amazon.com/API/docs/en-us/guides/amazon-marketing-stream/v2/datasets/overview | API guide | 2026-11-09 | no budget-usage dataset in v2 |
801
+ | Billing: getting started | https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/getting-started | API guide | 2026-11-09 | billing API scope |
802
+ | Billing profiles | https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/billing-profiles | API guide | 2026-11-09 | vendor-only scope ("does not support seller or ADSP accounts") |
803
+ | Billing invoices overview | https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/invoices | API guide | 2026-11-09 | invoice calls |
804
+ | Payments | https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/payments | API guide | 2026-11-09 | `SELLER_PAYABLE`; insufficient-balance reason |
805
+ | Billing invoicing report overview | https://advertising.amazon.com/API/docs/en-us/guides/account-management/billing/global-invoicing-report | API guide | 2026-11-09 | invoice reporting (no budget content) |
806
+ | Partner Opportunities - Click Credits | https://advertising.amazon.com/API/docs/en-us/guides/recommendations/partner-opportunities/catalog/click-credits | API guide | 2026-11-09 | SP and SB launch credits; "Stay Active" 30 days |
807
+ | Release notes | https://advertising.amazon.com/API/docs/en-us/release-notes/index | release notes | 2026-11-09 | dated history: 2021–2026 budget entries cited above |
808
+ | Docs `llms.txt` | https://d3a0d0y2hgofx6.cloudfront.net/llms.txt | index | 2026-11-09 | the markdown host and its index files |
809
+ | Docs table of contents | https://d3a0d0y2hgofx6.cloudfront.net/en-us/toc2.json | index | 2026-11-09 | real guide paths |
810
+ | Docs search index | https://d3a0d0y2hgofx6.cloudfront.net/en-us/searchIndex.json | index | 2026-11-09 | operation texts; *Dates and historical data retention* retention table; *Rate limiting* 5× weight; *Targeting PG deals*; *Account budgets* reference |
811
+ | MCP tool catalogue: campaign management | https://d3a0d0y2hgofx6.cloudfront.net/en-us/mcp/campaign_management.json | API reference | 2026-11-09 | budget and portfolio tool names (no endpoint called; the hyphenated address returns 404) |
812
+ | MCP tool catalogue: billing | https://d3a0d0y2hgofx6.cloudfront.net/en-us/mcp/billing.json | API reference | 2026-11-09 | billing tool names (no endpoint called) |
813
+
814
+ ### OpenAPI specifications
815
+
816
+ | Page name | URL | Type | Date read | What it gave |
817
+ |---|---|---|---|---|
818
+ | Sponsored Products v3 | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/SponsoredProducts_prod_3p.json | OpenAPI | 2026-11-09 | budget object; serving status; usage; recommendations; rules; error reasons; bidding enum |
819
+ | Amazon Ads API v1 (all) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALL_prod_3p.json | OpenAPI | 2026-11-09 | `budgets[]`; `deliveryReasons`; `BidStrategy`; DSP pacing |
820
+ | Amazon DSP v1 ad groups and campaigns | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AdGroupandCampaign-V1_prod_3p.json | OpenAPI | 2026-11-09 | DSP `/dsp/v1/campaigns` operations (not the sponsored-ads v1 campaigns API; that is in `AmazonAdsAPIALL_prod_3p.json`) |
821
+ | Portfolios v3 | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Portfolios_prod_3p.json | OpenAPI | 2026-11-09 | budget policies; sharing flag; serving status; error reasons; usage |
822
+ | Advertisers (account budgets) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Advertisers_prod_3p.json | OpenAPI | 2026-11-09 | `/accountBudgets/featureFlags` and its media type |
823
+ | Advertising Billing | https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/AdvertisingBilling_prod_3p.json | OpenAPI | 2026-11-09 | billing statuses, notifications, invoices, payment methods |
824
+ | Recommendations | https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/Recommendations_prod_3p.json | OpenAPI | 2026-11-09 | tactical recommendations (budget types cross-referenced to `beyond/automation-and-amazon-tools.md`) |
825
+ | Change history | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Changehistory_prod_3p.json | OpenAPI | 2026-11-09 | `IN_BUDGET`, `BUDGET_AMOUNT`; 90 days; SP and SB only |
826
+ | Diagnostics | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/Diagnostics_prod_3p.json | OpenAPI | 2026-11-09 | no budget diagnostics found |
827
+ | Offline report (v3) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/OfflineReport_prod_3p.json | OpenAPI | 2026-11-09 | report type ids incl. gross and invalids |
828
+ | Sponsored Brands v4 | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/4-0/openapi.json | OpenAPI | 2026-11-09 | daily / lifetime; lifetime dates; usage; recommendations |
829
+ | Sponsored Brands v3 | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/3-0/openapi.yaml | OpenAPI | 2026-11-09 | SB rule recommendations; SB rule metrics |
830
+ | Sponsored Display v3 | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-display/3-0/openapi.yaml | OpenAPI | 2026-11-09 | default budget; extended campaigns; usage; recommendations; optimization-rule budget multiples |
831
+
832
+ ### Forums
833
+
834
+ | Page name | URL | Type | Date read | What it gave |
835
+ |---|---|---|---|---|
836
+ | Seller Forums (CA): auto campaign spent $20.83 on $10 | https://sellercentral.amazon.ca/seller-forums/discussions/t/06995973-7cba-4289-9b83-03df691d326a | forum (Amazon moderator reply) | 2026-11-09 | moderator: averaged monthly, up to 100% more on a day |
837
+ | Seller Forums (EU): budget exceeded by about 100% | https://sellercentral-europe.amazon.com/seller-forums/discussions/t/d89a0bd7-549e-4216-991f-88a27d0547c3 | forum (Amazon moderator reply) | 2026-11-09 | same moderator, similar answer without a percentage (thread tagged Sponsored display) |
838
+
839
+ ### Practitioners and vendors
840
+
841
+ | Page name | URL | Type | Date read | What it gave |
842
+ |---|---|---|---|---|
843
+ | Amazon - Daily Budgets Rollover Percentage (Perpetua, Andrea Mamone, 2026-02-05) | http://help.perpetua.io/en/articles/7211394-amazon-daily-budgets-rollover-percentage | vendor help | 2026-11-09 | creation-date defaults; one-way split claim |
844
+ | Amazon PPC Series: Campaign Budgets Explained (Perpetua blog, Franz Jordan, 2017-09-11) | https://perpetua.io/blog-amazon-ppc-advertising-campaign-budget/ | vendor blog | 2026-11-09 | account cap vs campaign budgets; 20% buffer |
845
+ | Average daily budget (m19 help) | https://help.m19.com/control-my-advertising-budget | vendor help | 2026-11-09 | tool spends up to 2× daily, 1.1× monthly; do not edit in console |
846
+ | Amazon Ads Budget Pacing SOP (Trellis, Mike Lepine, 2026) | https://gotrellis.com/resources/blog/amazon-ads-budget-pacing-sop | vendor blog | 2026-11-09 | note the hour campaigns ran out; plan monthly; stale 25% |
847
+ | Amazon PPC Dayparting: The Expert's Guide (Intentwise, Michael Waters, 2024-01-01) | https://www.intentwise.com/blog/dayparting-strategies | vendor blog | 2026-11-09 | evening budget exhaustion; cheaper night CPCs; schedule rules bid up only |
848
+ | Amazon Budget Rules – A Boon for the Advertisers? (Intentwise, Aditi Sharma, 2021-07-30) | https://www.intentwise.com/blog/amazon-budget-rules | vendor blog | 2026-11-09 | campaign-by-campaign rules; 7 / 14-day metrics |
849
+ | Does Amazon Dayparting Save Money or Destroy Campaigns? (Clear Ads Agency, 2026-03-26) | https://clearadsagency.com/does-amazon-dayparting-save-money-or-destroy-campaigns/ | agency blog | 2026-11-09 | 6–10 PM window; 2× CVR gap; 30 days; $20k/month |
850
+ | Amazon PPC Budgeting Challenges Are Sinking Sales (Helium 10, Steven Pope, 2025-02-13) | https://www.helium10.com/blog/selling-on-amazon/amazon-ppc-budgeting-challenges-are-sinking-sales-heres-how-to-stay-afloat/ | vendor blog | 2026-11-09 | 80/20 manual/auto; weekly review; stockout rank claim |
851
+ | Fix Amazon budget pacing (Optmyzr, Disha, 2026-08-17) | https://www.optmyzr.com/blog/fix-amazon-budget-pacing/ | vendor blog | 2026-11-09 | flat-line pacing critique (first 100,000 characters read) |
852
+ | Amazon Tests ROAS Auto-Bidding for Sponsored Products (Nova Analytics, Matthieu, 2026-02-18) | https://novadata.io/resources/news/amazon-sponsored-products-roas-auto-bidding-2026 | vendor news | 2026-11-09 | reported SP budget-only beta |
853
+
854
+ ### Research
855
+
856
+ | Page name | URL | Type | Date read | What it gave |
857
+ |---|---|---|---|---|
858
+ | Smart Pacing for Effective Online Ad Campaign Optimization (Xu et al., KDD 2015) | https://arxiv.org/abs/1506.05851 | research (abstract) | 2026-11-09 | learned delivery pace; production DSP |
859
+ | Analysis of a Learning Based Algorithm for Budget Pacing (Hajiaghayi, Springer, 2022) | https://arxiv.org/abs/2205.13330 | research (abstract) | 2026-11-09 | uniform pacing; avoid early exhaustion |
860
+ | Advancing Ad Auction Realism (Chen, Nabi, Siniscalchi, 2023/2024) | https://arxiv.org/abs/2307.11732 | research (abstract) | 2026-11-09 | auction realism; no budgets |
861
+ | Bidding with Budgets: Algorithmic and Data-Driven Bids in Digital Advertising (Bergemann, Bonatti, Wu, CFDP 2429, 2025) | https://cowles.yale.edu/research/cfdp-2429-bidding-budgets-algorithmic-and-data-driven-bids-digital-advertising | research (abstract) | 2026-11-09 | budget as the advertiser's control of an auto-bidder |
862
+ | Multiplicative Pacing Equilibria in Auction Markets (Conitzer, Kroer, Sodomka, Stier-Moses) | https://arxiv.org/abs/1706.07151 | research (abstract) | 2026-11-09 | existence; multiplicity rare in experiments; NP-hard optimum (verifier seat) |
863
+ | arXiv 1703.03111 | https://arxiv.org/abs/1703.03111 | research (abstract) | 2026-11-09 | wrong paper (Statistical Cost Sharing); nothing taken |
864
+
865
+ ### Added in the gap fill of 2026-11-09
866
+
867
+ | Page name | URL | Type | Date read | What it gave |
868
+ |---|---|---|---|---|
869
+ | Sponsored Brands v4 (re-opened) | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-brands/4-0/openapi.json | OpenAPI | 2026-11-09 | `PUT /sb/v4/campaigns`: `UpdateCampaign` fields, 1–10 items, no `budgetType`; `CampaignServingStatus` incl. `PORTFOLIO_OUT_OF_BUDGET` |
870
+ | Sponsored Display v3 (re-opened) | https://d3a0d0y2hgofx6.cloudfront.net/openapi/en-us/sponsored-display/3-0/openapi.yaml | OpenAPI | 2026-11-09 | `PUT /sd/campaigns`: mutable fields, ≤100, `budgetType` `daily`, 207 reply without values |
871
+ | Amazon Ads API v1, Sponsored Display | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPISD_prod_3p.json | OpenAPI | 2026-11-09 | `SDCampaignUpdate.budgets` → `SDCreateBudget` without `recurrenceTimePeriod`; `SDBudget` requires it |
872
+ | Amazon Ads API v1 (re-opened) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALL_prod_3p.json | OpenAPI | 2026-11-09 | `MarketplaceBudgetAllocation` read-only (not in create/update settings); `MonetaryBudgetValue.marketplaceSettings` ≤30; no portfolio path |
873
+ | Sponsored Products v3 (re-opened) | https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/SponsoredProducts_prod_3p.json | OpenAPI | 2026-11-09 | `SevenDaysMissedOpportunities` descriptions; example values 65.2 / 80 / "-1"; `marketplaceBudgetAllocation` AUTO rule; PUT ≤1000 |
874
+ | Issue #475: SDCreateBudget schema is missing recurrenceTimePeriod — budget updates silently ignored | https://github.com/amzn/ads-advanced-tools-docs/issues/475 | GitHub issue (developer) | 2026-11-09 | 207 with budget ignored; open, no reply |
875
+ | Global campaigns for Sponsored Products (re-opened) | https://advertising.amazon.com/API/docs/en-us/guides/campaign-management/global-campaigns | API guide | 2026-11-09 | per-marketplace budgets; add-marketplace needs budget (`FIELD_VALUE_IS_NULL`); overrides exclude budget; per-market delivery status with marketplace IDs |
876
+ | Budget recommendations & missed opportunities (re-opened) | https://advertising.amazon.com/API/docs/en-us/guides/sponsored-products/budget-recommendations-and-missed-opportunities | API guide | 2026-11-09 | "not a guarantee"; Scenario 1 sample with clicks above impressions |
877
+ | Reporting columns (version 3) | https://advertising.amazon.com/API/docs/en-us/guides/reporting/v3/columns | API guide | 2026-11-09 | `sales7d` "within 7 days of an ad click" |
878
+ | Sponsored Products budget basics and best practices (re-opened) | https://advertising.amazon.com/library/guides/sponsored-products-budget-best-practices | library guide | 2026-11-09 | how missed clicks, missed sales and the recommended budget are computed; "for reference only" |
879
+ | Budget report for Sponsored Products (re-opened) | https://advertising.amazon.com/help/GMSBDCQF5ZW5P53N | help | 2026-11-09 | column definitions of the missed-opportunity ranges |
880
+ | Understand portfolios (re-opened) | https://advertising.amazon.com/help/GPEJN2E6R52G7C2T | help | 2026-11-09 | cap and sharing wording |
881
+ | Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent (re-opened) | https://advertising.amazon.com/library/news/amazon-ads-agent | news (2026-09-29) | 2026-11-09 | "the new name of the unified platform"; three campaign types; 2025 unification of DSP and ads console |
882
+ | Ads Agent: An AI marketing assistant from Amazon Ads | https://advertising.amazon.com/solutions/products/ads-agent | product page | 2026-11-09 | conversational experience in closed beta; review and approve |
883
+ | Understand delivery alerts and recommendations (re-opened) | https://advertising.amazon.com/help/GR6VEAG2EQWG56RD | help | 2026-11-09 | "formerly known as Amazon DSP" in DSP-specific context |
884
+ | Understand Advertiser Accounts | https://advertising.amazon.com/help/GXKXR56ZCMJ3WCS4 | help | 2026-11-09 | "formerly known as Amazon DSP" for DSP accounts per country |
885
+ | Understand delivery and pacing (re-opened) | https://advertising.amazon.com/help/GCELVBWV7S8S9AJA | help | 2026-11-09 | page speaks of "Display, Video, and Audio campaigns" |
886
+ | Budget Manager: Smarter Ad Budget Planning and Management (Helium 10, 2025-09-05, updated 2025-11-06) | https://kb.helium10.com/hc/en-us/articles/40774520833051-Budget-Manager-Smarter-Ad-Budget-Planning-and-Management (read via the help centre's public JSON, https://kb.helium10.com/api/v2/help_center/en-us/articles/40774520833051.json) | vendor help | 2026-11-09 | profile-level monthly plan; auto pacing; pause at cap, resume on the 1st; ignores portfolio caps |
887
+ | Pacvue vs. Perpetua - Which PPC Bid Management Tool is Best for You? (SmartScout, 2022-07-22) | https://www.smartscout.com/blog/pacvue-vs-perpetua-which-ppc-bid-management-tool-is-best-for-you | third-party blog | 2026-11-09 | Pacvue Budget Manager: fiscal-year monthly caps, pause and refresh |
888
+ | How to Spend the Right Amount at the Right Time on Amazon Search (Kepler Group, 2022-07-13) | https://news.keplergrp.com/kepler/how-to-spend-the-right-amount-at-the-right-time-on-amazon-search | agency blog | 2026-11-09 | Pacvue intraday and monthly pacing case; 8.5 to 16.5 hours |
889
+ | Skai Budget Manager (Feature Focus, 2018-11-02) | https://skai.io/budget-manager/ | vendor blog | 2026-11-09 | portfolio pacing; moves budget between campaigns; plan 31 days ahead |
890
+ | Skai Budget Navigator | https://skai.io/capabilities/manage-budgets-better | vendor page | 2026-11-09 | daily regenerated forecasts; reallocation among portfolios |
891
+ | Media Budget Forecasting (Skai) | https://skai.io/media-budget-forecasting/ | vendor page | 2026-11-09 | same, plus pacing alerts |
892
+ | Retail Media Solutions Overview (Skai) | https://skai.io/retail-media-solutions/ | vendor page | 2026-11-09 | "Portfolios & Budget Navigator"; budget pacing and forecasting listed |
893
+ | Monthly Budget Tracker (Perpetua, Anna Mamajanyan, 2026-04-22) | https://help.perpetua.io/en/articles/5395764-monthly-budget-tracker | vendor help | 2026-11-09 | visualization only; 2-day and 7-day projection; hard cap in the Amazon console |
894
+ | Real-Time Budget Optimization (Perpetua, Andrea Mamone, 2025-07-03) | https://help.perpetua.io/en/articles/8469746-real-time-budget-optimization | vendor help | 2026-11-09 | usage-threshold recommendations, hourly |
895
+ | Why Amazon spend goes off track before you notice (Optmyzr, Lakshmi Padmanaban, 2026-03-12) | https://www.optmyzr.com/blog/why-amazon-spend-goes-off-track-before-you-notice/ | vendor blog | 2026-11-09 | month-end projection, tolerance alerts, underspend |
896
+ | Amazon Ads Budget & Bid Management (Optmyzr) | https://www.optmyzr.com/solutions/amazon-ads-budget-bid-management/ | vendor page | 2026-11-09 | pause at monthly limit, re-enable next cycle |
897
+ | Amazon PPC budget management software (Adbrew) | https://adbrew.io/amazon-ppc-budget-management-software | vendor page | 2026-11-09 | monthly plan into daily budgets; shares and floors; unspent to capped campaigns |
898
+ | Monthly Spend Pacer (Trellis Qore) | https://gotrellis.com/qore/skills/monthly-spend-pacer | vendor page | 2026-11-09 | MTD + 7-day projection; 10% band; pacing curve; last-five-days rule |
899
+ | New Amazon Ads Feature: Shared Unspent Budget Across Portfolios Beta (JumpFly, Reilly McDonnell, 2025-01-21) | https://www.jumpfly.com/blog/new-amazon-ads-feature-shared-unspent-budget-across-portfolios-beta/ | agency blog | 2026-11-09 | portfolio month bound $4,500 example; monthly reset |
900
+ | Study: Intraday Optimization - Hourly Amazon Ad Performance Data and Strategies (Perpetua, data Spring 2022) | https://perpetua.io/blog-a-mini-study-intraday-optimization/ | vendor study | 2026-11-09 | hourly CPC $1.13 to $0.84; CVR 20% vs 6–8%; ACOS 20–23% vs 41% |
901
+ | Does Amazon Dayparting Save Money or Destroy Campaigns? (re-opened) | https://clearadsagency.com/does-amazon-dayparting-save-money-or-destroy-campaigns/ | agency blog | 2026-11-09 | author George Meressa; 2× is a threshold; example accounts 14%/6%, 11%/9% |
902
+ | Amazon Advertising Budgets: How to Allocate Spend Across Campaign Types in 2026 (Canopy Management, 2026-01-13) | https://canopymanagement.com/amazon-advertising-budgets-how-to-allocate-spend-across-campaigns/ | agency blog | 2026-11-09 | 12% vs 4% illustration; weekly reallocation |
903
+ | How do you use Amazon's New Budget Tab and Report? (Ad Badger, 2021-09-27) | https://www.adbadger.com/blog/amazon-ppc-education/how-do-you-use-amazons-new-budget-tab-and-report/ | vendor blog | 2026-11-09 | missed-opportunity range is wide |
904
+ | Counterfactual simulations for large scale systems with burnout variables (Heymann, 2025) | https://arxiv.org/abs/2509.04038 | research (abstract) | 2026-11-09 | budget caps complicate counterfactuals |
905
+ | Auditing Marketing Budget Allocation with Hindsight Regret (Pathak, Jeunen, Lambert, 2026) | https://arxiv.org/abs/2604.25977 | research (abstract) | 2026-11-09 | larger shifts move into weak-support regions |
906
+ | Consumer Heterogeneity and Paid Search Effectiveness (Blake, Nosko, Tadelis, NBER w20171) | https://www.nber.org/papers/w20171 | research (abstract) | 2026-11-09 | non-experimental returns overstate; brand-keyword ads no measurable short-term benefit |
907
+
908
+ Also searched without a usable page (2026-11-09): *SellerApp, Amazon Ad Budget Planning: A Strategic Framework for PPC, DSP, and AMC Investment* (2026-09-28; read, but it states budget-share benchmarks by spend tier with no pacing mechanism, so nothing is taken); Optmyzr help article *Optimize budgets single account Amazon user guide* (HTTP 404).
909
+
910
+ Known by bibliographic or search record only (abstract page not opened; claims limited to the record): Balseiro & Gur 2019 (Stanford GSB and RePEc records); Balseiro, Kim, Mahdian & Mirrokni 2021 (RePEc, dblp, Google Research records); Agarwal, Ghosh, Wei & You 2014 (ACM and videolectures records); Liu, Mao & Kang 2021 and the LinkedIn engineering post (search record); Jeunen, Murphy & Allison, AuctionGym (amazon.science record); Özlük & Cholette (phys.org record); Han & Arndt 2021 (citation record only); Pacvue budget and dayparting pages (search snippets only, no claim taken).
911
+
912
+ ### Unreachable
913
+
914
+ - *Your Amazon PPC budget shouldn't evaporate before lunch* (Scale Insights): https://blog.scaleinsights.com/your-amazon-ppc-budget-shouldnt-evaporate-before-lunch returned HTTP 404, and the help-desk copy at https://helpdesk.scaleinsights.com/en/articles/13700782-your-amazon-ppc-budget-shouldn-t-evaporate-before-lunch did not resolve (DNS ENOTFOUND; the verifier seat's retry also failed to resolve). No other public copy was found.
915
+ - *Budget Manager: Smarter Ad Budget Planning and Management* (Helium 10 knowledge base): https://kb.helium10.com/hc/en-us/articles/40774520833051-Budget-Manager-Smarter-Ad-Budget-Planning-and-Management returned HTTP 403 to a plain GET. In the gap fill of 2026-11-09 the same article was read through the help centre's public article JSON (`/api/v2/help_center/en-us/articles/40774520833051.json`, a plain GET with no sign-in), and is used in P7.
916
+ - *Budget usage in the Amazon Ads API* (what's new): https://advertising.amazon.com/resources/whats-new/budget-usage-amazon-ads-api served a generic what's-new listing with no article. The release note of 2023-04-05 was used instead.
917
+ - `guides/budgets/overview.md` and `guides/reporting/change-history.md` on the markdown host returned NoSuchKey (404). These paths do not exist. The real paths came from `toc2.json`, and change history was read from its OpenAPI spec.
918
+ - The Seller Central help pages for the SP account daily budget cap and for Seller Central advertising billing are a JS shell. Their content call is the POST `GetHelpTopic`, which is outside this seat's limits, so they were not read. The Ads help pages above cover the same rules.
919
+ - ACM Digital Library pages for the KDD papers were not fetched; their abstracts are known from records only.
920
+ - Pacvue's own pages (gap fill 2026-11-09): https://pacvue.com/tag/budget-manager and https://pacvue.com/blog/primary-approaches-projecting-amazon-marketing-spend/ returned HTTP 403 to a plain GET with a browser user agent; the Wayback Machine copies (snapshots 2026-05-12 and 2026-06-15) returned 502, and the fetch tool refuses web.archive.org. Pacvue's Budget Manager is described only through SmartScout and Kepler (P7).
921
+ - Ads API hosts, Login with Amazon, the Amazon Ads MCP server endpoints and SP-API hosts were not called, by rule. Every API statement in this file is from documentation and specifications, not from a live call.
922
+
923
+ ## Open questions
924
+
925
+ 1. Which timezone defines "midnight" for the daily budget reset, and the calendar month for the cap? The budget pages say "midnight" and "calendar month" without a zone. The nearest statements are on the reporting side: v1 reports aggregate "based on each campaign timezone" (`timeZone.value`), and the SP budget recommendation marks its dates "Local time". No budget page states the reset zone.
926
+ 2. Does the month cap apply per campaign, per portfolio with sharing on, or per profile on the invoice? The average-daily-budget guide states it per campaign. The sharing guide states it per portfolio. The over-delivery credit on the invoice is described without a scope.
927
+ 3. Is there any API operation that reads or sets the seller SP account daily budget cap? None was found. Only its effect (`ACCOUNT_OUT_OF_BUDGET` / `ADVERTISER_OUT_OF_BUDGET`) is visible.
928
+ 4. Is the console's two-year budget report (average time in budget, missed-opportunity ranges by day, week, month or quarter) available as an Ads API report type? The help page says the data can be accessed "through the Advertising API", but neither seat found a report type with its columns. The API's missed-opportunity read found is a single 7-day window.
929
+ 5. Does `POST /history` with the `IN_BUDGET` filter record every out-of-budget transition of an SP campaign, with a timestamp precise enough to give the hour it ran out? This needs a live read on a seller's account.
930
+ 6. When clicks on an out-of-budget campaign are invalidated within the same day, does the campaign re-enter auctions that day? The Stream dataset says a duplicate usage notification may follow an invalidation, which suggests the usage figure drops. The serving effect is not stated.
931
+ 7. Do the billing endpoints (`/billing/notifications`, `/billing/statuses`, `/invoices`) answer for a seller profile through the door? The billing-profiles guide is vendor-only ("does not support seller or ADSP accounts"); the other billing guides state no seller limit, and the payments samples include `SELLER_PAYABLE`.
932
+ 8. Is the SP v3 recurrence enum (`DAILY` only) complete, or does the API accept `WEEKLY` as the console and guides suggest? The schedule-based guide's samples send `"type": "WEEKLY"` with `daysOfWeek`, and the spec describes `daysOfWeek` as being "for weekly type rule".
933
+ 9. What is the current minimum daily budget for an hours-of-day schedule rule, and for performance rules in currencies other than the US dollar? The API guides state that minimums exist without figures. The only figure is $10 for performance rules, on the current help page (GNSMLANWNF344YBE) and in the 2021 announcement.
934
+ 10. Does v1 `recurrenceTimePeriod: MONTHLY` apply to any sponsored-ads product? It is in the shared model and in Stream's campaign dataset, but no sponsored-ads guide offers a monthly campaign budget.
935
+ 11. The Nova Analytics report of an SP "ROAS within the campaign budget" beta has no Amazon page. Does it exist, and how would it appear in the SP v3 `bidding.strategy` field?
936
+ 12. Is a converted, cross-marketplace view of budgets possible from Amazon data alone? Cost is: v1 reports carry `convertedCurrency.value` and `metric.totalCostConverted`. No converted field and no exchange-rate endpoint was found for budget amounts on campaign entities.
937
+ 13. The billing-cycles page gives two starting credit limits ($50 in the rule, $1 in the example). Which is current for a new US account in 2026?
938
+ 14. (gap fill) On a global SP campaign, does the monthly-averaging cap (budget × days, up to 100% on one day) apply per marketplace budget or to the global figure, and does an `AUTO` campaign's split between marketplaces move within the day?
939
+ 15. (gap fill) Does Amazon's missed-opportunity model condition on the hours after exhaustion (hour of day, day of week), or does it apply the campaign's in-budget rates to the missed clicks? No page says, and no validation of the estimates against post-raise outcomes was found.
940
+ 16. (gap fill) Does the SD v1 budget update still ignore a budget sent without `recurrenceTimePeriod` (issue #475, open), and does adding `recurrenceTimePeriod: "DAILY"` (outside the update schema) make it take effect? Needs a live write and read.
941
+ 17. (gap fill) How do the third-party plan tools (Helium 10, Pacvue, Skai, Adbrew, Trellis) account for Amazon's own monthly averaging when they rewrite daily budgets? None of the pages read says.
942
+ 18. (gap fill) Can a global SP campaign sit in a portfolio, and if so, which marketplace's portfolio cap applies? The v1 campaign carries `portfolioId`, while portfolios exist per profile.
943
+
944
+ ## Positions
945
+
946
+ **P-budgets-and-pacing-1.** A sponsored-ads daily budget is averaged over the calendar month: spend in the month does not exceed the daily budget × the days in that month, and the invoice is adjusted for any over-delivery. [official] *Average daily budget user guide*; *Understand budgets in Sponsored ads* (help GTGPQGUXNCTHE2DS).
947
+
948
+ **P-budgets-and-pacing-2.** On a single day Amazon may spend up to 100% more than a campaign's daily budget (the default), or up to 25% more if the profile has opted out. The setting is one per profile, read as `isOptedOutForAverageDailyBudgetIncrease` on `GET /accountBudgets/featureFlags`. [official] *Average daily budget user guide*; release notes 2023-03-28 and 2023-06-20; *Understand budgets in Sponsored ads*.
949
+
950
+ **P-budgets-and-pacing-3.** Amazon's library guide *Sponsored Products budget basics and best practices* still gives a 25% daily ceiling and the "$12.50 on a $10 budget" example as of 2026-11-09, while the API guide, the release notes (2023-03-28, 2023-06-20) and the help page give 100% as the default and 25% as an opt-out. [official] *Sponsored Products budget basics and best practices*; *Average daily budget user guide*; release note 2023-06-20.
951
+
952
+ **P-budgets-and-pacing-4.** Amazon states that sponsored-ads budgets "are spent as quickly as possible and not paced", and that an out-of-budget campaign is not eligible to serve until the daily reset. [official] *Understand budgets in Sponsored ads*; *Sponsored Products budget basics and best practices*; *Troubleshoot your campaign status* (help GEC8BVH43CU9UNYH).
953
+
954
+ **P-budgets-and-pacing-5.** Display, Video, and Audio campaigns (the buying formerly sold as Amazon DSP, now a campaign type in the Amazon Ads Agent platform) are paced: a flight budget is split into daily and minute-level targets, and bids are adjusted every few minutes to meet them. Sponsored ads in the same platform are not paced (P-budgets-and-pacing-4). [official] *Understand delivery and pacing* (help GCELVBWV7S8S9AJA); *Amazon Ads API v1* OpenAPI (`deliveryProfile` EVEN, PACE_AHEAD, ASAP).
955
+
956
+ **P-budgets-and-pacing-6.** After a mid-month budget change, spend for the rest of the month is capped at the new daily budget × the remaining days. Amazon's example is $50/day with $800 spent by the 20th, then $10/day, for at most $900 in the month. [official] *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L).
957
+
958
+ **P-budgets-and-pacing-7.** When a budget is changed several times in a day, the day's highest budget applies that day and the last one applies from the next day. A budget cut below what has already been spent today stops spend for the rest of the day. [official] *Edit your Sponsored ads campaign budget*.
959
+
960
+ **P-budgets-and-pacing-8.** Amazon says a budget change on an out-of-budget campaign "typically" takes 1–2 hours to show as Delivering, and it advises against frequent budget changes within one day. [official] *Troubleshoot your campaign status*.
961
+
962
+ **P-budgets-and-pacing-9.** Sponsored Brands campaigns have a daily or a lifetime budget. A live campaign cannot be switched from a daily to a lifetime budget (Amazon's route is to copy it into a new campaign), a live lifetime budget can only be increased, and a lifetime budget requires start and end dates. SP campaigns take daily budgets only. [official] *Edit your Sponsored ads campaign budget*; *Sponsored Brands v4* OpenAPI; *Sponsored Products v3* OpenAPI.
963
+
964
+ **P-budgets-and-pacing-10.** A Sponsored Display campaign created through the API without a budget gets a regional default budget in local currency, for example 100 in the US and 10,000 in Japan as of 2026-11-09. [official] *Sponsored Display v3* OpenAPI; *Limits, constraints, and quotas* (Default budgets).
965
+
966
+ **P-budgets-and-pacing-11.** The SP serving status names each money stop:
967
+ - `CAMPAIGN_OUT_OF_BUDGET`: the campaign's daily budget is spent;
968
+ - `PORTFOLIO_OUT_OF_BUDGET`: the portfolio cap is reached;
969
+ - `ACCOUNT_OUT_OF_BUDGET`: the seller's account daily cap is reached;
970
+ - `ADVERTISER_PAYMENT_FAILURE`: a payment failed.
971
+
972
+ The status is returned with `includeExtendedDataFields: true` on `POST /sp/campaigns/list`. [official] *Computed status and campaign status*; *Sponsored Products v3* OpenAPI.
973
+
974
+ **P-budgets-and-pacing-12.** In Ads API v1 a campaign's `status.deliveryReasons[]` carries the money reasons: `CAMPAIGN_OUT_OF_BUDGET`, `PORTFOLIO_OUT_OF_BUDGET`, `ADVERTISER_OUT_OF_BUDGET` (the seller SP account cap), postpay and prepay limits, `ADVERTISER_PAYMENT_FAILURE` and `SPEND_LIMIT_EXCEEDED`. [official] *Amazon Ads API v1* OpenAPI; *Common models: enums*.
975
+
976
+ **P-budgets-and-pacing-13.** Budget usage percent is the day's spend divided by the day's effective budget, which includes budget-rule increases and the average-daily-budget lift. It is read per campaign or portfolio with `POST /sp|sb|sd/campaigns/budget/usage` or `POST /portfolios/budget/usage`, at most 100 ids per call. [official] *Budget usage overview*; SP, SB, SD and Portfolios OpenAPI specs.
977
+
978
+ **P-budgets-and-pacing-14.** Amazon's push feed of budget usage (Stream v1 `budget-usage`, every 5% consumed) requires an SQS or Firehose destination and shuts off on 2027-06-30. The Stream v2 dataset list has no budget-usage dataset, and Amazon's deprecation notice says budget consumption notifications "are not carried forward in Stream v2" and points to the Campaign Management API instead. [official] *Sponsored ads budget usage dataset*; *Stream v2 datasets overview*; *Reporting overview*; *Deprecations* (September 2026 entry).
979
+
980
+ **P-budgets-and-pacing-15.** The SP budget recommendation returns a suggested daily budget, the share of the last 7 days the campaign was in budget (a decimal from 0 to 1 in the SP spec), and lower and upper estimates of missed impressions, clicks and sales. Amazon calls these estimates "not a guarantee" and suggests waiting until a campaign has been active nine days. [official] *Budget recommendations and missed opportunities*; *Sponsored Products v3* OpenAPI.
981
+
982
+ **P-budgets-and-pacing-16.** Budget recommendations with missed-opportunity estimates exist for SB (`/sb/campaigns/budgetRecommendations`) and SD (`/sd/campaigns/budgetRecommendations`) as well as SP. When it launched them, Amazon said roughly ten percent of SB campaigns went out of budget daily (2023). [official] *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; release notes 2023-01-31 and 2023-07-20.
983
+
984
+ **P-budgets-and-pacing-17.** Amazon describes the console's recommended budget as estimated missed clicks × estimated CPC, from a machine-learning model of similar campaigns that stayed in budget. The suggested budget at creation is based on campaigns with similar ASINs by category, price, bids, strategy and targeting. [official] *Sponsored Products budget basics and best practices*; *Understand budgets in Sponsored ads*.
985
+
986
+ **P-budgets-and-pacing-18.** Budget rules only raise a campaign's daily budget, by a percentage. Schedule-based rules cover a date range, a recommended event or a weekly recurrence on chosen days, with an optional hour window in US, CA, UK, IN and JP only. Performance-based rules apply when a metric meets a threshold. [official] *Understand budget rules in Sponsored ads* (help GNSMLANWNF344YBE); *Schedule-based rules*; *Create budget rules for sponsored ads campaigns* (help G3HZWVWYE23DBR2V).
987
+
988
+ **P-budgets-and-pacing-19.** The metrics available to performance-based rules are ACOS, CTR, CVR and ROAS on SP and SD, and ROAS, top-of-search impression share and new-to-brand on SB. They are computed over the previous 7 days for sellers and 14 days for vendors. [official] *Budget Rules overview*; *Performance-based rules*; release note 2023-04-06.
989
+
990
+ **P-budgets-and-pacing-20.** When several budget rules meet their conditions, their increases add. Amazon's example is +40% and +100%, which apply as +140% on the day. A campaign can carry up to 250 rules. [official] *Budget rule evaluation*; release notes 2023-01-31 and 2023-03-20.
991
+
992
+ **P-budgets-and-pacing-21.** The API guide says budget rules are evaluated at the start of the day, and again whenever a rule is created or updated or the campaign's daily budget changes. The help page describes a daily review that sets the next day's budget. [official] *Budget rule evaluation*; *Understand budget rules in Sponsored ads*.
993
+
994
+ **P-budgets-and-pacing-22.** A performance-based rule does not apply below a minimum daily budget and shows the status "Budget threshold not met". The published figure is $10, stated on the current help page and in the 2021 announcement; no figure in another currency was found. [official] *Budget rule evaluation*; *Understand budget rules in Sponsored ads* (help GNSMLANWNF344YBE); *Budget rules now available in Amazon advertising console globally* (what's new, 2021-08-12); *Performance-based rules*.
995
+
996
+ **P-budgets-and-pacing-23.** A rule-raised budget is read back as SP `budget.effectiveBudget`, SB and SD `ruleBasedBudget.value` or v1 `monetaryBudget.ruleValue`. Amazon warns that `applicableRuleId` can be incomplete when several rules are active, and the campaign's rule list is the full record. [official] *Sponsored Products v3*, *Sponsored Brands v4* and *Sponsored Display v3* OpenAPI specs; *Viewing changes to daily budgets for campaigns with budget rules*; *Amazon Ads API v1* OpenAPI.
997
+
998
+ **P-budgets-and-pacing-24.** Amazon returns recommended events for budget rules (SP and SB), each with an event id, dates and a suggested percentage increase. A rule tied to an event whose dates are not yet announced takes the dates once Amazon announces them. [official] *Schedule-based rules*; *Sponsored Products v3* OpenAPI; SB v3 OpenAPI.
999
+
1000
+ **P-budgets-and-pacing-25.** A portfolio budget cap is a date range (`DATE_RANGE`), a monthly renewing amount (`MONTHLY_RECURRING`) or none (`NO_CAP`). A campaign belongs to at most one portfolio. Reaching the cap stops the portfolio's campaigns with `PORTFOLIO_OUT_OF_BUDGET`. [official] *Get started with Portfolios*; *Portfolios v3* OpenAPI; *Computed status and campaign status*.
1001
+
1002
+ **P-budgets-and-pacing-26.** With unspent-budget sharing on, a portfolio's campaigns that have spent their own daily budget, including their own leftovers, can use other campaigns' leftovers from earlier days in the month, up to 100% over daily budget. The portfolio's month stays within the sum of daily budgets × days. Sharing is on by default for portfolios created after 2025-06-20 and is set per portfolio. [official] *Sharing leftover budget in a portfolio*; release notes 2025-07-07 and 2025-07-19.
1003
+
1004
+ **P-budgets-and-pacing-27.** The Sponsored Products account daily budget cap is a seller-only console setting. It caps the combined daily spend of all SP campaigns in the account, and no Ads API operation for setting it was found. [official] *Edit your Sponsored ads campaign budget*; *Troubleshoot your campaign status*; *Computed status and campaign status*.
1005
+
1006
+ **P-budgets-and-pacing-28.** In Ads API v1 a campaign's budgets are `budgets[]` of `MONETARY` budgets with `recurrenceTimePeriod` `DAILY`, `LIFETIME` or `MONTHLY`. A global SP campaign carries a separate budget per marketplace in local currency in `marketplaceSettings`. [official] *Amazon Ads API v1* OpenAPI; *Global campaigns for Sponsored Products*.
1007
+
1008
+ **P-budgets-and-pacing-29.** Budgets are set in the marketplace's currency. Amazon refuses a budget outside the marketplace's range, below the campaign's bids, or in a mismatched currency, and names the reason in the error. [official] *Sponsored Products v3* and *Portfolios v3* OpenAPI specs; *Limits, constraints, and quotas*.
1009
+
1010
+ **P-budgets-and-pacing-30.** Amazon filters invalid traffic before the bid and after the impression, and bills net of it. Most of it is removed in real time. Cost can change for up to 72 hours, data is restated within 30 days, and invoices carry credits and debits for invalidated or revalidated clicks. [official] *Traffic validation* (help GBYPYH79NGJJ5JPS); *Understand campaign spend* (help GUJY2CG5DTCPDCVQ); *Sponsored Products description of methodology* (help G8KL93RTVG44RZAQ); *View and understand your invoice*.
1011
+
1012
+ **P-budgets-and-pacing-31.** Amazon names a fall in IVR together with a rise in CTR, impressions or clicks and a fall in CVR as a higher-confidence sign of undetected invalid traffic on sponsored ads. The per-campaign figures are in the `spGrossAndInvalids`, `sbGrossAndInvalids` and `sdGrossAndInvalids` reports. [official] *Traffic validation*; *Gross and invalid traffic reports*.
1013
+
1014
+ **P-budgets-and-pacing-32.** A failed advertising payment pauses an account's campaigns. On seller-balance payment Amazon retries at a fixed frequency and reinstates the account when a charge succeeds, and a backup card is charged the full invoice when the primary method fails. [official] *Payment methods (Sponsored ads)* (help GMELNQQNEEVLX456); *Resolve a payment failure* (help G2SQRLBPB8TY587E); *Add a backup payment method* (help GPGZ28EK9WM4LZ2E).
1015
+
1016
+ **P-budgets-and-pacing-33.** Sponsored-ads charges are invoiced each time accumulated cost reaches the account's credit limit, and at least monthly on the second day of the next month. The credit limit rises with successful payments. [official] *Understand Amazon Ads billing cycles* (help GY3YNTWRZYVPLADL); *View and understand your invoice*.
1017
+
1018
+ **P-budgets-and-pacing-34.** An invoice differs from campaign cost by invalid-traffic adjustments, over-delivery credits, promotional credits, taxes, regulatory advertising fees and charges carried across a month boundary. Promotional credits lower the invoice and do not raise any budget. [official] *Understand campaign spend*; *View and understand your invoice*; *Understand advertising promotions* (help GFAN744AATXXDQBB); *Regulatory Advertising Fees* (help GRQM2HSUXGUWFJ3H).
1019
+
1020
+ **P-budgets-and-pacing-35.** The billing API reports billing status, billing notifications (including whether campaigns are suspended and the suspension date), invoices with campaign and portfolio lines, and payment methods. Amazon documents the billing-profiles API as supporting vendor accounts and not seller or ADSP accounts; the other billing guides state no seller limit. [official] *Advertising Billing* OpenAPI; *Billing profiles*; *Billing: getting started*; *Payments*.
1021
+
1022
+ **P-budgets-and-pacing-36.** Change history (`POST /history`) returns up to 90 days of SP and SB campaign changes, including budget amounts and in-budget changes, without who made them. [official] *Change history* OpenAPI.
1023
+
1024
+ **P-budgets-and-pacing-37.** Hourly cost per campaign is available from Ads API v1 reports with the `hour.value` dimension, kept for 14 days with a 14-day maximum range. [official] *Dates and historical data retention*; *Hour (Time)*; *Helpful concepts* (reporting v1).
1025
+
1026
+ **P-budgets-and-pacing-38.** Sponsored Products off-Amazon placements are governed by `offAmazonBudgetControlStrategy`, which the v1 spec describes as maximising off-Amazon reach "within the budget" (`MAXIMIZE_REACH`) or minimising off-Amazon spend (`MINIMIZE_SPEND`, on SP v3 "Restrict ad placements to Amazon owned-and-operated properties only"). Amazon's status page says off-site cost is monitored in a placement report, "as these metrics are not visible in Campaign Manager". [official] *Amazon Ads API v1* and *Sponsored Products v3* OpenAPI specs; *Troubleshoot your campaign status*.
1027
+
1028
+ **P-budgets-and-pacing-39.** Trellis (Mike Lepine, 2026) advises recording the time of day each campaign ran out of budget, and Intentwise (Michael Waters, 2024) observes that advertisers commonly exhaust budgets by the evening and that CPCs are lower at night. [opinion] Trellis, *Amazon Ads Budget Pacing SOP*; Intentwise, *Amazon PPC Dayparting: The Expert's Guide*.
1029
+
1030
+ **P-budgets-and-pacing-40.** Clear Ads Agency (2026) holds that most sellers should not daypart. It treats a 2× conversion-rate gap between best and worst hours, 30 days of hourly data and about $20,000 a month in spend as minimums. [opinion] Clear Ads Agency, *Does Amazon Dayparting Save Money or Destroy Campaigns?*.
1031
+
1032
+ **P-budgets-and-pacing-41.** Third-party optimisers can own a seller's Amazon budgets. m19 rewrites campaign and portfolio budget caps daily, spends up to 2× its daily target on a day and 1.1× its monthly target, and asks sellers not to edit budgets in the Amazon console. [opinion] m19 help, *Average daily budget*.
1033
+
1034
+ **P-budgets-and-pacing-42.** Research on budget-constrained bidding finds that adaptive pacing strategies, which adjust bids to the advertiser's own spend path, are asymptotically optimal. It also finds that each budget-management method used market-wide leads to a different equilibrium. [research] Balseiro and Gur (2019); Balseiro, Kim, Mahdian and Mirrokni (2021).
1035
+
1036
+ **P-budgets-and-pacing-43.** Research on ad delivery finds that serving an ad greedily until its budget is exhausted is suboptimal for advertisers and publishers when budgets are finite, compared with pacing that knows supply patterns. [research] Agarwal, Ghosh, Wei and You (KDD 2014); Xu et al. (KDD 2015); Hajiaghayi and Springer (2022).
1037
+
1038
+ Added in the gap fill of 2026-11-09:
1039
+
1040
+ **P-budgets-and-pacing-44.** Amazon derives a campaign's estimated missed sales from missed clicks that a machine-learning model estimates from similar campaigns that stayed in budget, combined with the campaign's own historical CTR and sales, and calls the figures "estimated for reference only and … not guaranteed"; the recommended budget is the estimated missed clicks × an estimated CPC. [official] *Sponsored Products budget basics and best practices*; *Budget report for Sponsored Products* (help GMSBDCQF5ZW5P53N).
1041
+
1042
+ **P-budgets-and-pacing-45.** The "sales" in Amazon's missed-sales estimate are click-attributed ad sales (on Sponsored Products, sales "within 7 days of an ad click"), not sales caused by the ad; field experiments on paid search found non-experimental returns overstated and brand-keyword ads without measurable short-term benefit. [official] *Reporting columns (version 3)*; *Sponsored Products v3* OpenAPI (`SevenDaysMissedOpportunities`). [research] Blake, Nosko and Tadelis (NBER w20171, 2014; *Econometrica* 2015).
1043
+
1044
+ **P-budgets-and-pacing-46.** No published validation of Amazon's missed-opportunity estimates against what campaigns did after a budget raise was found on amazon.science, arXiv or Amazon's help and API pages as of 2026-11-09, and Amazon's pages do not say whether the model accounts for the hour of day of the missed traffic. [official] *Sponsored Products budget basics and best practices*; *Budget recommendations & missed opportunities*. [seat, search result]
1045
+
1046
+ **P-budgets-and-pacing-47.** Perpetua's hourly benchmark of US Sponsored Products (its users' campaigns, six weeks in spring 2022) found CPC falling from $1.13 early in the day to $0.84 by its end, conversion rate around 20% at the 6–10 am Pacific peak against 6–8% at night, and ACOS of 20–23% by day against 41% in the 11 pm hour; Perpetua attributes the CPC fall to advertisers exhausting budgets. [opinion] Perpetua, *Study: Intraday Optimization - Hourly Amazon Ad Performance Data and Strategies*.
1047
+
1048
+ **P-budgets-and-pacing-48.** Practitioners disagree on when Amazon shoppers convert best: Perpetua's 2022 data puts the peak at 6–10 am Pacific, Clear Ads Agency (George Meressa, 2026) at 6–10 pm, and Kepler's apparel client at 4 pm to midnight; Clear Ads treats a 2× best-to-worst-hour conversion gap as its minimum for dayparting and reports example accounts at 14% against 6% and 11% against 9%. [opinion] Perpetua intraday study; Clear Ads Agency, *Does Amazon Dayparting Save Money or Destroy Campaigns?*; Kepler Group, *How to Spend the Right Amount at the Right Time on Amazon Search*.
1049
+
1050
+ **P-budgets-and-pacing-49.** An SB campaign's budget amount is updated with `PUT /sb/v4/campaigns` (`budget`, 1–10 campaigns per call); `budgetType` (`DAILY` | `LIFETIME`) is accepted at create only, and Amazon's help page adds that a live campaign cannot switch from daily to lifetime and a live lifetime budget can only be increased. [official] *Sponsored Brands v4* OpenAPI; *Edit your Sponsored ads campaign budget* (help GVYUKBJQFPH7ZQ2L).
1051
+
1052
+ **P-budgets-and-pacing-50.** An SD v3 campaign's budget is updated with `PUT /sd/campaigns` (mutable fields `name`, `state`, `budget`, `startDate`, `endDate`; at most 100), its `budgetType` is `daily` only, and the 207 reply carries a code and the campaign id but not the new budget. [official] *Sponsored Display v3* OpenAPI.
1053
+
1054
+ **P-budgets-and-pacing-51.** In the SD v1 model the update-budget schema (`SDCreateBudget`) has no `recurrenceTimePeriod`, which the read model `SDBudget` requires, and a developer reports that such an update returns 207 with no error while the budget is not changed (issue #475, open with no Amazon reply as of 2026-11-09). [official] *Amazon Ads API v1, Sponsored Display* OpenAPI. [opinion] `zhangwg4apollo`, issue #475 on `amzn/ads-advanced-tools-docs`.
1055
+
1056
+ **P-budgets-and-pacing-52.** A global SP campaign holds one budget per marketplace in local currency under `marketplaceSettings`; a marketplace is added only with its budget in the same update (otherwise `FIELD_VALUE_IS_NULL`), per-marketplace overrides do not include budget, and under `AUTO` marketplace budget allocation "Budget updates for marketplaces are not allowed" and only the global budget is written. [official] *Global campaigns for Sponsored Products*; *Sponsored Products v3* OpenAPI (`SponsoredProductsMarketplaceBudgetAllocation`); *Amazon Ads API v1* OpenAPI.
1057
+
1058
+ **P-budgets-and-pacing-53.** A global SP campaign reports a top-level `deliveryStatus` (including `LIMITED`) and a per-marketplace status in `status.marketplaceSettings[]`, keyed by marketplace ID rather than country code. [official] *Global campaigns for Sponsored Products* (*Delivery status*); *Amazon Ads API v1* OpenAPI.
1059
+
1060
+ **P-budgets-and-pacing-54.** Portfolios are managed per profile, which is one marketplace, with the cap in that marketplace's currency; the v1 API has no portfolio operation, so Amazon offers no object that caps spend across several marketplaces. [official] *Portfolios v3* OpenAPI; *Amazon Ads API v1* OpenAPI.
1061
+
1062
+ **P-budgets-and-pacing-55.** Sponsored Brands v4 lists `PORTFOLIO_OUT_OF_BUDGET` among campaign serving statuses, although the *Common models: enums* mapping table shows no SB equivalent. [official] *Sponsored Brands v4* OpenAPI; *Common models: enums*.
1063
+
1064
+ **P-budgets-and-pacing-56.** Helium 10's Budget Manager sets monthly and annual budgets per profile, adjusts daily budgets toward the remaining amount, pauses campaigns when the plan's cap is reached and resumes them on the 1st, and does not consider portfolio caps; Pacvue's Budget Manager is described by SmartScout (2022) as taking monthly caps for a fiscal year and pausing campaigns until the next month. [opinion] Helium 10, *Budget Manager: Smarter Ad Budget Planning and Management*; SmartScout, *Pacvue vs. Perpetua*.
1065
+
1066
+ **P-budgets-and-pacing-57.** Skai's Budget Manager and Budget Navigator pace a portfolio's campaigns to a budget and KPI plan by moving budget between campaigns and regenerating the forecast daily; Perpetua's Monthly Budget Tracker projects month-end spend from 2-day and 7-day history and enforces nothing, pointing to Amazon's own caps; Trellis's Monthly Spend Pacer projects from month-to-date plus a 7-day run rate and acts only outside a 10% band. [opinion] Skai, *Skai Budget Manager* and *Skai Budget Navigator*; Perpetua, *Monthly Budget Tracker*; Trellis, *Monthly Spend Pacer*.
1067
+
1068
+ **P-budgets-and-pacing-58.** Kepler Group reports that for one apparel client, lowering bids early in the day with Pacvue raised daily serving from 8.5 to 16.5 hours, with ROAS up 95% and CPC down 58%; it is a single-client before/after without a control. [opinion] Kepler Group, *How to Spend the Right Amount at the Right Time on Amazon Search*.
1069
+
1070
+ **P-budgets-and-pacing-59.** Research on budget-capped systems notes that a campaign's budget ends its observed path, so "what if it had not run out" is a counterfactual simulation, and that spend-response estimates become more uncertain for reallocations far outside the spend levels in the history. [research] Heymann (arXiv 2509.04038, 2025); Pathak, Jeunen and Lambert (arXiv 2604.25977, 2026).
1071
+
1072
+ **P-budgets-and-pacing-60.** Amazon Ads Agent is, from 2026-09-29, the name of Amazon's unified ad platform that holds sponsored ads, Display, Video, and Audio, and Full-Funnel Campaigns; the help centre's "Amazon Ads Agent (formerly known as Amazon DSP)" appears where pages describe DSP-specific settings and accounts; the conversational experience inside the platform is in closed beta. [official] *Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent*; *Understand delivery alerts and recommendations* (help GR6VEAG2EQWG56RD); *Understand Advertiser Accounts* (help GXKXR56ZCMJ3WCS4); *Ads Agent: An AI marketing assistant from Amazon Ads*.
1073
+
1074
+ ### Seat's positions (enter no skill)
1075
+
1076
+ - [seat] On sponsored ads, "pacing" is the advertiser's own work, done with bids, schedule rules and budget changes. Amazon has no intraday pacer there, and its smoothing is monthly (the daily lift and the month cap).
1077
+ - [seat] An out-of-budget day is visible in three Amazon reads of different reach:
1078
+ - the current `budgetUsagePercent`;
1079
+ - the 7-day `percentTimeInBudget`;
1080
+ - `IN_BUDGET` change events and `hour.value` cost, which can date the stop to the hour within 14 days.
1081
+ - [seat] Because the effective budget includes rule increases and the daily lift, a report showing cost above the typed budget is not by itself an overspend. The month cap is enforced on the invoice.
1082
+ - [seat] A seller using an optimiser that rewrites budgets daily will see any other budget write overwritten. Change history does not name the writer, so the daily-edit pattern is the only clue.
1083
+ - [seat] A payment failure (`ADVERTISER_PAYMENT_FAILURE`, or a billing notification with `impact: CAMPAIGNS_SUSPENDED`) stops all delivery whatever the budgets, so no budget figure explains such a stop.
1084
+ - [seat] The figures most likely to be quoted wrongly are the 25% ceiling (superseded), the $10 performance-rule minimum (US dollars only), the $50 or $1 starting credit limit (the page conflicts with itself) and the budget limits table (it has internal inconsistencies). Each has a live read or a live error that supersedes it.
1085
+ - [seat] (gap fill) The day-level metrics of a day a campaign went out of budget cover only its in-budget hours, so that day's CVR, ACOS and ROAS describe those hours, and the missed-sales figure applies rates from served hours to hours that were not served.
1086
+ - [seat] (gap fill) A mid-month re-forecast against a plan meets Amazon's rule that the rest of the month is capped at each campaign's new daily budget × the days left; the plan's remaining amount can only be reached if the campaigns' summed budgets × days left can carry it.
1087
+ - [seat] (gap fill) A 207 on a budget write is acceptance, not confirmation; on SD (v3 reply without values, v1 issue #475) the read after the write is the record of what Amazon holds.
1088
+
1089
+ ## Verification
1090
+
1091
+ Verified 2026-11-09 by an adversarial verifier seat.
1092
+
1093
+ **Method.** The file was read whole. Every cited page was opened again by plain GET as a browser would:
1094
+ - Ads help pages from `advertising.amazon.com/help/<id>`;
1095
+ - Ads API guides as markdown from `https://d3a0d0y2hgofx6.cloudfront.net/en-us/<path>.md`;
1096
+ - OpenAPI specs from the `d1y2lf8k3vrkfu`, `dtrnk0o2zy01c` and `d3a0d0y2hgofx6` CloudFront documentation hosts, parsed locally for paths, media types, enums and `maxItems`;
1097
+ - release-note headings and bodies, library guides, what's-new and news pages;
1098
+ - the Seller Forums threads, practitioner pages, and research abstracts and records.
1099
+
1100
+ Each quote was compared verbatim against the page text, each page name against the page's own title, and each figure against today's page. Tags were checked: [official] is kept only for Amazon's own words. Searches looked for 2025–2026 Amazon announcements that would overturn a claim. Positions were checked against decision D233. All of them state facts, so none was moved to the seat's list; positions 3, 9, 14, 15, 18, 22, 23, 35 and 38 were corrected for content. About 310 claims were checked.
1101
+
1102
+ No Ads API host (`advertising-api*.amazon.com`), Login with Amazon (`api.amazon.com/auth`), Amazon Ads MCP server endpoint, SP-API host, Seller Central `GetHelpTopic` POST or signed-in page was called. The MCP tool catalogue was read only as static JSON from the documentation host. No seller data was used.
1103
+
1104
+ **Corrections (was → now).**
1105
+ 1. Two library guides, *How to plan and set up your advertising budget for Sponsored Products* and *Sponsored Products budget best practices* → one page, *Sponsored Products budget basics and best practices*. The `how-to-budget-sponsored-products` address 301-redirects to it. Fixed in A, B, G, stable item 3, positions 3, 4 and 17, and Pages read.
1106
+ 2. A: the short quote "Daily budgets are spent as quickly as possible" and "the next day" → the page's full sentences, including "at midnight when the daily budget resets". Added the SD v3 `deliveryProfile` enum (`as_soon_as_possible` only).
1107
+ 3. *Sponsored ads daily budgeting policy and options* → *New sponsored ads daily budgeting policy and options*.
1108
+ 4. CA forum quote ended at "the daily budget you've set" → completed with "multiplied by the number of days in that month". EU forum "same answer" → a similar answer with no percentage, on a thread tagged Sponsored display.
1109
+ 5. C: "Cut below today's spend stops spend" (paraphrase) → the help page's question and answer. Added "take effect immediately".
1110
+ 6. "A campaign cannot be switched between daily and lifetime" / "fixed at create" → "you can't switch from a daily budget to a lifetime budget once a campaign is live", with the copy-to-new-campaign route. Fixed in C, stable item 5 and position 9.
1111
+ 7. `OUT_OF_BUDGET` transitions "On SD" → on Sponsored Brands, "(for daily budget only)". Added SB `BILLING_ERROR`.
1112
+ 8. Page name *Computed status* → *Computed status and campaign status*.
1113
+ 9. The enums mapping table (v1, SP, SB) → added an SD column (`ACCOUNT_OUT_OF_BUDGET`) and the campaign and portfolio rows. Added that the v1 spec has `LIMITED` and the enums page does not, and that `SPEND_LIMIT_EXCEEDED` and `OUT_OF_REWARD_BUDGET` carry no description.
1114
+ 10. *Budget usage: getting started* → *Getting started with the budget usage API*.
1115
+ 11. E: added the September 2026 deprecation notice. Budget consumption notifications "are not carried forward in Stream v2", and the notice names the Campaign Management API instead. Fixed in E, N and position 14.
1116
+ 12. `percentTimeInBudget` "0 to 1, or -1" → "a decimal ranging from 0 to 1" (SP spec). No -1 is documented for it; -1 belongs to the initial recommendation's `dailyBudget`. Noted that SD shows the example `60.5` and SB gives no scale. Fixed in F, stable item 8, R3 and position 15.
1117
+ 13. "a result with no recommendation, which it explains as too little history" → Scenario 3's all-`null` result, quoted.
1118
+ 14. F seat note "no Ads API report type with the console budget report's columns", unqualified → the help page itself says the data is available "through the Advertising API", and neither seat found the report type. Fixed in open question 4.
1119
+ 15. Rule statuses → added the console's own list (Active, On hold, Paused, Upcoming, Expired) and that `ruleStatus` is a free string in the spec.
1120
+ 16. Lookback attributed to the overview and performance guides jointly → the overview's sentence, the performance guide's attribution-window wording and the help page's "previous 7 days", each quoted.
1121
+ 17. $10 minimum "only published figure … (2021)" → also stated on the current help page GNSMLANWNF344YBE, read today, and in US dollars only. Fixed in G, position 22, open question 9 and the seat's list.
1122
+ 18. Seat claim "A rule created with `type: DAILY` and a `daysOfWeek` list is the shape the guides show" → a conflict. The guide samples send `WEEKLY`/`weekly`, the spec enum is `DAILY` only, and `daysOfWeek` is "for weekly type rule". Fixed in G, open question 8, stable item 9 and position 18 ("weekdays" → weekly recurrence).
1123
+ 19. "SB and SD have the same family" → the per-campaign calls mirror under `/sb/` and `/sd/`, but bulk `budgetRulesAssociation` exists in the SP spec only. Added `pageSize` max 30. Fixed in R4.
1124
+ 20. *Budget rules: campaigns API* cited for association calls → the page is *Viewing changes to daily budgets for campaigns with budget rules* and covers rule-raised budget read-back. Association is in the schedule- and performance-based guides and the specs.
1125
+ 21. Recommended events quote "based on the products in your campaign and expected demand" (not verbatim) → "We'll recommend events based on the products in your campaign when we anticipate more demand and a need for an increased budget."
1126
+ 22. "SB and SD campaigns, and SP v2, carry `ruleBasedBudget`" → SB v4 and SD v3. SP v2 campaign management and the snapshots APIs are shut off (snapshots 2024-12-15), so those are history.
1127
+ 23. Budget rules history "SP and the SB equivalent" → SP, SB and SD endpoints, replacement "None".
1128
+ 24. Threshold conflict → the help table's 5 / 3 split, and the API guide giving both rules as 3 while saying the 20% rule was not met (internally inconsistent).
1129
+ 25. Budget rules launch "15 marketplaces" → 16 (US, CA, MX, BR, DE, ES, FR, IT, NL, UK, SA, AE, AU, IN, JP, SG). Title → *Budget rules now available in Amazon advertising console globally*.
1130
+ 26. Page titles corrected:
1131
+ - *Performance-based budget rules* → *Performance-based rules*
1132
+ - *Schedule-based budget rules* → *Schedule-based rules*
1133
+ - *Budget rules overview* → *Budget Rules overview*
1134
+ - *Portfolios: get started* → *Get started with Portfolios*
1135
+ - *Reporting v1: dates* → *Dates and historical data retention*
1136
+ - *Reporting v1: helpful concepts* → *Helpful concepts* (reporting v1)
1137
+ - *Gross and invalid traffic report* → *Gross and invalid traffic reports*
1138
+ - *Global campaigns* → *Global campaigns for Sponsored Products*
1139
+ - *Bulksheets: portfolios* → *Use portfolios with bulksheets*
1140
+ - *Invoices* → *Billing invoices overview*
1141
+ - *Global invoicing report* → *Billing invoicing report overview*
1142
+ - *Amazon Ads Agent* news → *Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent*
1143
+ - *unBoxed 2026 news announcements* → *The 11 biggest takeaways from unBoxed 2026*
1144
+ 27. `BUDGET_AMOUNT_INVALID` listed as shared by SP and portfolios → portfolios only (`PortfolioBudgetErrorReason`). Added the portfolio billing error reasons and the help page's current "campaign Cost doesn't exceed" wording.
1145
+ 28. v1 `recurrenceTimePeriod` → added the conflict: the spec has `MONTHLY`, while the enums page lists `OTHER`.
1146
+ 29. Seat note "Off-Amazon SP placements draw on the same campaign budget" → the spec descriptions are quoted (v1 "within the budget"; SP v3 "Restrict ad placements to Amazon owned-and-operated properties only"), with the help page's ambiguous "account for additional budget". Position 38 was rewritten to the quoted facts.
1147
+ 30. *Sponsored Products v1 campaigns report* as the source of "Only the `spCampaigns` report surfaces global campaigns" → the quote is from *Global campaigns for Sponsored Products*. The reporting page is *Migrating from: spCampaigns*, a v3-to-v1 field map.
1148
+ 31. Seat claim that adding across marketplaces "needs a conversion the API does not supply" → v1 reports carry `convertedCurrency.value` and `metric.totalCostConverted`. Only budget amounts on entities lack a converted field. Fixed in J, R6 and open question 12.
1149
+ 32. R6 `metric.cost` → `metric.totalCost` (v3 name `spend`, which requires `budgetCurrency.value`).
1150
+ 33. L and R6: IVT was readable only through the v3 gross-and-invalid reports → added v1 `metric.grossClicks`, `metric.invalidClicks` and `metric.invalidClickRate`, and noted that v3 shuts off on 2027-06-30.
1151
+ 34. N and open question 1: the reset time zone was not stated anywhere → added the v1 "aggregated based on each campaign timezone" (`timeZone.value`) and the SP recommendation's "Local time".
1152
+ 35. Billing "non-seller" for the whole billing API → the billing-profiles API is vendor-only ("does not support seller or ADSP accounts"). The other billing guides state no seller limit. Fixed in M, the R7 note, position 35 and open question 7.
1153
+ 36. Renaming quote → attributed to the help page, with the news page's own wording ("what was formerly the DSP and Ads Console").
1154
+ 37. MCP catalogue address `mcp/campaign-management.json` (now 404) → `mcp/campaign_management.json`. Added the `add_country_campaign` description.
1155
+ 38. Pages read "Ads API v1 ad groups and campaigns" → it is the DSP `/dsp/v1/campaigns` spec, not the sponsored-ads v1 API.
1156
+ 39. A → added the conflict between the v1 `PACE_AHEAD` "up to 25% more" and the help page's "15% front-loaded".
1157
+ 40. Limits table oddities → added the SB BR row and SB JP lifetime equal to daily.
1158
+ 41. Perpetua seat note "predates … Amazon's mid-month-change rule" → its month-cap formula agrees with that rule. Only the 100% policy postdates it.
1159
+ 42. Clear Ads quote "force the algorithm to relearn" (a blend of two sentences) → the body's "forces the algorithm to relearn" and the takeaway's "force the system to relearn".
1160
+ 43. P5 → added Helium 10's unmeasured claim "Pausing or cutting PPC budgets during stockouts can hurt rankings".
1161
+ 44. Hajiaghayi & Springer quote "which would forfeit later bidding opportunities" (not verbatim) → the abstract's own words.
1162
+ 45. Conitzer et al. [research, record] → [research, read]. Added the abstract's "multiplicity … occurs very rarely" next to the "large variations" finding, and moved the paper from the record-only list to the Research table.
1163
+ 46. Liu et al.: the arXiv title differs from the KDD title, and both are now given. Bergemann et al.: the journal title (*… Data-Driven Bid Algorithms …*, IJIO, June 2025) is now given.
1164
+ 47. O → added the 2026 expert-advice page *New sponsored ads tools help small businesses grow* (an intelligence dashboard across targeting, bidding and budget controls; no API named).
1165
+ 48. M → added the payment-failure page's "without pausing your campaigns" for a backup method, and the "$50 or equivalent pre-authorization" on a new card.
1166
+ 49. G → added `intraDaySchedule` `maxItems: 1` from the spec. The SB report sample uses legacy `/v2/hsa/` reporting, which shuts off on 2027-06-30.
1167
+
1168
+ **Removals.**
1169
+ 1. The value "-1" for `percentTimeInBudget`, wherever it appeared. No page documents it.
1170
+ 2. The second library-guide row in Pages read. It was the same page under a redirect, so the two rows were merged.
1171
+ 3. The seat claim that Amazon supplies no currency conversion at all. It was replaced by item 31.
1172
+
1173
+ **Verified unchanged** (not exhaustive):
1174
+ - the remaining help-page quotes in A–M, including the regulatory fees and the Canada refund dates;
1175
+ - the limits and default-budget figures;
1176
+ - the SD optimization multiples and auto-pause;
1177
+ - the spec paths, media types, enums and `maxItems` for SP v3, SB v4, SD v3, Portfolios v3, Advertisers, Billing (73 notification names, 10 status codes) and Change history (filters, 11 change types, 50–200 count, 90 days, SP and SB only);
1178
+ - the budget usage and average-daily-budget guides and the sharing-leftover guide;
1179
+ - the release-note dates;
1180
+ - the m19, Trellis, Intentwise (both), Optmyzr, Nova and Perpetua help quotes;
1181
+ - the research records for Balseiro & Gur, BKMM, Agarwal et al., AuctionGym and Özlük & Cholette.
1182
+
1183
+ **Still unreachable.**
1184
+ - Scale Insights: the blog returned 404, and a help-desk retry today still failed to resolve.
1185
+ - Helium 10 knowledge base: 403.
1186
+ - *Budget usage in the Amazon Ads API* (what's new): redirects and gives no article. Release note 2023-04-05 stands in.
1187
+ - Seller Central help content: behind the `GetHelpTopic` POST, not called by rule.
1188
+ - ACM Digital Library pages: not fetched.
1189
+ - An Amazon page for the Nova-reported ROAS beta: search showed only third-party copies.
1190
+
1191
+ ### Gap fill 2026-11-09
1192
+
1193
+ Three completeness critics raised three gaps and one contradiction. Each was researched by plain GET under the same limits (no Ads API host, Login with Amazon, MCP endpoint, SP-API host, `GetHelpTopic` POST or signed-in page was called; no seller data was used). About 40 pages were read or re-opened.
1194
+
1195
+ **Added.**
1196
+ 1. Gap 1 (plan-level pacing at agency scale). Added:
1197
+ - §J: how a global SP campaign's per-marketplace budgets are set (`marketplaceSettings`, the add-a-marketplace rule with `FIELD_VALUE_IS_NULL`, overrides without budget, `AUTO` / `MANUAL` allocation and that `AUTO` refuses marketplace budget updates, v1 `marketplaceBudgetAllocation` read-only), the per-marketplace delivery status, and that portfolios (the only monthly cap set as an amount) are per profile and per currency;
1198
+ - practitioners P7 (Helium 10 Budget Manager, Pacvue Budget Manager through SmartScout and Kepler, Skai Budget Manager and Budget Navigator, Perpetua Monthly Budget Tracker and Real-Time Budget Optimization, Optmyzr, Adbrew, Trellis Monthly Spend Pacer, JumpFly), with where they disagree and what a mid-month re-forecast carries from Amazon's rules;
1199
+ - R5b (plan-level reads), stable items 24–25, positions 52–54 and 56–58, open questions 14, 17 and 18.
1200
+ - Partly declined: Pacvue's own pages were unreachable (403; Wayback 502), so Pacvue is described only second-hand and from 2022. The critic's premise "re-forecasting mid-month against Amazon's monthly averaging" is a practice no page read describes: none of the tools says how it accounts for Amazon's averaging (open question 17). It is recorded as such, not filled from reasoning.
1201
+ 2. Gap 2 (SB v4 and SD v3 budget writes, SD v1 trap). Added to §K and R5:
1202
+ - SB `PUT /sb/v4/campaigns` (1–10 per call, `budget`, nullable `endDate`, reply echoes the campaign);
1203
+ - SD `PUT /sd/campaigns` (≤100, mutable fields named, `budgetType` `daily`, reply without values, read-back paths);
1204
+ - the SD v1 `SDCreateBudget` schema without `recurrenceTimePeriod`, re-read in the SD v1 spec, and issue #475 re-opened (open, no reply).
1205
+ - Stable items 22–23, positions 49–51, open question 16.
1206
+ - Declined in part, on the facts: the critic wrote that SB v4 `PUT` takes `budgetType DAILY/LIFETIME` and `endDate for lifetime`. The *Sponsored Brands v4* spec's `UpdateCampaign` has no `budgetType`; it is in `CreateCampaign` only ("For the lifetime budget type, `startDate` and `endDate` must be specified" is on the `BudgetType` enum used at create). The SD v3 `budgetType` enum is lower-case `daily`, not `DAILY`.
1207
+ 3. Gap 3 (what the missed-opportunity figures measure). Added §F2:
1208
+ - Amazon's own derivation of missed clicks, missed sales and the recommended budget, quoted from the library guide and the budget report's column definitions;
1209
+ - `sales7d` as the definition of SP sales, the sample inconsistencies in the SP spec and guide;
1210
+ - the seat's reading of what follows: model-on-model, attributed not incremental, in-budget rates applied to unserved hours, truncated daily metrics on out-of-budget days, and no published validation found.
1211
+ - Practitioners P8 (Perpetua's hourly study, Clear Ads, Kepler, Canopy, Ad Badger) and research (Heymann 2025; Pathak, Jeunen and Lambert 2026; Blake, Nosko and Tadelis re-opened). Stable item 21, positions 44–48 and 59, open question 15, three seat positions.
1212
+ - Corrected on the facts: the critic wrote that Clear Ads "reports a 2× gap between hours". Clear Ads gives 2× as its minimum threshold for dayparting, not as a measurement; its two example accounts are 14% against 6% (about 2.3×) and 11% against 9% (1.2×). The measured hourly data found is Perpetua's (about 3× between the morning peak and night). P2 and P8 now say so. The page also has an author in its metadata (George Meressa) and was modified 2026-11-03; P2's "no byline" is corrected.
1213
+
1214
+ **Settled (contradiction 1, Amazon Ads Agent).** Re-opened *Amazon Ads introduces Full-Funnel Campaigns, DVA+, and enhanced chat experience in AI-powered ad platform, Amazon Ads Agent* (news, 2026-09-29), *Ads Agent: An AI marketing assistant from Amazon Ads* (product page), *Understand delivery alerts and recommendations* (help GR6VEAG2EQWG56RD) and *Understand Advertiser Accounts* (help GXKXR56ZCMJ3WCS4). The pages agree once the name is separated from the feature:
1215
+ - Amazon Ads Agent is "the new name of the unified platform" that holds sponsored ads, Display, Video, and Audio, and Full-Funnel Campaigns;
1216
+ - the help centre's "Amazon Ads Agent (formerly known as Amazon DSP)" is the same platform name, written in DSP-specific passages (maximum average CPM, DSP accounts per country) where the old text said "Amazon DSP";
1217
+ - only the conversational experience in Amazon Ads Agent is a closed beta.
1218
+ This file is not the owner. Its own wording was aligned: §A (contrast item and seat note), §O (the renaming item, now three quoted sub-items; the earlier quote "brings together what was formerly the DSP and Ads Console" is not on the news page and was replaced by the page's own sentences), P-budgets-and-pacing-5 ("Display, Video, and Audio campaigns … now a campaign type in the Amazon Ads Agent platform") and new P-budgets-and-pacing-60. For the owner, `beyond/automation-and-amazon-tools.md` P13, these sources support wording that separates the platform (generally named, holds sponsored ads) from the closed-beta conversational experience inside it; `beyond/ad-products-and-eligibility.md` P45's quote is accurate as the help centre's wording but, read alone, names only the DSP side of the platform. Neither file was edited by this seat.
1219
+
1220
+ **Also corrected while re-reading.**
1221
+ - §D: the *Sponsored Brands v4* spec lists `PORTFOLIO_OUT_OF_BUDGET` in `CampaignServingStatus`, against the enums page's empty SB cell; recorded as a conflict and position 55.
1222
+ - §O and P-budgets-and-pacing-5 as above.
1223
+ - Unreachable list: the Helium 10 article, 403 as a page, was read through the help centre's public JSON; Pacvue's pages added as unreachable.
1224
+
1225
+ **Verification of the added text.** Pending verification.