Google-Ads-API-Version-23.1

Google Ads API Version 23.1: Every Change, What It Does, and What Developers Need to Do Now (February 2026)

By

Google released version 23.1 of the Google Ads API on February 25, 2026. The update is classified as a minor version, which means it introduces new capabilities without removing or altering existing functionality in a way that requires a full API migration. Alongside v23.1, Google simultaneously released three additional minor versions — v20.2, v21.1, and v22.1 — each carrying a single targeted update to address compliance requirements under the EU Political Ads Regulation. This parallel release pattern is a deliberate strategy by Google to make a specific compliance field available across all currently supported API versions, not just the latest one.

This post covers every change introduced in v23.1 in full technical detail: what each update is, why it exists, and how developers and advertisers should respond to it. It also places the release within the broader context of the Google Ads API’s release cadence and the ongoing shift toward automated campaign types that require programmatic controls to manage safely. Where a feature connects directly to changes happening at the campaign management layer — particularly around AI-generated ad copy — this post includes that context so practitioners understand the full picture, not just the API fields.

If you are a developer maintaining a Google Ads integration, a PPC manager who works with third-party tools, or an agency managing accounts at scale, every section of this update is relevant to your work.

What Type of Update Is Version 23.1?

The Google Ads API uses a two-tier versioning system. Major versions — v19, v20, v21, v22, v23 — introduce breaking changes and require updated endpoints. Minor versions — v19.1, v20.2, v21.1, v22.1, v23.1 — are additive only. They add new fields, methods, error codes, and services without removing anything already present in the corresponding major version. Existing code running against v23 continues to work after v23.1 is released, but to access the new capabilities, developers must upgrade their client libraries and update their client code.

Google was explicit about this requirement in its official release announcement: “To use the new v23.1 features, you must upgrade your client libraries and client code. All the updated client libraries and code examples have been published.” The updated libraries are available for all officially supported languages, and code examples covering the new features have been published alongside them.

This distinction between major and minor versions matters for planning. Developers managing tight release cycles should be able to adopt v23.1 features incrementally, without the disruption that a major version upgrade typically requires in terms of endpoint changes and full regression testing.

Account Management Updates

Domain Restriction for Advertising Partners

The advertising_partner_properties.allowed_domain field has been added to both the ProductLinkInvitation and ProductLink resources. The purpose of this addition is straightforward: it restricts an advertising partner to running ads only on a specific domain.

In practical terms, when a product link invitation is sent to an advertising partner, the allowed_domain field can now be populated with a specific domain. Once that link is accepted and active, the partner’s ability to advertise is restricted to that domain only.

This matters for businesses that use reseller or partner structures, where one entity manages advertising on behalf of another within defined boundaries. Without this field, domain-level guardrails had to be enforced through separate processes outside the API. With it, the restriction is built directly into the account linking structure and is queryable through the ProductLink resource.

EU Political Advertising Declaration at the Account Level

The contains_eu_political_advertising field has been added to the Customer resource. This field returns an EuPoliticalAdvertisingStatusEnum value and reflects the account-level declaration status regarding whether the account runs political advertising targeted at the EU.

This field is part of a broader set of compliance changes Google has been rolling out since it announced it would stop serving political advertising in the EU ahead of new regulation that came into effect in October 2025. The simultaneous release of v20.2, v21.1, and v22.1 — each of which adds this exact same field to the Customer resource in its respective major version — confirms that this is a compliance requirement, not an optional feature. Developers on older supported versions need to handle this field to remain aligned with Google’s EU regulatory requirements.

What EuPoliticalAdvertisingStatusEnum returns specifically depends on whether the account has made a declaration, has a pending declaration, or has been flagged as containing political content without a declaration. Querying this field programmatically allows tools that manage multiple accounts to surface compliance gaps at scale, which is particularly relevant for agency platforms and large advertiser portfolios operating across EU markets.

Campaign Updates

Text Guidelines for AI-Generated Ad Copy

The most significant change in v23.1 at the campaign level is the addition of the Campaign.text_guidelines field to the Campaign resource. This field applies to Performance Max and Search campaigns and provides programmatic access to a feature that was previously only available through the Google Ads UI — and even then, only to a restricted beta group until February 26, 2026, when Google expanded the feature globally.

Text guidelines exist because AI-generated ad copy has created a genuine operational problem for a large number of advertisers. When text customization is enabled in Performance Max or AI Max for Search, Google’s systems generate headlines and descriptions dynamically. The system aims to maximize performance, but that optimization does not account for brand voice, legal restrictions, competitive sensitivities, or compliance requirements. An advertiser in the financial services sector cannot allow its automated campaigns to use the word “guaranteed” in relation to returns. A luxury brand cannot allow price comparisons. A pharmaceutical advertiser cannot allow certain clinical claims. Before text guidelines, managing these constraints required either disabling text customization entirely — losing the performance uplift from dynamic generation — or manually reviewing AI-generated assets after the fact.

Text guidelines address this by allowing advertisers to define what language cannot appear in AI-generated assets before those assets are generated.

Within Campaign.text_guidelines, there are two distinct control mechanisms:

Term Exclusions (term_exclusions): These are exact words or phrases that must not appear in any AI-generated asset for the campaign. The exclusions are not case-sensitive — entering “Cheap” will also suppress “cheap” and “CHEAP.” Advertisers can add up to 25 term exclusions per campaign. These function as hard stops within the generation system: assets containing excluded terms are not produced and will not serve. Importantly, term exclusions are language-specific. Excluding the English word “Cheap” does not prevent its equivalent in French, German, or Japanese from appearing in a multilingual campaign. For cross-language restriction, the second mechanism is required.

Messaging Restrictions (messaging_restrictions): These accept natural language instructions about what the campaign’s AI-generated copy should not say, imply, or reflect. Unlike term exclusions, which match specific strings, messaging restrictions interpret intent. A restriction stating “Do not imply our products are discounted” will suppress not just the word “discounted” but related terms like “cheap,” “bargain,” and “on sale.” Advertisers can add up to 40 messaging restrictions per campaign. These restrictions are also not language-bound: a restriction written in English applies to assets generated in German, Dutch, and other supported languages within the same campaign.

There are operational nuances that developers and campaign managers need to understand. First, term exclusions cannot block assets that include prices. If an advertiser excludes the dollar sign, assets containing prices expressed in other formats can still appear. For price-related controls, messaging restrictions are the appropriate tool — specifically the instruction “Don’t generate assets with prices.” Second, Google’s documentation makes clear that vague or broad restrictions that eliminate too many generation possibilities will reduce the pool of available assets and can measurably reduce campaign performance. The documentation explicitly warns: “Adding inefficient or counterintuitive guidelines may cause removal of a large number of good text customization assets, and lead to drop in campaign performance.” Each restriction should be specific, purposeful, and narrowly scoped.

For developers building integrations, the Campaign.text_guidelines field is queryable and mutable through the standard Campaign resource endpoints. Campaigns that have text guidelines applied will reflect the current term_exclusions and messaging_restrictions arrays when queried.

The global beta expansion of text guidelines on February 26, 2026 — one day after the v23.1 API release — means that the API support and the UI availability are now synchronized. Developers can now build campaign management tools that expose text guideline configuration to advertisers without needing to direct them to the UI for this step.

FIXED_CPM Campaign Status Reasons

Four new values have been added to CampaignPrimaryStatusReason to provide status information specific to campaigns using the FIXED_CPM bidding strategy. The new values are:

  • CAMPAIGN_NOT_BOOKED: The campaign exists but has not yet been booked.
  • BOOKING_HOLD_EXPIRING: The campaign’s booking hold is approaching its expiration.
  • BOOKING_HOLD_EXPIRED: The booking hold has expired.
  • BOOKING_CANCELLED: The booking has been cancelled.

FIXED_CPM is a manual bidding strategy for campaigns purchased at a fixed cost per thousand impressions, typically used in reservation-based buying for YouTube and video campaigns. The absence of granular status reasons for these campaigns had been a gap in the API’s transparency for this buying type. These four additions allow developers to surface booking state information programmatically and build alerts or workflow automation around booking lifecycle events.

Video Campaign Reservation Fields

Two fields have been added to Campaign.VideoCampaignSettings. The reservation_ad_category_self_disclosure field is writable and allows advertisers to declare the ad category for reserved video buys. The booking_details field is read-only and returns metadata associated with a reservation booking. These fields extend the API’s coverage of reservation-based video campaign management, which previously required manual steps in the Google Ads UI for certain booking-related operations.

EU Political Advertising Declaration at the Campaign Level

The Campaign.missing_eu_political_advertising_declaration field has been added to allow querying and filtering of campaigns that are missing the required EU political advertising declaration. This is the campaign-level counterpart to the account-level contains_eu_political_advertising field added to the Customer resource.

In practice, this field enables developers to run compliance audits across campaign portfolios, identifying which specific campaigns lack a declaration. For advertisers operating in the EU or running campaigns that could be interpreted as political content, this field is important for ensuring that the account does not fall out of compliance with the regulation Google began enforcing in October 2025.

Conversions Update

YouTube Follow-On Views Tracking

ConversionActionCategory.YOUTUBE_FOLLOW_ON_VIEWS has been added to support a specific conversion attribution pattern: a user sees an ad on YouTube and subsequently watches another video from the same channel. This is the definition of a YouTube follow-on view, and it now has its own conversion action category in the API.

This matters for advertisers and media owners running YouTube channel promotion campaigns. Attribution for brand lift and channel growth has historically been difficult to capture within Google Ads conversion frameworks. Follow-on view attribution connects a paid ad impression to downstream organic viewing behavior from the same brand’s channel, providing a measurable link between paid YouTube spend and channel audience development. Developers building attribution models or custom conversion dashboards can now include this category as a distinct action type in their reporting and bidding configurations.

General Update

CriterionErrorEnum Addition

CANNOT_TARGET_ONLY_UNDETERMINED has been added to CriterionErrorEnum. This error is returned when a targeting configuration attempts to target only the undetermined category within a demographics dimension — for example, targeting only users whose age or gender is unknown, without including any determined demographic segments.

While this is a narrow error code addition, it improves error handling clarity for developers building demographic targeting logic. Previously, this condition may have produced a generic error that was harder to diagnose. The specific error code enables better user-facing messaging in campaign management tools.

Incentives Updates

New Error Codes for Incentive Management

Two new error codes have been added to IncentiveErrorEnum: MAX_INCENTIVES_REDEEMED and ACCOUNT_TOO_OLD. These error codes become active for API requests made on or after March 11, 2026.

MAX_INCENTIVES_REDEEMED is returned when an account has already redeemed the maximum number of incentives available to it. ACCOUNT_TOO_OLD is returned when an account is not eligible for an incentive because it has been active for too long to qualify for new customer or trial incentive programs.

These additions extend the error handling framework introduced in v23 for the IncentiveService, which was a major addition in the January 2026 release. The IncentiveService allows partners to programmatically fetch and apply Google Ads incentives — including “Choose Your Own” (CYO) incentive options — on behalf of their customers. The two new error codes in v23.1 make the incentive workflow more robust by providing precise failure reasons when redemption attempts are declined, rather than returning a generic failure. Developers building partner tools that use the IncentiveService should add handlers for both codes before March 11, 2026.

Planning Updates

Date Breakdowns in GenerateBenchmarksMetrics

The GenerateBenchmarksMetrics method within BenchmarksService now supports date-level breakdowns using a BreakdownDefinition. Prior to this update, benchmark metrics were returned as aggregated figures across the specified period. With date breakdown support, developers can request benchmark data segmented by date within the response, making it possible to identify trends in benchmark performance over time rather than viewing only a single aggregated number.

This is particularly useful for advertisers and agencies comparing their campaign performance to industry benchmarks across specific periods — for example, identifying whether their YouTube ad performance trailed benchmarks specifically during a high-competition period like Q4, versus underperforming relative to benchmarks uniformly throughout a quarter.

The BenchmarksService itself was introduced in v23, making this a second-generation enhancement to a relatively new service.

Google Display Network Added to Demand Gen Reach Forecasting

GOOGLE_DISPLAY_NETWORK has been added as a targetable surface for Demand Gen Max Conversions in ReachPlanService.GenerateReachForecast. This allows developers and media planners to include the Google Display Network in reach forecasts for Demand Gen campaigns optimized for maximum conversions.

Demand Gen campaigns were expanded to include the Google Display Network as a placement surface in 2025, completing the consolidation of Discovery ad inventory. The reach forecasting API lagged behind the campaign delivery capability — forecasts previously could not include GDN reach in Demand Gen projections. This addition closes that gap, allowing pre-campaign planning tools to produce accurate reach estimates that reflect where Demand Gen ads actually serve.

Historical Trend Line Data in GenerateTrendingInsights

When using ContentCreatorInsightsService.GenerateTrendingInsights with a topic-based search, the response now includes historical trend line information within TrendInsightDataPoint, as part of TrendInsights. This enables developers to surface not just current trending data but a historical trajectory, providing context for whether a trend is accelerating, plateauing, or declining.

For content planning tools, brand safety analysis platforms, and media buying systems that use trend data to inform campaign decisions, this historical dimension adds meaningful analytical depth. A topic that appears to be trending strongly at a given moment might look very different when its trend line over the preceding 90 days is visible alongside it.

Reporting Updates

Frequency-Based Unique User Metrics

Five new reporting metrics have been added that break down unique user reach by exposure frequency:

  • unique_users_two_plus — users who saw the ad at least twice
  • unique_users_three_plus — users who saw the ad at least three times
  • unique_users_four_plus — users who saw the ad at least four times
  • unique_users_five_plus — users who saw the ad at least five times
  • unique_users_ten_plus — users who saw the ad at least ten times

These metrics address a consistent gap in programmatic campaign measurement. Reach reporting has historically been binary: unique users who saw an ad at least once. Frequency caps and effective frequency planning have been based on that single figure. But effective frequency — the number of exposures required to produce a conversion or brand recall lift — varies significantly by campaign objective, creative format, and audience. The five new frequency-threshold metrics allow advertisers to analyze how much of their reached audience has seen the ad at different exposure levels.

In practical terms: if a campaign reaches 1 million unique users at least once but only 50,000 at least five times, that tells a very different story about frequency distribution than a campaign that reaches 500,000 users at least five times. Brand campaigns targeting recall often require multiple exposures to be effective. Direct response campaigns may see diminishing returns after two or three exposures. These metrics make it possible to build frequency analysis directly into API-based reporting rather than approximating it from impression and reach aggregates.

VERTICAL_ADS_DATA_FEED in Search Term Match Source

VERTICAL_ADS_DATA_FEED has been added to SearchTermMatchSourceEnum. This value indicates that a search term match was sourced from a vertical ads data feed — for example, Travel Ads entity targeting where the matching was driven by property or entity data from the feed rather than from traditional keyword or URL targeting.

This addition matters for transparency in search term reporting for campaigns using vertical ad formats. Advertisers running Travel Ads or other vertical formats that rely on structured data feeds have historically had limited visibility into why specific search terms triggered their ads. The new source enum value makes it possible to identify feed-sourced matches distinctly in reports, enabling more precise analysis of how vertical feed data is influencing search term coverage.

YouTubeVideoUpload Service

Native Video Upload Through the Google Ads API

v23.1 introduces the YouTubeVideoUpload service — a new service that enables uploading and managing YouTube videos directly through the Google Ads API, without requiring a separate call to the YouTube Data API. The YouTubeVideoUpload resource supports fetching upload status and metadata for videos processed through the service.

Important technical constraint: The YouTubeVideoUpload service is only supported for REST and the Python client library. It is not available through gRPC-based client libraries in other languages. Developers using Java, .NET, Ruby, Go, or PHP client libraries cannot access this service through their standard library path; they would need to use direct REST calls instead.

The practical value of this addition is meaningful for creative production workflows. Previously, uploading a video for use as a Google Ads asset required two separate API integrations: first, a call to the YouTube Data API to upload the video and retrieve a YouTube video ID; then a call to the Google Ads API to attach that video ID as an asset. Developers building ad creation or creative management workflows had to maintain credentials and error handling for two separate systems. The YouTubeVideoUpload service consolidates these steps, allowing the video upload and asset creation to be handled within a single API integration.

The service also provides upload status tracking through the YouTubeVideoUpload resource, which addresses a secondary pain point: monitoring the state of video uploads within automated workflows. Previously, confirming that a video was processed and available for use in ads required either polling the YouTube Data API or manual verification.

EU Political Advertising: The Minor Version Releases (v20.2, v21.1, v22.1)

Google released three additional minor versions alongside v23.1, each on February 25, 2026. These are v20.2, v21.1, and v22.1. Each version adds a single change: the contains_eu_political_advertising field to the Customer resource, which returns an EuPoliticalAdvertisingStatusEnum value.

The simultaneous release across four versions reflects Google’s approach to regulatory compliance requirements. Rather than requiring developers to upgrade to the latest major version to access a compliance-critical field, Google has backported the field to all currently supported major versions. This means developers running on v20, v21, or v22 can access the EU political advertising declaration status without performing a major version migration.

The EU Political Ads Regulation that took effect in October 2025 requires platforms to ensure that political advertising targeting EU users is properly declared. Google’s implementation, as reflected across these API versions, requires that accounts running such content explicitly declare their status. The programmatic access to this declaration status — available now across all supported versions — allows compliance tools and agency management platforms to audit declaration status at scale.

Developers who have not yet migrated off v20 or v21 should note that these minor version releases provide a clear signal: Google is actively supporting these older major versions with targeted additions, but migration to v23 remains the appropriate path for accessing the full set of current capabilities.

How to Upgrade to Google Ads API v23.1

Upgrading to v23.1 from v23 does not require changes to your API endpoint. The endpoint structure for minor versions is the same as the corresponding major version. What the upgrade does require is updating your client library package to the latest published version and incorporating any new field references in your code where you intend to use them.

Google’s official guidance is direct: upgrade the client library and client code to access the new features. The updated libraries are published across all supported languages through their respective package managers. For developers not ready to adopt all new features immediately, the upgrade is still recommended to ensure your library version accurately reflects the current API schema, which affects validation and error handling.

For teams managing migration paths across multiple API versions, the parallel minor version releases for v20.2, v21.1, and v22.1 mean that the EU political advertising compliance update is available without requiring a major version upgrade — but accessing all other v23.1 features requires being on v23.

The sunset timeline for older versions is a factor here. v19 was sunsetted on February 11, 2026 — all v19 requests began failing on that date. v22 is scheduled for sunset in late 2026. Developers currently on v20 or v21 should have a migration to v23 on their roadmap, particularly given that Python 3.9 support will also be affected when v22 sunsets.

Google Ads API Version History: Where v23.1 Fits

Understanding the cadence of Google Ads API releases helps contextualize both the content and the frequency of updates. Version 23.1 was released February 25, 2026 — exactly four weeks after version 23, which was released January 28, 2026. That is a notably fast interval for a minor version release.

The release history is:

Version Release Date
v23.1 February 25, 2026
v23 January 28, 2026
v22 October 15, 2025
v21 August 6, 2025
v20 June 5, 2025
v19.1 April 2025
v19 February 2025
v18 October 2024
v17.1 August 2024
v17 June 2024

Google announced in May 2025 that it was moving to a faster release cadence to make product features available in the API sooner after UI launch. The release of v23.1 just four weeks into the v23 cycle is consistent with that faster cadence. Developers should expect minor version releases to occur more frequently than in prior years and should plan their library update processes accordingly.

Practical Implications for Developers and Advertisers

Taken as a whole, v23.1 is a coherent update rather than a collection of unrelated additions. Several of the changes cluster around a common theme: giving advertisers programmatic control over areas where Google’s AI automation had previously operated without developer-accessible constraints.

Text guidelines for Performance Max and Search campaigns are the clearest example of this. The YouTubeVideoUpload service reduces friction in creative workflow automation. The frequency-based unique user metrics give advertisers better analytical tools for understanding how their automated campaigns are actually serving against audiences. The expanded benchmark date breakdowns help advertisers compare their results to industry data at a more granular level. Even the EU political advertising fields — which are compliance-driven — fit within this theme: they give developers tools to audit and enforce a compliance state that was previously only manageable through the UI.

The FIXED_CPM bidding status reasons and video reservation fields follow the same logic, extending programmatic visibility into campaign states that were previously opaque in the API.

For agencies and SaaS tools built on the Google Ads API, the combined effect of these additions is a meaningfully more complete API surface. Features that previously required manual UI interaction or separate YouTube API calls can now be handled within a single, unified integration.

Frequently Asked Questions About Google Ads API Version 23.1

What is Google Ads API version 23.1? Google Ads API version 23.1 is a minor version update to the Google Ads API, released on February 25, 2026. It adds new fields, services, error codes, and reporting metrics without removing or breaking any existing functionality present in v23. Developers must upgrade their client libraries to access the new features.

Does upgrading to v23.1 require changing my API endpoint? No. Minor version upgrades within the same major version do not require endpoint changes. The endpoints used for v23 continue to work with v23.1. Upgrading requires updating the client library version and updating client code to reference any new fields or services you want to use.

What are text guidelines in the Google Ads API? Text guidelines is a campaign-level feature accessed via the Campaign.text_guidelines field, added in v23.1. It allows developers to programmatically set two types of controls over AI-generated ad copy in Performance Max and Search campaigns: term exclusions (specific words or phrases that must not appear in generated assets, up to 25 per campaign) and messaging restrictions (natural language instructions about tone and content, up to 40 per campaign).

How do term exclusions differ from messaging restrictions? Term exclusions suppress specific strings from appearing in AI-generated ad copy. They are case-insensitive but language-specific — an English exclusion does not apply to the same concept in another language. Messaging restrictions use natural language to express intent and are interpreted semantically, meaning a restriction about avoiding “discount” language will also suppress related terms. Messaging restrictions apply across all languages in the campaign.

Can text guidelines prevent AI-generated assets from including prices? Term exclusions cannot block price references because price-related content is exempt from term exclusion filtering. To prevent price references from appearing in AI-generated copy, use the messaging restriction “Don’t generate assets with prices.”

What is the YouTubeVideoUpload service? The YouTubeVideoUpload service is a new API service introduced in v23.1 that allows developers to upload and manage YouTube videos directly through the Google Ads API. It eliminates the need to make a separate call to the YouTube Data API before attaching a video as a Google Ads asset. The service is only supported for REST and the Python client library.

Which programming languages support the YouTubeVideoUpload service? In v23.1, the YouTubeVideoUpload service is only available via REST and the Python client library. It is not supported through the Java, .NET, Ruby, Go, or PHP client libraries. Developers using those languages who need to upload videos through the Google Ads API must use direct REST calls for this service.

What are the new unique user frequency metrics? v23.1 adds five new reporting metrics: unique_users_two_plus, unique_users_three_plus, unique_users_four_plus, unique_users_five_plus, and unique_users_ten_plus. Each reports the count of unique users who saw an ad at least that many times. These metrics enable frequency-based audience analysis without requiring external data processing.

What changed for EU political advertising compliance in this release? v23.1 adds the contains_eu_political_advertising field to the Customer resource (account level) and the Campaign.missing_eu_political_advertising_declaration field at the campaign level. The account-level field was also backported to v20.2, v21.1, and v22.1 in simultaneous releases. These fields allow developers to programmatically check and report on EU political advertising declaration status.

Why did Google release v20.2, v21.1, and v22.1 at the same time as v23.1? Google released minor versions for v20, v21, and v22 simultaneously with v23.1 to backport the EU political advertising compliance field (contains_eu_political_advertising in the Customer resource) to all currently supported API versions. This approach means developers on older major versions do not have to perform a major version migration solely to access this compliance feature.

What are the new FIXED_CPM bidding status reasons? Four new CampaignPrimaryStatusReason values have been added for campaigns using the FIXED_CPM bidding strategy: CAMPAIGN_NOT_BOOKED, BOOKING_HOLD_EXPIRING, BOOKING_HOLD_EXPIRED, and BOOKING_CANCELLED. These provide granular status information about the booking lifecycle for reservation-based video campaigns.

What is the YOUTUBE_FOLLOW_ON_VIEWS conversion category? ConversionActionCategory.YOUTUBE_FOLLOW_ON_VIEWS is a new conversion category that tracks when a user sees an ad and subsequently watches another video from the same YouTube channel. This provides measurable attribution between paid ad exposure and downstream organic viewing behavior from the same brand’s channel.

What does the GOOGLE_DISPLAY_NETWORK addition to ReachPlanService mean? GOOGLE_DISPLAY_NETWORK is now available as a targetable surface in ReachPlanService.GenerateReachForecast for Demand Gen Max Conversions campaigns. This allows media planners and developers to include GDN reach in pre-campaign Demand Gen forecasts, which previously did not account for display network placements even though Demand Gen campaigns can serve there.

What changed in the BenchmarksService? GenerateBenchmarksMetrics now supports date-level breakdowns using a BreakdownDefinition. Previously, benchmark data was returned as a single aggregated figure. With date breakdown support, developers can request benchmark metrics segmented by specific dates within the query period, enabling trend analysis relative to industry benchmarks.

When do the new IncentiveErrorEnum codes become active? The two new incentive error codes — MAX_INCENTIVES_REDEEMED and ACCOUNT_TOO_OLD — become active for API requests made on or after March 11, 2026. Developers using the IncentiveService should add error handlers for both codes before that date.

What is the CANNOT_TARGET_ONLY_UNDETERMINED error? CANNOT_TARGET_ONLY_UNDETERMINED is a new value added to CriterionErrorEnum. It is returned when a demographic targeting configuration targets only the undetermined category (users whose demographic attributes are unknown) without including any determined segments. This error code improves diagnostic clarity for invalid demographic targeting configurations.

What is the advertising_partner_properties.allowed_domain field? This field, added to ProductLinkInvitation and ProductLink resources, restricts an advertising partner to running ads only on a specific domain. It is set during the product link invitation process and enforced once the link is active.

What is VERTICAL_ADS_DATA_FEED in SearchTermMatchSourceEnum? VERTICAL_ADS_DATA_FEED identifies that a search term match was sourced from a vertical ads data feed rather than from keyword or URL targeting. This is relevant for Travel Ads and other vertical formats where matching is driven by structured feed data. The addition enables cleaner segmentation in search term reports for these campaign types.

How does the historical trend line in GenerateTrendingInsights work? When querying ContentCreatorInsightsService.GenerateTrendingInsights by topic, the response now includes historical trend line data within TrendInsightDataPoint. This provides a view of how a topic’s trend has moved over time, not just its current value, allowing developers to build tools that distinguish between emerging trends and established ones.

Is v23.1 backward compatible with code written for v23? Yes. v23.1 is strictly additive. All v23 functionality continues to work unchanged. Existing code that does not reference the new v23.1 fields or services will not be affected by the upgrade. Code that does need the new features must explicitly reference the new fields and be compiled against the updated client library.

The release of Google Ads API version 23.1 on February 25, 2026 continues a pattern of more frequent, targeted updates that add meaningful capability at the programmatic layer. The text guidelines addition is the most consequential change for most advertisers — it provides a level of AI-generated copy control that has been one of the most commonly requested features since Performance Max became the dominant campaign type on the platform. The YouTubeVideoUpload service closes a workflow gap that has existed since the AdWords API era. The frequency-based user metrics bring reach reporting in line with how brand marketers actually plan campaigns. And the EU compliance fields, backported across four API versions simultaneously, reflect a maturing compliance framework that developers managing EU-facing accounts need to implement without waiting for a major version migration. The combined effect is an API that continues to close the distance between what Google’s campaign infrastructure can do and what developers can access programmatically.

About ALM Corp

ALM Corp is a digital marketing and technology consultancy that works with brands, agencies, and enterprise advertisers to build and manage performance-driven paid media programs. ALM Corp’s team includes certified Google Ads specialists and API integration developers who track every Google Ads API release as a direct input to how client campaigns are structured, automated, and reported.

The v23.1 update touches areas directly relevant to ALM Corp’s service offerings. The text guidelines API support aligns with ALM Corp’s Performance Max and AI Max campaign management practice, where brand-safe automated copy is a standing requirement for clients in regulated industries. The YouTubeVideoUpload service enhancement informs how ALM Corp builds creative workflow automation for clients running YouTube campaigns at scale. And the new frequency-based unique user metrics feed directly into ALM Corp’s audience reach and frequency reporting frameworks, which are used to evaluate brand campaign delivery against planned exposure thresholds.

For advertisers looking to understand how the Google Ads API version 23.1 changes affect their campaigns — or to ensure their current integrations and management tools are aligned with the latest API capabilities — ALMCorp’s team is available to provide an audit and implementation roadmap.

About The Author
Latest Posts