In short: Two dated cutoffs will break your stack. Content API for Shopping shuts down on August 18, 2026, and Dynamic Search Ads auto-upgrade to AI Max in September 2026. A third change, the new monthly release cadence, ages your API version out faster than before. Everything else Google shipped (AssetGenerationService, cart_data_sales_view, Merchant API in Scripts) is upside you schedule on your own clock.
In January, Google shipped v23 of the Ads API and announced that from then on, a new version would land every month. I read the note twice. I’ve spent twelve years writing code against this API, and for most of them it was a slow surface you could visit once a year, bump a version number and forget.
Then I did what those years have taught me to do. I opened our codebase at Lynt and searched for shoppingcontent.googleapis.com. Every hit is a script that dies on August 18, 2026, the day the Content API for Shopping shuts down. A second date sits right behind it. In September 2026, every remaining Dynamic Search Ads campaign auto-upgrades into AI Max, whether you asked for it or not.
Those two clocks are the obligations of Google’s API year. Everything else the platform shipped is opportunity. AI creative services, product-level sales reporting, the Merchant API inside Google Ads Scripts. So I’ll walk the year in priority order, hardest deadline first. For each change, what it is, why it matters for your account, and the exact call, payload or migration to run.
I won’t leave any of it at “you should migrate.” A deadline without a concrete artifact is just anxiety. At every step you get the endpoint that replaces the old one, the experiment payload or the GAQL query, so you can see exactly what to build before the date arrives.
If you do one thing this quarter, make it these two checks. Confirm nothing in your stack still calls Content API v2.1, and inventory every DSA campaign you run so the September upgrade doesn’t surprise you. Those two are dated obligations. The AI, creative and reporting work below is upside you schedule when you choose.
Deadline one: the Content API for Shopping dies on August 18, 2026
This is the hardest date of the year, so it goes first.
What changed. Content API for Shopping v2.1 shuts down on August 18, 2026. Its successor, Merchant API v1, went GA in July 2025, and the intermediate v1beta already sunset on February 28, 2026. The old monolith is replaced by focused sub-APIs. datasources, products, inventories, reports, notifications.
Why it matters for your account. Anything that touches your feed through the old API stops working on that date. Feed uploads, supplemental feeds, custom labels, price and stock updates, disapproval reads. This is not a “nice to migrate”, it’s a hard cutoff. If a daily script keeps your prices in sync, it goes silent on August 18 and your feed drifts out of date until someone notices the lost revenue. I’ve seen that failure mode on real accounts, and the expensive part is never the outage itself, it’s the weeks nobody notices.
What to do. Rebuild against the sub-API structure. The migration is mechanical. The host, the path and the resource model change, the intent stays the same. Here is the before and after for the most common call of all, a product upsert:
# OLD: Content API for Shopping v2.1 (off on 2026-08-18)
curl -X POST \
"https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{ "offerId": "SKU-123", "title": "...", "price": {"value":"19.90","currency":"EUR"} }'
# NEW: Merchant API v1 (productInputs sub-API)
curl -X POST \
"https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert?dataSource=accounts/{account}/dataSources/{ds}" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{ "offerId": "SKU-123", "contentLanguage": "en", "feedLabel": "US",
"productAttributes": { "title": "...", "price": {"amountMicros":"19900000","currencyCode":"EUR"} } }'
(Endpoint hosts and the sub-API split are from Google’s docs. Confirm the exact request body for your resource against the Merchant API reference before you ship, because field names changed, not just the URL.)
The destination is genuinely better than the thing it replaces, which is the part nobody tells you. Three improvements you inherit for free by migrating:
What the new API gives you over v2.1
- Machine-readable errors ErrorInfo, so retry logic stops string-matching
- Report pagination Raised from 250 to 1,000 rows per page (fewer calls)
- Partial updates product patch changes one field, not a full re-push
- Surface model Focused sub-APIs instead of one monolith
If you’ve been meaning to harden your feed tooling, the shutdown is the forcing function. Rebuild once, and exit with cleaner error handling and fewer round-trips than v2.1 ever allowed.
Deadline two: Dynamic Search Ads become AI Max in September 2026
The second dated change, and the one that reshapes how much control you hold.
What changed. AI Max for Search reached GA on April 15, 2026 after launching in beta in May 2025. From September 2026, Google auto-upgrades all remaining DSA, automatically-created assets and campaign-level broad match into AI Max. After that you can’t create a new DSA campaign. Not in the UI, not in Editor, not through the API.
Why it matters for your account. The trade is control for lift. With the full feature set (search-term matching plus text customization plus final-URL expansion) Google reports about +7 % conversions or conversion value over term matching alone. In return you hand the model the matching, the asset text and the landing-URL choice. If you have brand or compliance rules baked into your DSA setup by hand, a silent September upgrade can start sending traffic to URLs and copy you never signed off on. Automation you didn’t measure is automation you don’t control.
What to do. Don’t wait to find out what the upgrade does to your numbers. Measure it now. Google shipped the guardrails and the measurement hooks through the API in step with the feature, so you can A/B the switch on your own data before it’s mandatory:
enable_ai_max (v21, Aug 2025)
The switch itself, a field on the Search campaign.
targeting_expansion_view (v22, Oct 2025)
Keywordless AI Max metrics. Query it to see what the expansion actually matched.
matched_location_interest_view (v23, Jan 2026)
Geo-level AI Max performance, so you see which locations the model leaned into.
Text guidelines (v23.1, Feb 2026)
Term exclusions and messaging restrictions, so brand and compliance rules survive automation.
ADOPT_AI_MAX experiment (v24.1, May 2026)
A controlled A/B to read the CPA and ROAS delta before the forced September switch.
The practical move is the last one. Create an ADOPT_AI_MAX experiment across your accounts and let it run. Read the CPA and ROAS delta by comparing the experiment arm campaigns against control. Then a normal GAQL pull shows you what the keywordless expansion actually matched and earned:
-- After ADOPT_AI_MAX runs: inspect automated expansion performance.
-- Calculate trial/control delta separately from the experiment arm campaigns.
SELECT campaign.name,
metrics.conversions,
metrics.conversions_value,
metrics.cost_micros
FROM targeting_expansion_view
WHERE segments.date DURING LAST_30_DAYS
(ADOPT_AI_MAX is one of the new experiment types shipped in v24.1; targeting_expansion_view is the v22 reporting resource. Confirm field availability against the release notes for the version you call.)
The rolling deadline: a release every month
Not a single date, but a clock that’s now always ticking.
What changed. From v23 (January 28, 2026) the Google Ads API shifted to a monthly release cadence. Four major versions a year plus monthly minor versions, with one year of support per major version.
Why it matters for your account. Faster access to features, and faster obsolescence. Versions age out on a published schedule. v20 reaches end-of-life in June 2026, v21 in August, v22 in October. A monthly minor bump is non-breaking. Missing a major sunset means your scripts start returning errors with no warning beyond a date in a calendar you weren’t watching.
What to do. Pin your version and watch the sunset calendar. The cheapest insurance is a recurring check that knows which version you call and alerts about 60 days before it expires. The whole thing is a few lines:
# Recurring guardrail: alert ~60 days before your pinned version sunsets.
from datetime import date
PINNED = "v22" # the version your client is pinned to
SUNSET = {"v20": "2026-06-01", "v21": "2026-08-01", "v22": "2026-10-01"} # sunset-dates page
sunset = SUNSET.get(PINNED) # None until your version reaches the published calendar
if sunset and (date.fromisoformat(sunset) - date.today()).days < 60:
alert(f"{PINNED} sunsets {sunset}; schedule the version bump") # major bump needs a re-test
A 404 from a sunset version is a self-inflicted outage. Treat version governance as a standing recurring task, not a fire drill.
Now the upside: AI moves into creative and feed
With the deadlines handled, the rest of the year is leverage you adopt on your own schedule. Two services turned asset and feed work into something you can script across thousands of SKUs.
- AssetGenerationService (Ads API, v22, closed beta). AI text and image generation, with PMax image enhancement and extraction; v23.2 added
VideoEnhancementfor Google-generated video. Creative generation moves out of the UI into a programmable layer. - Product Studio (Merchant API, alpha since April 2025). AI-generated product titles and descriptions, plus AutomatedDiscounts for real-time pricing. Rewriting titles at the API level means bulk-improving thousands of SKUs without manual work.
The feed half of this is the one I take personally. We spent two years building Boostera at Lynt, an AI layer that enriches Merchant Center feeds, because feed quality is the ceiling on Shopping and PMax performance. Better titles move more revenue than most bid changes do. Product Studio brings a piece of that capability into the platform itself.
The pipeline this unlocks reads a SKU from the feed, generates a compliant title, description and image assets, and pushes them straight into the asset group, with no manual Canva step in the middle. Both services are pre-GA. Treat them as a pilot on a slice of the catalogue, not a catalogue-wide rollout, until they graduate.
The plumbing: Ads and Merchant finally meet
The most underrated change of the year is unglamorous. The two halves of an e-commerce account end up in one place.
What changed. As of April 22, 2026, the Merchant API is reachable from Google Ads Scripts. Combined with product_filters (conditional feed sharing with Google Ads, shipped November 2025) and CartDataSalesView (v24), the loop between feed health and ad spend closes inside one environment.
Why it matters for your account. The old split, campaigns in Scripts and the feed managed somewhere else, meant a disapproved product kept burning budget until a human noticed. Now one script can react to a feed disapproval by pausing a campaign or pulling the SKU from a PMax listing group. And CartDataSalesView brings cart-level revenue per sold SKU into the API. It carries revenue, not spend, so real SKU ROAS takes two queries. Start with the revenue side:
-- Revenue per sold SKU from cart data (v24+)
SELECT segments.product_item_id,
metrics.revenue_micros,
metrics.all_revenue_micros
FROM cart_data_sales_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.revenue_micros DESC
Then pull the cost side from shopping_performance_view and join the two results on product_item_id:
-- Cost per advertised SKU; join to the revenue query on product_item_id
SELECT segments.product_item_id,
metrics.cost_micros,
metrics.conversions_value
FROM shopping_performance_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
Those joined rows are the input to a profitability tiering you used to rebuild by hand every month. We run customer-level business reporting for clients in BigQuery, and half the work has always been stitching ad data to product data. That stitch now lives in two API calls instead of a feed export, and you can validate it. Check that item IDs match on both sides before trusting the ratio. (The resource is cart_data_sales_view, shipped in v24; confirm segment availability in the release notes for your version.)
The year on one timeline
Every major version below comes from the official release notes; the Merchant milestones from the Merchant API latest updates. The right-hand column is the only one that should drive your calendar. Everything flagged HARD is non-negotiable.
| Date | Release | What landed | Clock? |
|---|---|---|---|
| 2025-07 | Merchant v1 GA | Official successor to Content API for Shopping | upside |
| 2025-08 | Ads v21 | enable_ai_max on Search campaigns | upside |
| 2025-10 | Ads v22 | AssetGenerationService (beta); targeting_expansion_view; PMax image enhancement | upside |
| 2025-11 | Merchant | product_filters, conditional feed sharing with Google Ads | upside |
| 2026-01 | Ads v23 | Monthly cadence begins; matched_location_interest_view; granular invoices | cadence |
| 2026-02 | Ads v23.1 | Text guidelines for PMax/Search; BenchmarksService; EU political ads | upside |
| 2026-02-28 | v1beta sunset | Merchant API v1beta switched off | PAST |
| 2026-04 | Ads v24 · Scripts | cart_data_sales_view; RETAIL_FILTER; Merchant API in Google Ads Scripts | upside |
| 2026-08-18 | Content API OFF | Content API for Shopping v2.1 shuts down; migrate the feed before this date | HARD |
| 2026-09 | DSA → AI Max | DSA, ACA and broad match auto-upgrade; no new DSA after | HARD |
Download the full quarter plan for your AI
The whole checklist above, rewritten as a brief you can paste straight into Claude or any capable coding agent. It audits your stack for old Content API calls, sets up the AI Max experiment and builds the version watch. Leave your email and the file is yours.
One file, one list. I only write when there's something worth reading.
The first hour of work
Not the whole migration. A grep. Search your codebase for shoppingcontent.googleapis.com and write down every job that comes back. That list is your August 18 exposure, and it took you ten minutes.
Then spend the rest of the hour creating one ADOPT_AI_MAX experiment on the account where DSA matters most, so September arrives as a measured change instead of a surprise. The deadlines are Google’s. Whether they hit you as outages or as upgrades is still your call.
FAQ
What exactly breaks on August 18, 2026?
Anything still calling Content API for Shopping v2.1. That means feed uploads, supplemental feeds, custom labels, price and stock updates, disapproval reads. Merchant API v1 has been the replacement since July 2025, and the v1beta intermediate already sunset on February 28, 2026.
Is the Merchant API migration just a new URL?
No. The host and path change, but so does the resource model. One monolith becomes focused sub-APIs (datasources, products, inventories, reports, notifications), field names differ, and you gain ErrorInfo, 1,000-row pagination and partial patch. Treat it as a rebuild that leaves you better off, not a find-and-replace.
Can I keep running Dynamic Search Ads after September 2026?
No. Existing DSA, automatically-created assets and campaign-level broad match auto-upgrade to AI Max, and you can no longer create new DSA campaigns through the UI, Editor or API. Run an ADOPT_AI_MAX experiment before then so the switch isn’t a surprise.
Is the monthly cadence a breaking change?
The minor monthly versions are non-breaking and safe to adopt continuously. The risk is letting a major version reach its one-year end-of-life unnoticed, because that is when calls start failing. v20 sunsets June 2026, v21 August, v22 October.
Is the +7 % AI Max figure guaranteed?
It’s Google’s reported lift for the full feature set versus search-term matching alone. A vendor figure, not a promise for your account. Run an ADOPT_AI_MAX experiment and read your real CPA and ROAS delta before you commit.
Where do I confirm a specific version's sunset date or a payload shape?
The Google Ads API sunset-dates page lists end-of-life per version; the release notes detail each version’s changes and the exact request shapes. Both are linked throughout this piece. Confirm the body before you ship, because field names changed, not just URLs.