Refer to [Feature deprecations](https://developers.google.com/google-ads/api/docs/deprecations#feature-deprecations) for
an up-to-date list of current and planned feature deprecations, the
[Deprecation and sunset timetable](https://developers.google.com/google-ads/api/docs/sunset-dates#timetable) for version
lifecycle dates, and [Upgrade your API version](https://developers.google.com/google-ads/api/docs/upgrade) for
filterable version-to-version proto difference tables.

## Release summary and quick links

Use the following table to jump directly to a release's breaking changes, new
features, or proto difference tables:

| Version | Release date | Breaking changes | Features and updates | Proto difference table |
|---|---|---|---|---|
| **[v26.1](https://developers.google.com/google-ads/api/docs/release-notes#v26-1-2026-10-28)** (Latest) | 2026-10-28 | None (minor release) | [v26.1 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v26-1-2026-10-28) | [v25 versus v26 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v25-v26) |
| **[v26](https://developers.google.com/google-ads/api/docs/release-notes#v26-2026-10-14)** | 2026-10-14 | [v26 breaking changes](https://developers.google.com/google-ads/api/docs/release-notes#v26-breaking-changes) | [v26 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v26-features-updates) | [v25 versus v26 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v25-v26) |
| **[v25.2](https://developers.google.com/google-ads/api/docs/release-notes#v25-2-2026-09-23)** | 2026-09-23 | None (minor release) | [v25.2 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v25-2-2026-09-23) | [v24 versus v25 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v24-v25) |
| **[v25.1](https://developers.google.com/google-ads/api/docs/release-notes#v25-1-2026-08-19)** | 2026-08-19 | None (minor release) | [v25.1 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v25-1-2026-08-19) | [v24 versus v25 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v24-v25) |
| **[v25](https://developers.google.com/google-ads/api/docs/release-notes#v25-2026-07-22)** | 2026-07-22 | [v25 breaking changes](https://developers.google.com/google-ads/api/docs/release-notes#v25-breaking-changes) | [v25 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v25-features-updates) | [v24 versus v25 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v24-v25) |
| **[v24.2](https://developers.google.com/google-ads/api/docs/release-notes#v24-2-2026-06-24)** | 2026-06-24 | None (minor release) | [v24.2 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v24-2-2026-06-24) | [v23 versus v24 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v23-v24) |
| **[v24.1](https://developers.google.com/google-ads/api/docs/release-notes#v24-1-2026-05-13)** | 2026-05-13 | None (minor release) | [v24.1 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v24-1-2026-05-13) | [v23 versus v24 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v23-v24) |
| **[v24](https://developers.google.com/google-ads/api/docs/release-notes#v24-2026-04-22)** | 2026-04-22 | [v24 breaking changes](https://developers.google.com/google-ads/api/docs/release-notes#v24-breaking-changes) | [v24 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v24-features-updates) | [v23 versus v24 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v23-v24) |
| **[v23.3](https://developers.google.com/google-ads/api/docs/release-notes#v23-3-2026-06-24)** | 2026-06-24 | None (minor release) | [v23.3 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v23-3-2026-06-24) | [v22 versus v23 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v22-v23) |
| **[v23.2](https://developers.google.com/google-ads/api/docs/release-notes#v23-2-2026-03-25)** | 2026-03-25 | None (minor release) | [v23.2 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v23-2-2026-03-25) | [v22 versus v23 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v22-v23) |
| **[v23.1](https://developers.google.com/google-ads/api/docs/release-notes#v23-1-2026-02-25)** | 2026-02-25 | None (minor release) | [v23.1 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v23-1-2026-02-25) | [v22 versus v23 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v22-v23) |
| **[v23](https://developers.google.com/google-ads/api/docs/release-notes#v23-2026-01-28)** | 2026-01-28 | [v23 breaking changes](https://developers.google.com/google-ads/api/docs/release-notes#v23-breaking-changes) | [v23 features and updates](https://developers.google.com/google-ads/api/docs/release-notes#v23-features-updates) | [v22 versus v23 proto diffs](https://developers.google.com/google-ads/api/docs/upgrade#proto-differences-between-v22-v23) |

<br />

## v26 major and minor versions

Google Ads API v26 includes the following new features, updates, and breaking changes.

### v26.1 (2026-10-28)

The following new features and updates were added in Google Ads API v26.1. Minor
versions like v26.1 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| External promotion redemption tracking | New messages, fields, enums, and error | Added the immutable [`PromotionAsset.external_redeem_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/PromotionAsset#external_redeem_info) field of type [`ExternalRedeemInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalRedeemInfo) to specify external redemption tracking details for a promotion: - [`ExternalRedeemInfo.partner_promotion_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalRedeemInfo#partner_promotion_id): An immutable [`ExternalPartnerId`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerId) message that holds either an integer ([`int_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerId#int_value)) or a string ([`string_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerId#string_value)) ID of the promotion in the partner's system. Required when the `code_source` field is set to `GOOGLE_GENERATED`. - [`ExternalRedeemInfo.code_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalRedeemInfo#code_type): Required and immutable. The offline promotion code type ([`OfflinePromotionCodeType`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeTypeEnum.OfflinePromotionCodeType): [`SINGLE_USE_PROMOTION_CODE`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeTypeEnum.OfflinePromotionCodeType#single_use_promotion_code) or [`MULTI_USE_PROMOTION_CODE`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeTypeEnum.OfflinePromotionCodeType#multi_use_promotion_code)). - [`ExternalRedeemInfo.code_source`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalRedeemInfo#code_source): Required and immutable. The offline promotion code source ([`OfflinePromotionCodeSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeSourceEnum.OfflinePromotionCodeSource): [`CUSTOMER_UPLOADED`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeSourceEnum.OfflinePromotionCodeSource#customer_uploaded) or [`GOOGLE_GENERATED`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflinePromotionCodeSourceEnum.OfflinePromotionCodeSource#google_generated)). Also added the [`AssetError.PARTNER_PROMOTION_ID_TYPE_INCOMPATIBLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError#partner_promotion_id_type_incompatible) error code, which the API returns when the [`partner_promotion_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalRedeemInfo#partner_promotion_id) field uses a format that the account's promotion integration does not accept. |
| Campaigns |||
| Waterfall channel prioritization and budget caps for campaign budgets | New features, resource, service, fields, and enums | Added support for waterfall channel prioritization and budget caps on campaign budgets, which let you control how you allocate a budget across network channels (Google Owned and Operated properties, the Search Partner Network, and the Google Display Network). For more information, see the [channel prioritization and budget allocation blog post](https://blog.google/products/ads-commerce/channel-prioritization-budget-allocation/). - Added the [`CampaignBudget.budget_network_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget#budget_network_settings) field of type [`BudgetNetworkSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSettings), which holds at most one [`BudgetNetworkSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSetting) message per advertising channel type ([`advertising_channel_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSetting#advertising_channel_type)) in the [`BudgetNetworkSettings.settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSettings#settings[]) field. Each setting assigns network channels ([`NetworkChannelType`](https://developers.google.com/google-ads/api/reference/rpc/v26/NetworkChannelTypeEnum.NetworkChannelType): [`OWNED_AND_OPERATED`](https://developers.google.com/google-ads/api/reference/rpc/v26/NetworkChannelTypeEnum.NetworkChannelType#owned_and_operated), [`SEARCH_PARTNER`](https://developers.google.com/google-ads/api/reference/rpc/v26/NetworkChannelTypeEnum.NetworkChannelType#search_partner), and [`GOOGLE_DISPLAY`](https://developers.google.com/google-ads/api/reference/rpc/v26/NetworkChannelTypeEnum.NetworkChannelType#google_display)) to priority tiers ([`ChannelPriorityTier`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChannelPriorityTierEnum.ChannelPriorityTier): [`TIER1`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChannelPriorityTierEnum.ChannelPriorityTier#tier1) and [`TIER2`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChannelPriorityTierEnum.ChannelPriorityTier#tier2)) in the [`BudgetNetworkSetting.channel_priorities`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSetting#channel_priorities[]) field (of type [`ChannelPriorityConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChannelPriorityConfig)). A setting can also cap the share of the budget that secondary-tier network channels spend in the [`BudgetNetworkSetting.budget_caps`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSetting#budget_caps[]) field (of type [`BudgetCapConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetCapConfig)). The [`BudgetCapConfig.cap_percent_millis`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetCapConfig#cap_percent_millis) field specifies the cap in milli-percent units (`1,000` = `1%`, `100,000` = `100%`, and `0` = `0%` opt-out). When unset, the customer-level defaults in the [`CustomerBudgetNetworkSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerBudgetNetworkSetting) resource apply. - Added the read-only [`CampaignBudget.budget_network_eligibility`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget#budget_network_eligibility) field of type [`BudgetNetworkEligibility`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkEligibility), which indicates whether a budget is eligible ([`eligible`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkEligibility#eligible)) for waterfall prioritization and budget caps and, if not, the ineligibility reasons ([`ineligible_reasons`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkEligibility#ineligible_reasons[]) of type [`BudgetNetworkIneligibleReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkIneligibleReasonEnum.BudgetNetworkIneligibleReason)). - Added the [`CustomerBudgetNetworkSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerBudgetNetworkSetting) resource, a singleton per customer with the resource name `customers/{customer_id}/customerBudgetNetworkSettings`. Its [`budget_network_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerBudgetNetworkSetting#budget_network_settings) field of type [`BudgetNetworkSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSettings) holds the defaults that apply to every campaign budget whose [`CampaignBudget.budget_network_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget#budget_network_settings) field is unset. - Added the [`CustomerBudgetNetworkSettingService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerBudgetNetworkSettingService) service with the [`CustomerBudgetNetworkSettingService.MutateCustomerBudgetNetworkSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerBudgetNetworkSettingService/MutateCustomerBudgetNetworkSetting) method to create or update the setting. You can also mutate the resource through the [`GoogleAdsService.Mutate`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService/Mutate) method and query it through the [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService/Search) and [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService/SearchStream) methods. - Added the [`BudgetNetworkSettingError`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetNetworkSettingErrorEnum.BudgetNetworkSettingError) enum, which the API returns when budget network settings are invalid. |
| Migrated Demand Gen campaign activation error | New enum and error | Added the [`DemandGenCampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenCampaignErrorEnum.DemandGenCampaignError) enum with the [`DemandGenCampaignError.CANNOT_ACTIVATE_MIGRATED_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenCampaignErrorEnum.DemandGenCampaignError#cannot_activate_migrated_campaign) error code. The API returns this error if you try to activate a migrated Demand Gen campaign before removing the original campaign, or while another migrated campaign for the same original campaign is active. |
| General |||
| Local Services eligibility service and category details | New service, messages, and fields | Added the [`LocalServicesEligibilityService`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesEligibilityService) service with the [`LocalServicesEligibilityService.CheckLocalServicesEligibility`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesEligibilityService/CheckLocalServicesEligibility) method to check Local Services eligibility for a customer and Google Business Profile listing ID ([`CheckLocalServicesEligibilityRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/CheckLocalServicesEligibilityRequest)). The [`CheckLocalServicesEligibilityResponse`](https://developers.google.com/google-ads/api/reference/rpc/v26/CheckLocalServicesEligibilityResponse) message returns: - [`eligible`](https://developers.google.com/google-ads/api/reference/rpc/v26/CheckLocalServicesEligibilityResponse#eligible): Indicates whether the customer is eligible for Local Services. - [`eligible_goals`](https://developers.google.com/google-ads/api/reference/rpc/v26/CheckLocalServicesEligibilityResponse#eligible_goals[]) (of type [`EligibleGoal`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleGoal)): Maps each eligible lead type ([`EligibleGoal.lead_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleGoal#lead_type)) to its eligible service categories ([`EligibleGoal.categories`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleGoal#categories[]) of type [`EligibleCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleCategory)), including each category's ID ([`category_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleCategory#category_id)), display name ([`display_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleCategory#display_name)), available job type IDs ([`job_types`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleCategory#job_types[])), and business callout IDs ([`callouts`](https://developers.google.com/google-ads/api/reference/rpc/v26/EligibleCategory#callouts[])). - [`suggestion_reasons`](https://developers.google.com/google-ads/api/reference/rpc/v26/CheckLocalServicesEligibilityResponse#suggestion_reasons[]) (of type [`SuggestionReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/SuggestionReason)): Provides short and detailed text reasons ([`short_text`](https://developers.google.com/google-ads/api/reference/rpc/v26/SuggestionReason#short_text) and [`long_text`](https://developers.google.com/google-ads/api/reference/rpc/v26/SuggestionReason#long_text)) explaining eligibility issues (such as licensing issues). |
| Local Services external redemption provider settings | Updated field, new messages, and new fields | Updated the [`Customer.local_services_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#local_services_settings) field from `OUTPUT_ONLY` to mutable. Also added the [`LocalServicesSettings.redemption_provider_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesSettings#redemption_provider_info) field of type [`RedemptionProviderInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/RedemptionProviderInfo) to configure the external redemption provider for a Local Services account. This message contains the required [`RedemptionProviderInfo.external_merchant_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/RedemptionProviderInfo#external_merchant_id) field of type [`ExternalPartnerMerchantId`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerMerchantId), which holds either an integer ([`numeric_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerMerchantId#numeric_id)) or a 1--50 character string ([`alphanumeric_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalPartnerMerchantId#alphanumeric_id)) merchant ID. |
| Recommendations |||
| Optimize for new customers recommendation | New recommendation | Added the [`RecommendationType.OPTIMIZE_FOR_NEW_CUSTOMERS`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#optimize_for_new_customers) enum value and the following fields to support optimizing campaigns for new customer acquisition (with incremental conversion values expressed in standard units of the account's local currency, not in micros): - [`Recommendation.optimize_for_new_customers_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#optimize_for_new_customers_recommendation) (of type [`OptimizeForNewCustomersRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.OptimizeForNewCustomersRecommendation)): Exposes the [`recommended_incremental_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.OptimizeForNewCustomersRecommendation#recommended_incremental_conversion_value) field. - [`ApplyRecommendationOperation.optimize_for_new_customers`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation#optimize_for_new_customers) (of type [`OptimizeForNewCustomersParameters`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.OptimizeForNewCustomersParameters)): Accepts the [`account_default_incremental_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.OptimizeForNewCustomersParameters#account_default_incremental_conversion_value) and [`campaign_override_incremental_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.OptimizeForNewCustomersParameters#campaign_override_incremental_conversion_value) fields when you apply the recommendation. |
| Reports |||
| Reach reporting frequency buckets and metric state information | New metrics, message, and enum | Added the following metrics to the [`Metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics) message, completing the set of `N+` frequency buckets (`1+` through `10+`) for reach reporting: - [`Metrics.unique_users_six_plus`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_six_plus) - [`Metrics.unique_users_seven_plus`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_seven_plus) - [`Metrics.unique_users_eight_plus`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_eight_plus) - [`Metrics.unique_users_nine_plus`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_nine_plus) Also added the following [`ReachMetricInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachMetricInfo) metrics to the [`Metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics) message to provide additional state information (the [`ReachMetricInfo.reach_metric_states`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachMetricInfo#reach_metric_states[]) field of type [`ReachMetricState`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachMetricStateEnum.ReachMetricState), such as when a value is suppressed for privacy or quality reasons) for each unique-users metric: - [`Metrics.unique_users_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_info) - [`Metrics.unique_users_two_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_two_plus_info) - [`Metrics.unique_users_three_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_three_plus_info) - [`Metrics.unique_users_four_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_four_plus_info) - [`Metrics.unique_users_five_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_five_plus_info) - [`Metrics.unique_users_six_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_six_plus_info) - [`Metrics.unique_users_seven_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_seven_plus_info) - [`Metrics.unique_users_eight_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_eight_plus_info) - [`Metrics.unique_users_nine_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_nine_plus_info) - [`Metrics.unique_users_ten_plus_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#unique_users_ten_plus_info) |
| Search top impression share and search click share support for hotel booking itinerary and vertical ads segments | Updated metrics and segments | Expanded support for the [`Metrics.search_top_impression_share`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#search_top_impression_share) and [`Metrics.search_click_share`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#search_click_share) metrics so that you can select them with the following hotel booking itinerary and vertical ads segments: - [`Segments.advance_booking_window`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#advance_booking_window) - [`Segments.length_of_booking`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#length_of_booking) - [`Segments.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#start_date) - [`Segments.start_day_of_week`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#start_day_of_week) - [`Segments.user_set_dates`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#user_set_dates) - [`Segments.vertical_ads_event_participant_display_names`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_event_participant_display_names) - [`Segments.vertical_ads_hotel_class`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_hotel_class) - [`Segments.vertical_ads_listing`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing) - [`Segments.vertical_ads_listing_brand`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_brand) - [`Segments.vertical_ads_listing_city`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_city) - [`Segments.vertical_ads_listing_country`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_country) - [`Segments.vertical_ads_listing_region`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_region) - [`Segments.vertical_ads_listing_user_rating`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_user_rating) - [`Segments.vertical_ads_listing_venue`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_listing_venue) - [`Segments.vertical_ads_partner_account`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_partner_account) - [`Segments.vertical_ads_price_tier`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_price_tier) - [`Segments.vertical_ads_rate_rule_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_rate_rule_id) - [`Segments.vertical_ads_rate_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_rate_type) - [`Segments.vertical_ads_vertical`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_vertical) |
| Targeting |||
| Household income exclusions in Performance Max campaigns | Expanded support | Added support for household income exclusions in Performance Max campaigns. Exclude household income ranges by creating a negative [`CampaignCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion) resource with the [`income_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#income_range) field set. |

### v26 (2026-10-14)

The following new features, updates, and breaking changes were added in Google Ads API
v26, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Campaigns ||||
| Optional [`country_code`](https://developers.google.com/google-ads/api/reference/rpc/v25/Campaign.LocalServicesPmaxCampaignSettings#country_code) field in [`LocalServicesPmaxCampaignSettings`](https://developers.google.com/google-ads/api/reference/rpc/v25/Campaign.LocalServicesPmaxCampaignSettings) | Required field during Local Services Performance Max campaign creation ([`LocalServicesPmaxCampaignSettings.country_code`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesPmaxCampaignSettings#country_code)) | Behavioral shift | Ensure you specify `country_code` (along with the newly required [`listing_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesPmaxCampaignSettings#listing_id)) when creating Local Services Performance Max campaigns. |
| Conversions ||||
| The `enhanced_conversions_for_leads_enabled` field in [`ConversionTrackingSetting`](https://developers.google.com/google-ads/api/reference/rpc/v25/ConversionTrackingSetting) ([`Customer.conversion_tracking_setting`](https://developers.google.com/google-ads/api/reference/rpc/v25/Customer#conversion_tracking_setting)) | None | Removal | Use [`ConversionTrackingSetting.enablement_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#enablement_setting) on [`Customer.conversion_tracking_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#conversion_tracking_setting) instead to inspect the account-level Enhanced Conversions setting. |
| Targeting ||||
| Hotel-specific criterion fields in [`AdGroupBidModifier`](https://developers.google.com/google-ads/api/reference/rpc/v25/AdGroupBidModifier): - `hotel_date_selection_type` - `hotel_advance_booking_window` - `hotel_length_of_stay` (`min_nights` and `max_nights`) - `hotel_check_in_day` - `hotel_check_in_date_range` | Vertical-agnostic criterion fields in [`AdGroupBidModifier`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier): - [`user_set_dates`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#user_set_dates) of type [`UserSetDatesInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserSetDatesInfo) - [`advance_booking_window`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#advance_booking_window) of type [`AdvanceBookingWindowInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvanceBookingWindowInfo) - [`length_of_booking`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#length_of_booking) of type [`LengthOfBookingInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LengthOfBookingInfo) ([`min_days`](https://developers.google.com/google-ads/api/reference/rpc/v26/LengthOfBookingInfo#min_days) and [`max_days`](https://developers.google.com/google-ads/api/reference/rpc/v26/LengthOfBookingInfo#max_days)) - [`start_day_of_week`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#start_day_of_week) of type [`StartDayOfWeekInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/StartDayOfWeekInfo) - [`start_date_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#start_date_range) of type [`StartDateRangeInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/StartDateRangeInfo) | Rename / removal | Update references to use the vertical-agnostic criterion fields, which remain supported only for hotel ads in Hotel campaigns and Search Campaigns for Travel. Criterion IDs, targeting behavior, and existing bid modifiers stay the same, and values for `min_nights` and `max_nights` carry over to `min_days` and `max_days` without conversion. For more information, see [Adjust bids with bid modifiers](https://developers.google.com/google-ads/api/docs/hotel-ads/bidding/create-ad-group-bid-modifier). |
| [`HotelDateSelectionType`](https://developers.google.com/google-ads/api/reference/rpc/v25/HotelDateSelectionTypeEnum.HotelDateSelectionType) and type of [`segments.user_set_dates`](https://developers.google.com/google-ads/api/reference/rpc/v25/Segments#user_set_dates) | [`DateSelectionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/DateSelectionTypeEnum.DateSelectionType) | Rename / type change | Use `DateSelectionType` instead of `HotelDateSelectionType` for `user_set_dates` bid modifiers and `segments.user_set_dates`. |
| Hotel-specific error reasons in [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v25/CriterionErrorEnum.CriterionError): - `HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION` - `HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION` - `HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION` - `HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY` - `HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE` - `HOTEL_CHECK_IN_DATE_RANGE_REVERSED` | Vertical-agnostic error reasons in [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError): - [`LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#length_of_booking_overlaps_with_existing_criterion) - [`ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#advance_booking_window_overlaps_with_existing_criterion) - [`START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#start_date_range_overlaps_with_existing_criterion) - [`START_DATE_RANGE_START_DATE_TOO_EARLY`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#start_date_range_start_date_too_early) - [`START_DATE_RANGE_END_DATE_TOO_LATE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#start_date_range_end_date_too_late) - [`START_DATE_RANGE_REVERSED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#start_date_range_reversed) | Rename | Update error handling to check for the new vertical-agnostic error reasons. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| LINE and SMS business message providers | New fields and enum values | Added support for LINE and SMS as message providers in [`BusinessMessageAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageAsset), including new fields [`BusinessMessageAsset.line_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageAsset#line_info) and [`BusinessMessageAsset.sms_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageAsset#sms_info) along with [`BusinessMessageProvider.LINE`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageProviderEnum.BusinessMessageProvider#line) and [`BusinessMessageProvider.SMS`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageProviderEnum.BusinessMessageProvider#sms). |
| [`AssetGroupError.UNSUPPORTED_LOCAL_SERVICES_CATEGORY`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupErrorEnum.AssetGroupError#unsupported_local_services_category) | New enum value / error | Added to [`AssetGroupError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupErrorEnum.AssetGroupError) to indicate when a category specified in [`GoogleLocalServicesInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleLocalServicesInfo) ([`AssetGroup.google_local_services_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#google_local_services_info)) is not supported for Local Services Performance Max campaigns. |
| Campaigns |||
| Local Services Performance Max campaign creation | New features, fields, and error | Updated [`PmaxCampaignSettings.local_services_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.PmaxCampaignSettings#local_services_enabled) from `OUTPUT_ONLY` to `IMMUTABLE`, allowing external API clients to specify `local_services_enabled = true` when creating new Local Services Performance Max campaigns. Also added [`LocalServicesPmaxCampaignSettings.listing_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesPmaxCampaignSettings#listing_id) to expose the Google Business Profile listing ID linked to the Local Services Performance Max campaign (marked as REQUIRED during Local Services Performance Max campaign creation), and added the [`CampaignError.INVALID_LOCAL_SERVICES_PERFORMANCE_MAX_LISTING_ID`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#invalid_local_services_performance_max_listing_id) error code. |
| Local Services campaign validation errors | New enum values and errors | Added new validation errors for Local Services campaigns: - [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError): - [`LOCAL_SERVICES_MULTIPLE_PERFORMANCE_MAX_CAMPAIGNS_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#local_services_multiple_performance_max_campaigns_not_allowed) - [`LOCAL_SERVICES_AGREEMENT_REQUIRED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#local_services_agreement_required) - [`AssetSetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetLinkErrorEnum.AssetSetLinkError): - [`LOCATION_ASSET_DOES_NOT_MATCH_CAMPAIGN_LISTING_ID`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetLinkErrorEnum.AssetSetLinkError#location_asset_does_not_match_campaign_listing_id) - [`CampaignConversionGoalError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignConversionGoalErrorEnum.CampaignConversionGoalError) and [`CampaignGoalConfigError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError): - [`CANNOT_UNLINK_LOCAL_SERVICES_GOAL_FROM_LOCAL_SERVICES_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignConversionGoalErrorEnum.CampaignConversionGoalError#cannot_unlink_local_services_goal_from_local_services_campaign) - [`GOAL_NOT_ALLOWED_FOR_LOCAL_SERVICES_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignConversionGoalErrorEnum.CampaignConversionGoalError#goal_not_allowed_for_local_services_campaign) - [`LOCAL_SERVICES_GOAL_NOT_ALLOWED_FOR_NON_LOCAL_SERVICES_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignConversionGoalErrorEnum.CampaignConversionGoalError#local_services_goal_not_allowed_for_non_local_services_campaign) - [`ConversionGoalCampaignConfigError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigError): - [`CANNOT_DISABLE_CAMPAIGN_OVERRIDE_GOALS_FOR_LOCAL_SERVICES_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigError#cannot_disable_campaign_override_goals_for_local_services_campaign) |
| Hotel Center account link validation | New enum value / error | Added the [`CampaignError.HOTEL_PROPERTY_ASSET_SET_HOTEL_CENTER_LINK_REQUIRED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#hotel_property_asset_set_hotel_center_link_required) error code to [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError) to indicate that linking a hotel property asset set ([`Campaign.hotel_property_asset_set`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#hotel_property_asset_set)) to a Performance Max for travel goals campaign requires an active Hotel Center account link. |
| Demand Gen minimum budget per day | New field | Added the field [`demand_gen_info.minimum_budget_per_day_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/CurrencyConstant.DemandGenInfo#minimum_budget_per_day_micros) to [`CurrencyConstant`](https://developers.google.com/google-ads/api/reference/rpc/v26/CurrencyConstant), which specifies the minimum required budget per day for Demand Gen campaigns in that currency. This field's value updates when the minimum budget enforced by the API changes. |
| Lift measurement config for campaigns | New field | Added [`Campaign.lift_measurement_config`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#lift_measurement_config) to expose the resource name of the lift measurement configuration linked to the campaign. |
| AI Max experiment validation | New enum value / error | Added the [`ExperimentArmError.ADOPT_AI_MAX_CAMPAIGN_ALREADY_ENABLED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArmErrorEnum.ExperimentArmError#adopt_ai_max_campaign_already_enabled) error code to [`ExperimentArmError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArmErrorEnum.ExperimentArmError) when attempting to create an `ADOPT_AI_MAX` experiment for a campaign that already has AI Max enabled (or is enabled within the same request prior to experiment arm creation). |
| Shopping campaign listing type | Expanded support | Expanded support of [`Campaign.listing_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#listing_type) to Shopping campaigns. |
| EU political advertising self-declaration updates | Updated behavior and new fields | [`Campaign.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#contains_eu_political_advertising) is now optional for some campaigns that don't positively target the European Union. - Except as noted for `DEMAND_GEN` campaigns with upgraded targeting, the field is optional if a campaign satisfies all of the following conditions after the request is executed: - Contains no positive location campaign criterion that is inside the EU - Contains no positive proximity or location group campaign criterion - Contains at least one positive location campaign criterion that is outside of the EU - For `DEMAND_GEN` campaigns with [`upgraded_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.DemandGenCampaignSettings#upgraded_targeting), the field is optional if every active ad group within the campaign satisfies all of the following conditions after the request is executed: - Contains no positive location ad group criterion that is inside the EU - Contains no positive proximity or location group ad group criterion - Contains at least one positive location ad group criterion that is outside of the EU The field is also optional for campaigns with no active ad groups. If a request creates an ad group that does not meet these conditions, [`AdGroupError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupErrorEnum.AdGroupError#missing_eu_political_advertising_self_declaration) is returned. - These changes apply to both new and existing campaigns. In some cases a new campaign can only be created if criteria are added in the same request --- use `GoogleAdsService.Mutate` to group mutates. - Updated [`Campaign.missing_eu_political_advertising_declaration`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#missing_eu_political_advertising_declaration) to match the changes to [`Campaign.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#contains_eu_political_advertising). - Added [`GeoTargetConstant.require_eu_political_advertising_declaration`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstant#require_eu_political_advertising_declaration) to indicate if a location is within or outside of the EU. - Added [`CampaignCriterion.require_eu_political_advertising_declaration`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#require_eu_political_advertising_declaration) and [`AdGroupCriterion.require_eu_political_advertising_declaration`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion#require_eu_political_advertising_declaration). [`Campaign.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#contains_eu_political_advertising) is required if this field is `true` for any campaign-level criterion within the campaign (or for any active ad-group-level criterion in `DEMAND_GEN` campaigns with upgraded targeting). The fields return `true` if the criterion's `negative` field is `false` and the criterion is a location within the EU, a proximity (regardless of whether it overlaps with EU territory), or a location group (regardless of whether it overlaps with EU territory). |
| Conversions |||
| Unified Enhanced Conversions configuration | New fields and enum | Added [`ConversionTrackingSetting.enablement_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#enablement_setting) and [`ConversionTrackingSetting.effective_enablement_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#effective_enablement_setting) (on [`Customer.conversion_tracking_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#conversion_tracking_setting)) to expose the unified Enhanced Conversions configuration for the account, represented using the new [`EnhancedConversionsConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/EnhancedConversionsConfigEnum.EnhancedConversionsConfig) enum. |
| [`ConversionActionCategory.MESSAGE_LEAD`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory#message_lead) | New enum value | Added to [`ConversionActionCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory) to support message or chat interactions indicating interest in an advertiser's offering. |
| [`ConversionAttributionEventType.CLICK`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAttributionEventTypeEnum.ConversionAttributionEventType#click) | New enum value | Added to [`ConversionAttributionEventType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAttributionEventTypeEnum.ConversionAttributionEventType) to represent conversions attributed to an ad click, which were previously included in the `UNKNOWN` enum value. |
| General |||
| Local Services leads updates | New field and enum value | - Added the [`LocalServicesLead.campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead#campaign) field to the [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead) resource to link a lead to its associated campaign. - Added [`COUPON`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadTypeEnum.LeadType#coupon) to [`LocalServicesLeadType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadTypeEnum.LeadType) to support coupon lead types for Local Services. |
| Recommendations |||
| Raise budget recommendation for Search | New recommendation | Added [`RecommendationType.RAISE_BUDGET_PERFORMANCE_TOO_LOW`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#raise_budget_performance_too_low), [`Recommendation.raise_budget_performance_too_low_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#raise_budget_performance_too_low_recommendation), and [`ApplyRecommendationOperation.raise_budget_performance_too_low`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation#raise_budget_performance_too_low) to support raising budgets when daily budgets are too low for Search campaigns. |
| Reports |||
| Search Lift measurements | New features, resource, segments, and metrics | Added support for Search Lift measurements: - Added a new read-only resource [`SearchLiftKeywordBundle`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftKeywordBundle) representing a keyword bundle in a Search Lift study. - Added new selectable segments ([`segments.search_lift_keyword_bundle`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#search_lift_keyword_bundle) and [`segments.search_property`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#search_property)) and 15 new Search Lift metrics (such as `relative_search_lift`, `normalized_incremental_searches`, `search_lift_cost_micros`, and `search_lift_impressions`) to support Search Lift analysis with [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig) (linked to campaigns using [`Campaign.lift_measurement_config`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#lift_measurement_config)). - Added the [`SearchLiftKeywordBundleStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftKeywordBundleStatusEnum.SearchLiftKeywordBundleStatus), [`SearchLiftMatchingInfoSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftMatchingInfoSourceEnum.SearchLiftMatchingInfoSource), and [`SearchLiftSearchProperty`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftSearchPropertyEnum.SearchLiftSearchProperty) enums. |
| Final URL expansion asset view for Shopping campaigns | Expanded support | Expanded [`final_url_expansion_asset_view`](https://developers.google.com/google-ads/api/reference/rpc/v26/FinalUrlExpansionAssetView) to support Shopping campaigns (with [`ad_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup) selectable as an attributed resource alongside [`final_url_expansion_asset_view.ad_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/FinalUrlExpansionAssetView#ad_group)). |
| Videos |||
| YouTube generative content disclosures | New fields and enum | Added support for generative content disclosures for YouTube uploads. The new field [`YouTubeVideoUpload.video_content_metadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoUpload#video_content_metadata) of type [`VideoContentMetadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoContentMetadata) has been added to [`YouTubeVideoUpload`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoUpload), containing disclosure settings under [`VideoContentMetadata.generative_content_disclosure`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoContentMetadata#generative_content_disclosure) of type [`YouTubeVideoUploadGenerativeContentDisclosure`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoUploadGenerativeContentDisclosureEnum.YouTubeVideoUploadGenerativeContentDisclosure). |

<br />

## v25 major and minor versions

Google Ads API v25 includes the following new features, updates, and breaking changes.

### v25.2 (2026-09-23)

The following new features and updates were added in Google Ads API v25.2. Minor
versions like v25.2 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| URL options for `AssetGroup` | New fields | Added support for URL options on [`AssetGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup), allowing advertisers to specify tracking templates, custom parameters, and final URL suffixes at the asset group level: - [`AssetGroup.tracking_url_template`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#tracking_url_template): URL template for constructing a tracking URL. - [`AssetGroup.url_custom_parameters`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#url_custom_parameters[]): A list of mappings to be used for substituting URL custom parameter tags in `tracking_url_template`, `final_urls`, or `final_mobile_urls`. - [`AssetGroup.final_url_suffix`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#final_url_suffix): URL template for appending parameters to landing page URLs served with parallel tracking. |
| Campaigns |||
| Automated video crawl info | New fields and enums | Added [`AutomatedVideoCrawlSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlSetting) to [`Campaign.AssetAutomationSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting#automated_video_crawl_setting), along with [`AssetAutomationType.AUTOMATED_VIDEO_CRAWL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType#automated_video_crawl), allowing you to specify the automated video crawl settings for a Performance Max campaign. [`AutomatedVideoCrawlSetting.automated_video_crawl_infos`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlSetting#automated_video_crawl_infos[]) contains a list of [`AutomatedVideoCrawlInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlInfo) entries, each configuring a crawl [`url`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlInfo#url), [`source_platform`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlInfo#source_platform) ([`VideoCrawlSourcePlatform`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoCrawlSourcePlatformEnum.VideoCrawlSourcePlatform): [`LANDING_PAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoCrawlSourcePlatformEnum.VideoCrawlSourcePlatform#landing_page), [`SOCIAL`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoCrawlSourcePlatformEnum.VideoCrawlSourcePlatform#social), or [`YOUTUBE`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoCrawlSourcePlatformEnum.VideoCrawlSourcePlatform#youtube)), and [`enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.AssetAutomationSetting.AutomatedVideoCrawlInfo#enabled) opt-in status. |
| Customer Lifecycle Optimization value multiplier errors | New enum values and errors | Added new validation error reasons when configuring value multipliers ([`value_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationValueSettings#value_multiplier) and [`high_lifetime_value_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationValueSettings#high_lifetime_value_multiplier)) for Customer Lifecycle Optimization: - [`GoalError`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError): - [`HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError#high_lifetime_value_multiplier_present_but_value_multiplier_absent) - [`HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError#high_lifetime_value_multiplier_less_than_or_equal_to_value_multiplier) - [`CampaignGoalConfigError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError): - [`HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#high_lifetime_value_multiplier_present_but_value_multiplier_absent) - [`HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#high_lifetime_value_multiplier_less_than_or_equal_to_value_multiplier) - [`CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#campaign_override_high_lifetime_value_multiplier_not_supported_for_campaign_type) |
| [`SmartCampaignSettingService.GeneratePMaxDraftCampaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSettingService/GeneratePMaxDraftCampaign) | New feature | Added [`SmartCampaignSettingService.GeneratePMaxDraftCampaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSettingService/GeneratePMaxDraftCampaign) to support generating a Performance Max draft campaign from an existing Smart campaign, initialized with a status of [`CampaignStatus.PAUSED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignStatusEnum.CampaignStatus#paused) and a creation status of `CampaignCreationStatus.INCOMPLETE` (see [Convert smart campaigns to PMax campaigns](https://developers.google.com/google-ads/api/docs/smart-campaigns/migrate-to-performance-max)): - Set [`GeneratePMaxDraftCampaignRequest.validate_only`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignRequest#validate_only) to `true` to validate the conversion and receive any validation warnings or conversion issues in [`GeneratePMaxDraftCampaignResponse.validated_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#validated_info) without creating the draft campaign. (Leave [`gbp_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignRequest#gbp_enabled) and [`image_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignRequest#image_enabled) unset or `false`; setting them to `true` is not yet supported and returns [`SmartCampaignError.GBP_ENABLED_GENERATE_PMAX_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError#gbp_enabled_generate_pmax_not_supported) or [`SmartCampaignError.IMAGE_ENABLED_GENERATE_PMAX_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError#image_enabled_generate_pmax_not_supported).) - [`GeneratePMaxDraftCampaignResponse`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse) returns the resource names of the generated entities ([`pmax_campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#pmax_campaign), [`campaign_budget`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#campaign_budget), [`asset_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#asset_group), and [`assets`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#assets[])) along with [`validated_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeneratePMaxDraftCampaignResponse#validated_info). |
| Conversions |||
| Firebase ad impressions | New conversion action types and category | Exposed [`FIREBASE_ANDROID_APP_AD_IMPRESSION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#firebase_android_app_ad_impression) and [`FIREBASE_IOS_APP_AD_IMPRESSION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#firebase_ios_app_ad_impression) conversion action types, allowing you to retrieve and modify these conversion actions. Also exposed the [`IN_APP_AD_REVENUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory#in_app_ad_revenue) category in [`ConversionActionCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory) to track in-app ad monetization revenue. |
| General |||
| [`BusinessProfileLocationSyncError`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError) | New enum and errors | Added reasons for the Business Profile location sync errors when syncing locations in a `LOCATION_SYNC`-typed [`AssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet). Instead of returning a generic `UNKNOWN` error, the API now returns [`BusinessProfileLocationSyncError`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError) with specific reasons ([`EMAIL_INVALID`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError#email_invalid), [`OAUTH_TOKEN_INVALID`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError#oauth_token_invalid), [`ACCOUNT_REMOVED`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError#account_removed), and [`NO_PERMISSION_TO_ACCESS_LOCATION_ACCOUNT`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessProfileLocationSyncErrorEnum.BusinessProfileLocationSyncError#no_permission_to_access_location_account)). |
| Planning |||
| [`BenchmarksService.GenerateBenchmarksMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService/GenerateBenchmarksMetrics) percentile metrics | New features | Updated [`BenchmarksService.GenerateBenchmarksMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService/GenerateBenchmarksMetrics) to provide metrics representing the customer's competitive standing among other advertisers in percentile tier format. Metrics are returned in [`PercentileMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/PercentileMetrics) on the new [`CustomerMetrics.percentile_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#percentile_metrics) field (on both [`GenerateBenchmarksMetricsResponse.customer_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsResponse#customer_metrics) and [`BreakdownMetrics.customer_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/BreakdownMetrics#customer_metrics)) and represented using [`BenchmarksCustomerPercentileTier`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksCustomerPercentileTierEnum.BenchmarksCustomerPercentileTier). [`CustomerMetrics.percentile_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#percentile_metrics) is only populated when both of the following conditions are met in [`GenerateBenchmarksMetricsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsRequest): - [`PERCENTILE_DATA`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksSupplementalDataEnum.BenchmarksSupplementalData#percentile_data) is requested in [`supplemental_data`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsRequest#supplemental_data[]). - [`BenchmarksSource.all_advertisers`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksSource#all_advertisers) is set on [`benchmarks_source`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsRequest#benchmarks_source) (which also requires specifying [`category_filter`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsRequest#category_filter)). Added support for percentile metrics for open quarter dates within [`ListBenchmarksAvailableDatesResponse.supported_dates`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListBenchmarksAvailableDatesResponse#supported_dates) (returned by [`BenchmarksService.ListBenchmarksAvailableDates`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService/ListBenchmarksAvailableDates)). While customer aggregate metrics ([`CustomerMetrics.aggregate_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#aggregate_metrics)), customer rate metrics ([`CustomerMetrics.average_rate_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#average_rate_metrics)), and customer percentile metrics ([`CustomerMetrics.percentile_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#percentile_metrics)) are supported across all dates in `supported_dates` (including open quarters), customer share metrics ([`CustomerMetrics.share_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics#share_metrics)) and rate metrics of the benchmarks source ([`average_benchmarks_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsResponse#average_benchmarks_metrics), such as `average_cpm` of "/Apparel/Clothing" ads) are not supported for open quarters and are omitted from the response unless the requested `date_range` falls within the narrower [`ListBenchmarksAvailableDatesResponse.supported_dates_for_all_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListBenchmarksAvailableDatesResponse#supported_dates_for_all_metrics) range. Added a custom [`BenchmarksError.NO_METRICS_FOUND`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksErrorEnum.BenchmarksError#no_metrics_found) error that indicates no metrics were found for the selected combination of inputs to improve usability. |
| YouTube channel handles for creator insights | New feature | Updated [`ContentCreatorInsightsService.GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentCreatorInsightsService/GenerateCreatorInsights) to support searching by YouTube channel handles using [`YouTubeChannels.youtube_channel_handles`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateCreatorInsightsRequest.YouTubeChannels#youtube_channel_handles[]) (valid channel handles must start with `@`, such as `@channel_handle`). This option is similar to searching by YouTube channel IDs. The response contains insights on the requested YouTube creators. |
| Recommendations |||
| CPA and ROAS bid recommendations | New recommendations | Added [`Recommendation.raise_target_cpa_performance_bid_too_low_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#raise_target_cpa_performance_bid_too_low_recommendation) ([`RAISE_TARGET_CPA_PERFORMANCE_BID_TOO_LOW`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#raise_target_cpa_performance_bid_too_low)) and [`Recommendation.lower_target_roas_performance_bid_too_low_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#lower_target_roas_performance_bid_too_low_recommendation) ([`LOWER_TARGET_ROAS_PERFORMANCE_BID_TOO_LOW`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#lower_target_roas_performance_bid_too_low)), along with [`ApplyRecommendationOperation.raise_target_cpa_performance_bid_too_low`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation#raise_target_cpa_performance_bid_too_low) and [`ApplyRecommendationOperation.lower_target_roas_performance_bid_too_low`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation#lower_target_roas_performance_bid_too_low), to support raising Target CPA or lowering Target ROAS when bids are too low for Search campaigns to enter auctions: - [`RaiseTargetCpaPerformanceBidTooLowRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RaiseTargetCpaPerformanceBidTooLowRecommendation) provides [`recommended_target_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RaiseTargetCpaPerformanceBidTooLowRecommendation#recommended_target_multiplier) (a factor greater than `1.0`) and [`current_average_target_cpa_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RaiseTargetCpaPerformanceBidTooLowRecommendation#current_average_target_cpa_micros); apply it using [`RaiseTargetCpaPerformanceBidTooLowParameters`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.RaiseTargetCpaPerformanceBidTooLowParameters) with [`target_cpa_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.RaiseTargetCpaPerformanceBidTooLowParameters#target_cpa_multiplier). - [`LowerTargetRoasPerformanceBidTooLowRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.LowerTargetRoasPerformanceBidTooLowRecommendation) provides [`recommended_target_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.LowerTargetRoasPerformanceBidTooLowRecommendation#recommended_target_multiplier) (a factor less than `1.0`) and [`current_average_target_roas`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.LowerTargetRoasPerformanceBidTooLowRecommendation#current_average_target_roas); apply it using [`LowerTargetRoasPerformanceBidTooLowParameters`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.LowerTargetRoasPerformanceBidTooLowParameters) with [`target_roas_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyRecommendationOperation.LowerTargetRoasPerformanceBidTooLowParameters#target_roas_multiplier). |
| Reports |||
| Hotel itinerary dimension segments | New segments | Added the following hotel and travel booking itinerary dimension segments to [`Segments`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments) (selectable with [`campaign`](https://developers.google.com/google-ads/api/fields/v25/campaign), [`ad_group`](https://developers.google.com/google-ads/api/fields/v25/ad_group), and [`customer`](https://developers.google.com/google-ads/api/fields/v25/customer)): - [`Segments.advance_booking_window`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#advance_booking_window): Advance booking window for the itinerary in days. - [`Segments.length_of_booking`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#length_of_booking): Length of booking for the itinerary in days. - [`Segments.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#start_date): Start date of the booking formatted as `yyyy-MM-dd`. - [`Segments.start_day_of_week`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#start_day_of_week): Start day of week ([`DayOfWeek`](https://developers.google.com/google-ads/api/reference/rpc/v26/DayOfWeekEnum.DayOfWeek)) of the booking. - [`Segments.user_set_dates`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#user_set_dates): Indicates whether user-specified dates were selected ([`HotelDateSelectionType`](https://developers.google.com/google-ads/api/reference/rpc/v25/HotelDateSelectionTypeEnum.HotelDateSelectionType)). |
| Vertical ads metrics | New metrics | Added the following metrics for hotel and travel vertical ads reporting to [`Metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics) (selectable with [`campaign`](https://developers.google.com/google-ads/api/fields/v25/campaign), [`ad_group`](https://developers.google.com/google-ads/api/fields/v25/ad_group), and [`customer`](https://developers.google.com/google-ads/api/fields/v25/customer)): - [`Metrics.vertical_ads_average_booking_value_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#vertical_ads_average_booking_value_micros): Click-weighted average daily rate in micros, including taxes and fees, over the total length of stay for hotel bookings. - [`Metrics.vertical_ads_potential_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#vertical_ads_potential_impressions): Total view-capped eligible impressions available across the query context. - [`Metrics.vertical_ads_price_difference_percentage`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#vertical_ads_price_difference_percentage): Percentage delta comparing the advertiser's offered price against the lowest competing price for the same property. |
| Vertical ads segments | New segments | Added the following segments for hotel and travel vertical ads reporting to [`Segments`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments) (selectable with [`campaign`](https://developers.google.com/google-ads/api/fields/v25/campaign), [`ad_group`](https://developers.google.com/google-ads/api/fields/v25/ad_group), and [`customer`](https://developers.google.com/google-ads/api/fields/v25/customer)): - [`Segments.vertical_ads_price_tier`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_price_tier): Advertiser's price tier ([`HotelPriceBucket`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPriceBucketEnum.HotelPriceBucket)) compared to competitors in the auction. - [`Segments.vertical_ads_rate_rule_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_rate_rule_id): The rate rule ID associated with the advertiser's rate rule. - [`Segments.vertical_ads_rate_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#vertical_ads_rate_type): Rate type ([`HotelRateType`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelRateTypeEnum.HotelRateType)) of the hotel booking. |

### v25.1 (2026-08-19)

The following new features and updates were added in Google Ads API v25.1. Minor
versions like v25.1 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| [`AssetFieldType.TEXT_DISCLAIMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#text_disclaimer) [`ServedAssetFieldType.TEXT_DISCLAIMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/ServedAssetFieldTypeEnum.ServedAssetFieldType#text_disclaimer) | New enum values | Added support for text disclaimer assets. |
| Campaigns |||
| [`Campaign.aca_migration_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#aca_migration_date_time) [`Campaign.broad_match_migration_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#broad_match_migration_date_time) | New fields | Track the upcoming auto-migration to AI Max. |
| Conversions |||
| Brand Lift measurements | New features | Added support for Brand Lift measurements with the following updates: - Added new read-only dimensional resources for lift study results: [`LiftMeasurementAgeRange`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementAgeRange), [`LiftMeasurementCampaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementCampaign), [`LiftMeasurementDevice`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementDevice), [`LiftMeasurementGender`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementGender), and [`LiftMeasurementVideo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementVideo). - Added new segments and metrics to support Brand Lift analysis with `LiftMeasurementConfig` and the new dimensional resources. - Added the following enums: [`BrandLiftMeasurementType`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandLiftMeasurementTypeEnum.BrandLiftMeasurementType), [`LiftMeasurementFlightStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlightStatusEnum.LiftMeasurementFlightStatus), [`SurveyIntendedAction`](https://developers.google.com/google-ads/api/reference/rpc/v26/SurveyIntendedActionEnum.SurveyIntendedAction), [`SurveyLiftFlightTargetResponseMode`](https://developers.google.com/google-ads/api/reference/rpc/v26/SurveyLiftFlightTargetResponseModeEnum.SurveyLiftFlightTargetResponseMode), and [`SurveySubjectType`](https://developers.google.com/google-ads/api/reference/rpc/v26/SurveySubjectTypeEnum.SurveySubjectType). |
| Conversion Lift measurements | New features | Added support for Conversion Lift measurements with the following updates: - Added a new read-only resource [`LiftMeasurementConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementConfig) representing a lift study. - Added new selectable segments to segment and filter lift results. - Added 24 new Conversion Lift metrics and winner score metrics supporting detailed statistical analysis of lift performance. - Added support to retrieve campaign details and conversion goals. - Added a new optional field [`Experiment.lift_measurement_config`](https://developers.google.com/google-ads/api/reference/rpc/v26/Experiment#lift_measurement_config). - Added the [`ConversionLiftIncludedConversionActionTypes`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionLiftIncludedConversionActionTypesEnum.ConversionLiftIncludedConversionActionTypes) enum. |
| [`LiftMeasurementFlight`](https://developers.google.com/google-ads/api/reference/rpc/v26/LiftMeasurementFlight) | New resource | A new read-only resource representing flight details for a lift measurement configuration, including measured flight start and end dates (`start_date` and `end_date`). |
| General |||
| [`SmartCampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError) | New enum values | Added new specific error codes for Performance Max generation constraints: - [`VALIDATE_ONLY_GENERATE_PMAX_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError#validate_only_generate_pmax_not_supported) - [`GBP_ENABLED_GENERATE_PMAX_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError#gbp_enabled_generate_pmax_not_supported) - [`IMAGE_ENABLED_GENERATE_PMAX_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignErrorEnum.SmartCampaignError#image_enabled_generate_pmax_not_supported) |
| [`AuthorizationErrorEnum.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AuthorizationErrorEnum.AuthorizationError#cloud_project_not_approved_for_production) | New enum value / error | Returned when a Google Cloud project with `TEST` access level attempts to make requests against a non-test account. |
| Planning |||
| Brand sentiment insights | New features | Added support for brand sentiment insights in [`ContentCreatorInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentCreatorInsightsService): - Added the [`BrandSentimentInsight`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandSentimentInsight), [`SentimentInsightDistribution`](https://developers.google.com/google-ads/api/reference/rpc/v26/SentimentInsightDistribution), and [`SentimentInsightSummary`](https://developers.google.com/google-ads/api/reference/rpc/v26/SentimentInsightSummary) messages. - Added the [`Sentiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/SentimentEnum.Sentiment) enum. - Added the `BRAND_SENTIMENT_DATA` value to the [`ContentCreatorInsightsSupplementalData`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentCreatorInsightsSupplementalDataEnum.ContentCreatorInsightsSupplementalData) enum. - Added the `BRAND` value to the [`InsightsKnowledgeGraphEntityCapabilities`](https://developers.google.com/google-ads/api/reference/rpc/v26/InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities) enum. |
| [`BenchmarksService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService) enhancements | New features | Added support for categories as filters for scoping a benchmarks analysis. Also supported additional business critical metrics: - Added an option to benchmark against all advertisers running ads in one or more Product \& Service Categories using [`BenchmarksService.GenerateBenchmarksMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService/GenerateBenchmarksMetrics) and the [`category_filter`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsRequest#category_filter). - Surfaced more customer ad metrics, such as the customer's aggregate cost and views, and share metrics such as `share_of_voice`. Metrics are returned using [`AggregateMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/AggregateMetrics) and [`ShareMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShareMetrics). - The list of supported categories can be retrieved using [`BenchmarksService.ListBenchmarksSources`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksService/ListBenchmarksSources) with the [`CATEGORY`](https://developers.google.com/google-ads/api/reference/rpc/v26/BenchmarksSourceTypeEnum.BenchmarksSourceType#category) source type. |
| Parental status targeting | New feature | Added support for parental status targeting in reach planning. Added the new field [`parental_statuses`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting#parental_statuses[]) to [`Targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting) for service [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/GenerateReachForecast), and [`parental_statuses`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannableTargeting#parental_statuses[]) to [`PlannableTargeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannableTargeting) for service [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/ListPlannableProducts). |
| Recommendations |||
| [`Recommendation.campaign_specific_app_goal_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#campaign_specific_app_goal_recommendation) | New recommendation | Suggests adding a campaign-specific app conversion goal. The new [`EffectiveAutomaticGoal`](https://developers.google.com/google-ads/api/reference/rpc/v26/EffectiveAutomaticGoal) resource is used to represent current goals within this recommendation. |
| Reports |||
| [`Metrics.original_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#original_conversion_value) | New field | Represents the original conversion value from biddable conversions. This is the unadjusted value of conversions before any value rule adjustments, such as conversion value rules or lifecycle goals adjustments, are applied. |
| Loyalty membership stats | New features | Added support for segmenting stats by user loyalty membership program status, and added loyalty membership primary dimension for conversion value rules: - Added the [`Segments.loyalty_membership`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#loyalty_membership) segment to support segmenting report metrics by the loyalty program tier of the converting user. - Added the [`LOYALTY_MEMBERSHIP`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension#loyalty_membership) primary dimension to identify when a loyalty membership condition was satisfied for a conversion value rule. |
| Targeting |||
| [`vertical_ads_item_bid`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#vertical_ads_item_bid) | New criterion type | Added the new [`vertical_ads_item_bid`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#vertical_ads_item_bid) criterion type to [`AdGroupCriterion.criterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion#criterion). |

### v25 (2026-07-22)

The following new features, updates, and breaking changes were added in Google Ads API
v25, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Campaigns ||||
| Standalone fields `additional_value` and `additional_high_lifetime_value` in [`CustomerLifecycleOptimizationValueSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationValueSettings) | Part of `value_adjustment` and `high_lifetime_value_adjustment` oneofs respectively, alongside the new [`value_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationValueSettings#value_multiplier) and [`high_lifetime_value_multiplier`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationValueSettings#high_lifetime_value_multiplier) fields | Structural change | Update references to these fields as they are now part of oneofs. |
| Legacy [`CustomerLifecycleGoal`](https://developers.google.com/google-ads/api/reference/rpc/v24/CustomerLifecycleGoal) and [`CampaignLifecycleGoal`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignLifecycleGoal) resources, their corresponding services [`CustomerLifecycleGoalService`](https://developers.google.com/google-ads/api/reference/rpc/v24/CustomerLifecycleGoalService) and [`CampaignLifecycleGoalService`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignLifecycleGoalService), and legacy settings/enums (`CustomerAcquisitionGoalSettings`, `CustomerAcquisitionOptimizationModeEnum`, `LifecycleGoalValueSettings`) | None | Removal | Use the revamped unified goals schema: - Use the [`new_customer_acquisition_goal_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Goal#new_customer_acquisition_goal_settings) field in the [`Goal`](https://developers.google.com/google-ads/api/reference/rpc/v26/Goal) resource. - Use the [`campaign_new_customer_acquisition_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfig#campaign_new_customer_acquisition_settings) field in the [`CampaignGoalConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfig) resource to configure campaign-specific overrides. |
| General ||||
| Nested enum fields in Incentive Service request and response messages: - `FetchIncentiveRequest.type` - `Incentive.type` - `IncentiveOffer.type` | Standalone enum fields: - [`FetchIncentiveRequest.incentive_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/FetchIncentiveRequest#incentive_type) - [`Incentive.incentive_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Incentive#incentive_type) - [`IncentiveOffer.offer_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveOffer#offer_type) | Rename / removal | Use the new standalone enum fields instead of the legacy `type` fields. |
| Optional [`selected_incentive_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyIncentiveRequest#selected_incentive_id) and [`customer_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ApplyIncentiveRequest#customer_id) fields in `ApplyIncentiveRequest` | Required fields | Behavioral shift | Ensure you provide both fields when calling `ApplyIncentive`. |
| The consumer email address field [`ContactDetails.email`](https://developers.google.com/google-ads/api/reference/rpc/v24/ContactDetails#email) in the [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead) resource | None | Removal | Remove references to this field because it is no longer supported. |
| Optional [`allowed_domain`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingPartnerLinkInvitationProperties#allowed_domain) field in [`AdvertisingPartnerLinkInvitationProperties`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingPartnerLinkInvitationProperties) | Required field when calling [`CreateProductLinkInvitation`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitationService/CreateProductLinkInvitation) for an advertising partner | Behavioral shift | Ensure you provide `allowed_domain` when creating a product link invitation for an advertising partner. |
| Planning ||||
| The `search_brand` field in [`GenerateCreatorInsightsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#search_brand) | None | Removal | Use [`search_topics`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateCreatorInsightsRequest#search_topics) instead. |
| The `plannable_location_id` field in [`Targeting`](https://developers.google.com/google-ads/api/reference/rpc/v24/Targeting#plannable_location_id) and `cookie_frequency_cap` field in [`GenerateReachForecastRequest`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateReachForecastRequest#cookie_frequency_cap) | None | Removal | Switch to using [`plannable_location_ids`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting#plannable_location_ids[]) and [`cookie_frequency_cap_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateReachForecastRequest#cookie_frequency_cap_setting). |
| Reports ||||
| `customer_metrics` field in [`GenerateBenchmarksMetricsResponse`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateBenchmarksMetricsResponse) and [`BreakdownMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/BreakdownMetrics) of type `Metrics` | Field of type [`CustomerMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMetrics) | Type change / behavioral shift | Update your integrations to use the new `CustomerMetrics` type, which only contains metrics representing the customer's ad performance. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| Ads |||
| [`AssetAutomationType.GENERATE_ANIMATED_IMAGES_FROM_OTHER_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType#generate_animated_images_from_other_assets) | New enum value / behavior | Available for `DemandGenMultiAssetAds`. If enabled, it generates animated images using non-animated images as input. New `DemandGenMultiAssetAds` are opted in by default starting with this API version. |
| Synthetic content info mutability | Behavior change | [`Asset.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#synthetic_content_info) and [`Ad.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#synthetic_content_info) are now fully mutable in v25, v24, and v23. |
| Campaigns |||
| Loyalty Retention Goal | New features / settings | Added support for Loyalty Retention Goal, which allows advertisers to optimize campaigns for retaining loyalty program members. - Added [`LOYALTY_RETENTION`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalTypeEnum.GoalType#loyalty_retention) to the [`GoalType`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalTypeEnum.GoalType) enum. - Added [`CampaignGoalConfig.campaign_loyalty_retention_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfig#campaign_loyalty_retention_settings) to configure campaign-specific loyalty retention settings, including bid adjustments and showing member benefits in PLA format. - Added [`Goal.loyalty_retention_goal_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Goal#loyalty_retention_goal_settings) to configure account-level loyalty retention goal settings. - Added new error codes: - [`LOYALTY_RETENTION_GOAL_INVALID_MODE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#loyalty_retention_goal_invalid_mode) - [`CANNOT_USE_INCOMPATIBLE_CLO_GOALS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#cannot_use_incompatible_clo_goals) - [`LOYALTY_RETENTION_GOAL_ALREADY_EXISTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError#loyalty_retention_goal_already_exists) |
| New Customer Acquisition Goal | New features / settings | Updated New Customer Acquisition Goal support in the Google Ads API to reflect the revamped unified goals schema: - Extended the [`Goal`](https://developers.google.com/google-ads/api/reference/rpc/v26/Goal) resource to support New Customer Acquisition settings using the [`new_customer_acquisition_goal_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Goal#new_customer_acquisition_goal_settings) field. - Extended the [`CampaignGoalConfig`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfig) resource to support campaign-specific overrides for New Customer Acquisition using the [`campaign_new_customer_acquisition_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfig#campaign_new_customer_acquisition_settings) field. - Added the new [`CustomerLifecycleOptimizationGoalSubType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleOptimizationGoalSubTypeEnum.CustomerLifecycleOptimizationGoalSubType) enum to define supported goal subtypes. - Added [`NEW_CUSTOMER_ACQUISITION`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalTypeEnum.GoalType#new_customer_acquisition) to the [`GoalType`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalTypeEnum.GoalType) enum. - Added new validation error reasons to [`GoalError`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError): - [`NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoalErrorEnum.GoalError#new_customer_acquisition_goal_already_exists) - Added new validation error reasons to [`CampaignGoalConfigError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError): - [`CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#campaign_override_values_set_for_new_customer_acquisition_target_specific_option) - [`CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#campaign_override_high_lifetime_value_not_supported_for_campaign_type) - [`CANNOT_USE_INCOMPATIBLE_CLO_GOALS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGoalConfigErrorEnum.CampaignGoalConfigError#cannot_use_incompatible_clo_goals) - Added [`ErrorDetails.incompatible_clo_goal_error_details`](https://developers.google.com/google-ads/api/reference/rpc/v26/ErrorDetails#incompatible_clo_goal_error_details) to expose the new [`IncompatibleCloGoalsErrorDetails`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncompatibleCloGoalsErrorDetails) structure for validation errors. |
| Conversions |||
| YouTube third-party conversion attribution | New fields | Added support for YouTube conversion attribution verification using third-party partners: - Added [`CustomerThirdPartyIntegrationPartners.conversion_attribution_integration_partners`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerThirdPartyIntegrationPartners#conversion_attribution_integration_partners[]) to allow configuring integration partners at the customer level. - Added [`CampaignThirdPartyIntegrationPartners.conversion_attribution_integration_partners`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignThirdPartyIntegrationPartners#conversion_attribution_integration_partners[]) to allow configuring integration partners at the campaign level. See the [Help Center article](https://support.google.com/google-ads/answer/7382633) to learn more. |
| General |||
| [`ContactDetails.phone_number_extension`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContactDetails#phone_number_extension) | New field | Added to the [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead) resource. |
| [`IncentiveError`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError) | New enum values and errors | Added new specific error codes for incentive redemption failures: - [`BILLING_COUNTRY_NOT_ELIGIBLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#billing_country_not_eligible) (the customer's billing country is not eligible for the incentive) - [`USER_IS_MCC_MANAGER`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#user_is_mcc_manager) (the user is a manager account and cannot redeem the incentive) - [`USER_SUSPENDED`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#user_suspended) (the customer account is suspended) - [`MAX_PENDING_INCENTIVES`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#max_pending_incentives) (the customer has reached the maximum number of pending incentives) - [`ACCOUNT_HAD_RECENT_SPEND`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#account_had_recent_spend) (the account had recent spend and is not eligible) - [`MAX_INCENTIVES_REDEEMED_FROM_OFFER`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#max_incentives_redeemed_from_offer) (the customer has already redeemed the maximum number of incentives from this offer) - [`MISMATCHING_BILLING_COUNTRY_CODE`](https://developers.google.com/google-ads/api/reference/rpc/v26/IncentiveErrorEnum.IncentiveError#mismatching_billing_country_code) (the billing country code provided in the request does not match the customer's account country) |
| Planning |||
| YouTube channel details in trending insights | New fields | Added support for more YouTube channel details of related videos when searching trending insights. Added the new fields [`channel_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoAttributeMetadata#channel_id), [`channel_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoAttributeMetadata#channel_name), and [`channel_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoAttributeMetadata#channel_url) to [`YouTubeVideoAttributeMetadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeVideoAttributeMetadata). |
| [`YouTubeChannelInsights.data_sharing_consent_given`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeChannelInsights#data_sharing_consent_given) | New field | Added to [`YouTubeChannelInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeChannelInsights). This is true if a creator has consented to sharing non-public data. If so, the following fields are populated: - [`average_views_per_video`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeMetrics#average_views_per_video) - [`average_likes_per_video`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeMetrics#average_likes_per_video) - [`average_comments_per_video`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeMetrics#average_comments_per_video) - [`engagement_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeMetrics#engagement_rate) - [`channel_audience_attributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeChannelInsights#channel_audience_attributes[]) |
| Reports |||
| [`ad_sub_format_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_sub_format_type) | New segment | Provides a breakdown of YouTube instream non-skippable ads by duration: - [`INSTREAM_NON_SKIPPABLE_STANDARD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdSubFormatTypeEnum.AdSubFormatType#instream_non_skippable_standard) (standard duration instream non-skippable ad) - [`INSTREAM_NON_SKIPPABLE_MAX30_SEC`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdSubFormatTypeEnum.AdSubFormatType#instream_non_skippable_max30_sec) (instream non-skippable ad no longer than 30.99 seconds) - [`INSTREAM_NON_SKIPPABLE_MAX60_SEC`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdSubFormatTypeEnum.AdSubFormatType#instream_non_skippable_max60_sec) (instream non-skippable ad no longer than 60.99 seconds) This segment must always be selected together with [`ad_format_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_format_type). It is selectable with [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup), [`AdGroupAd`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd), [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign), [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer), [`Video`](https://developers.google.com/google-ads/api/reference/rpc/v26/Video), and [`VideoEnhancement`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoEnhancement). |
| Video-specific social metrics | New fields / metrics | Added video-specific social metrics to help advertisers track user engagement (comments, likes, and shares) for Shorts ads on YouTube: - [`Metrics.youtube_comments`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#youtube_comments) - [`Metrics.youtube_likes`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#youtube_likes) - [`Metrics.youtube_shares`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#youtube_shares) They are available in [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup), [`AdGroupAd`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd), [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset), [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign), [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer), and [`Video`](https://developers.google.com/google-ads/api/reference/rpc/v26/Video). |

<br />

## v24 major and minor versions

Google Ads API v24 includes the following new features, updates, and breaking changes.

### v24.2 (2026-06-24)

The following new features and updates were added in Google Ads API v24.2. Minor
versions like v24.2 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Ads |||
| [`AssetAutomationType.GENERATE_LANDING_PAGE_TEXT`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetAutomationTypeEnum.AssetAutomationType#generate_landing_page_text) | New enum value | Generates text information from the landing page to be shown in the engagement panel for [`DemandGenVideoResponsiveAd`](https://developers.google.com/google-ads/api/reference/rpc/v24/DemandGenVideoResponsiveAdInfo) instances (which are opted in by default starting with this API version). |
| Assets |||
| [`AssetGroup.google_local_services_info`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroup#google_local_services_info) | New field | Added to support Local Services Ads information (category ID and callouts) in Performance Max campaigns. |
| [`AssetGroupSignal.local_services_id`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupSignal#local_services_id) | New field | Added to support Local Services Ads service ID signals in Performance Max campaigns. |
| [`AssetGroupSignal.vertical_ads_item_group_rule_list`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupSignal#vertical_ads_item_group_rule_list) | New field | Added to support vertical ads item group rules for selecting items from attached vertical feeds in Performance Max campaigns. This feature is only available to accounts on the allowlist. |
| [`AssetGroupErrorEnum.CANNOT_REMOVE_ALL_ASSET_GROUPS_FROM_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupErrorEnum.AssetGroupError#cannot_remove_all_asset_groups_from_campaign) | New enum value / error | Returned when attempting to remove all asset groups from a campaign. |
| [`AssetGroupSignalErrorEnum.CANNOT_REMOVE_ALL_SIGNALS`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupSignalErrorEnum.AssetGroupSignalError#cannot_remove_all_signals) | New enum value / error | Returned when attempting to remove all signals from an asset group. |
| Campaigns |||
| [`Campaign.PmaxCampaignSettings.local_services_pmax_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v24/Campaign.PmaxCampaignSettings#local_services_pmax_campaign_settings) [`Campaign.PmaxCampaignSettings.local_services_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v24/Campaign.PmaxCampaignSettings#local_services_enabled) | New fields | Support identifying Local Services Performance Max campaigns. |
| [`AdGroup.DemandGenAdGroupSettings.DemandGenChannelControls.DemandGenSelectedChannels.maps`](https://developers.google.com/google-ads/api/reference/rpc/v24/AdGroup.DemandGenAdGroupSettings.DemandGenChannelControls.DemandGenSelectedChannels#maps) | New field | Includes Google Maps in the selectable channels for Demand Gen ad groups. |
| [`CampaignCriterionErrorEnum.CANNOT_REMOVE_ALL_LOCATIONS_FROM_LOCAL_SERVICES_PMAX_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignCriterionErrorEnum.CampaignCriterionError#cannot_remove_all_locations_from_local_services_pmax_campaign) | New enum value / error | Returned when attempting to remove all locations from a local services Performance Max campaign. |
| [`SmartCampaignErrorEnum.CREATION_FAILED`](https://developers.google.com/google-ads/api/reference/rpc/v24/SmartCampaignErrorEnum.SmartCampaignError#creation_failed) | New enum value / error | Returned when attempting to create new Smart Campaigns. |
| Conversions |||
| [`ConversionOrigin.LOCAL_SERVICES_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v24/ConversionOriginEnum.ConversionOrigin#local_services_ads) [`ConversionActionType.LOCAL_SERVICES_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v24/ConversionActionTypeEnum.ConversionActionType#local_services_ads) | New enum values | Represent conversions that occur when a user clicks on a local services ad and calls, messages, or books the advertiser. |
| Experiments |||
| [`COMPARE_CAMPAIGNS`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#compare_campaigns) [`PMAX_TEXT_CUSTOMIZATION_FINAL_URL_EXPANSION`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#pmax_text_customization_final_url_expansion) | New enum values | Added support for new [`ExperimentType`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType) types: - `COMPARE_CAMPAIGNS`: For campaign mix experiments and custom Performance Max experiments that compare multiple campaigns of the same or different types in a single experiment. - `PMAX_TEXT_CUSTOMIZATION_FINAL_URL_EXPANSION`: For Performance Max optimization experiments for text customization and Final URL expansion. |
| General |||
| [`Asset.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v24/Asset#synthetic_content_info) [`Ad.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v24/Ad#synthetic_content_info) | New fields | Contain attestations for synthetic/AI-generated content, split into [`advertiser_attestation`](https://developers.google.com/google-ads/api/reference/rpc/v24/SyntheticContentInfo#advertiser_attestation) (declarations provided directly by the advertiser) and [`system_attestation`](https://developers.google.com/google-ads/api/reference/rpc/v24/SyntheticContentInfo#system_attestation) (attestations automatically detected or provided by the system). This feature has been backported to v23 and v22. To help you plan your upcoming integration work for v25, the interface for mutating advertiser attestation fields is being introduced early for v22 and higher. The interface is visible in these versions, but `synthetic_content_info.advertiser_attestation.status` and `synthetic_content_info.advertiser_attestation.source` will remain immutable for these versions. If you attempt a mutate request on either of these fields, one of these errors will be returned: "The field attempted to be mutated is immutable" or "Field cannot be set". These fields will become fully mutable starting in v25. We recommend using the interface now to build and test your internal logic so your system is ready for full write capabilities when v25 is launched. |
| Multi-Party Authorization | New features | > [!WARNING] > **Beta:** This feature is currently in beta and is subject to change in future releases. Added support for Multi-Party Authorization (MPA) reviews: - Added the [`MultiPartyAuthReview`](https://developers.google.com/google-ads/api/reference/rpc/v24/MultiPartyAuthReview) resource and corresponding [`MultiPartyAuthReviewService`](https://developers.google.com/google-ads/api/reference/rpc/v24/MultiPartyAuthReviewService). - Added the [`MultiPartyAuthReviewStatus`](https://developers.google.com/google-ads/api/reference/rpc/v24/MultiPartyAuthReviewStatusEnum.MultiPartyAuthReviewStatus) enum to track the review status. - Added [`CustomerUserAccess.pending_multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v24/CustomerUserAccess#pending_multi_party_auth_review) to link to a pending review. - Added [`MutateCustomerUserAccessResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v24/MutateCustomerUserAccessResult#multi_party_auth_review) and [`MutateCustomerUserAccessInvitationResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v24/MutateCustomerUserAccessInvitationResult#multi_party_auth_review) to return the associated review resource name. - Added [`MultiPartyAuthReviewError`](https://developers.google.com/google-ads/api/reference/rpc/v24/MultiPartyAuthReviewErrorEnum.MultiPartyAuthReviewError) for validation errors. <br /> This feature has been backported to [v23.3](https://developers.google.com/google-ads/api/docs/release-notes#v23-3-2026-06-24), [v22.2](https://developers.google.com/google-ads/api/docs/archived-release-notes#v22-2-2026-06-24), and [v21.2](https://developers.google.com/google-ads/api/docs/archived-release-notes#v21-2-2026-06-24). |
| [`IncentiveService.FetchIncentive`](https://developers.google.com/google-ads/api/reference/rpc/v24/IncentiveService#FetchIncentive) | Behavioral change | When an invalid email address is provided in the request, the method now gracefully falls back to returning the default incentive offers instead of throwing an `AuthenticationError.INVALID_EMAIL_ADDRESS` error. |
| Planning |||
| [`GenerateCreatorInsightsRequest.search_topics`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#search_topics) | New field | Added to the [`ContentCreatorInsightsService.GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v24/ContentCreatorInsightsService#GenerateCreatorInsights) service. This option searches for creators talking about a topic in the country specified in [`country_locations`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#country_locations[]) (supports searching for one country only). |
| [`CREATOR_TOPIC_INSIGHTS`](https://developers.google.com/google-ads/api/reference/rpc/v24/InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities#creator_topic_insights) | New enum value | Added to [`InsightsKnowledgeGraphEntityCapabilities`](https://developers.google.com/google-ads/api/reference/rpc/v24/InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities) to signify entities for searching creators talking about a topic. These entities should be used in the [`search_topics`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#search_topics) field. Retrieved using [`AudienceInsightsService.ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v24/AudienceInsightsService#ListAudienceInsightsAttributes). |
| [`KnowledgeGraphEntitySearchOptions`](https://developers.google.com/google-ads/api/reference/rpc/v24/KnowledgeGraphEntitySearchOptions) | New type / options | Contains additional search options for topics in [`ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v24/AudienceInsightsService#ListAudienceInsightsAttributes), including options to retrieve all topics supported as creator attributes, and filtering by capabilities. |
| [`GenerateCreatorInsightsRequest.supplemental_data`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#supplemental_data[]) [`GenerateTrendingInsightsRequest.supplemental_data`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateTrendingInsightsRequest#supplemental_data[]) | New fields | Optional inputs to the `ContentCreatorInsightsService` methods. Supplying this field populates additional locations or creator attributes in the response. |
| [`local_creator_insights`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsResponse#local_creator_insights[]) [`related_local_creators`](https://developers.google.com/google-ads/api/reference/rpc/v24/TrendInsight#related_local_creators[]) | New fields | Populated when [`supplemental_data`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateCreatorInsightsRequest#supplemental_data[]) contains the [`LOCAL_CREATOR_DATA`](https://developers.google.com/google-ads/api/reference/rpc/v24/ContentCreatorInsightsSupplementalDataEnum.ContentCreatorInsightsSupplementalData#LOCAL_CREATOR_DATA) enum. Exposes local creators viewed in or based in the chosen country who consented to share location data. |
| [`GenerateTrendingInsightsRequest.sub_country_locations`](https://developers.google.com/google-ads/api/reference/rpc/v24/GenerateTrendingInsightsRequest#sub_country_locations[]) | New field | Added to [`ContentCreatorInsightsService.GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v24/ContentCreatorInsightsService#GenerateTrendingInsights), allowing searches for trending insights using country location and sub country locations. |
| Reports |||
| [`PerformanceMaxPlacementView`](https://developers.google.com/google-ads/api/reference/rpc/v24/PerformanceMaxPlacementView) | Segments extension | Made segmentable by [`ad_network_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_network_type). |
| Shopping |||
| [`Campaign.ShoppingSetting.ignore_brand_exclusion_in_shopping_ads`](https://developers.google.com/google-ads/api/reference/rpc/v24/Campaign.ShoppingSetting#ignore_brand_exclusion_in_shopping_ads) | New field | If true, brand exclusions are ignored for Shopping ads. Only supported for Shopping campaigns. |
| Targeting |||
| [`CriterionErrorEnum.CANNOT_TARGET_LANGUAGE`](https://developers.google.com/google-ads/api/reference/rpc/v24/CriterionErrorEnum.CriterionError#cannot_target_language) | New enum value / error | Returned when attempting to target a language that is not allowed. |
| Videos |||
| [`DataLink.youtube_link_metadata`](https://developers.google.com/google-ads/api/reference/rpc/v24/DataLink#youtube_link_metadata) | New field | Contains [`brand_channel_id`](https://developers.google.com/google-ads/api/reference/rpc/v24/YoutubeLinkMetadata#brand_channel_id) to specify the ID of the linked YouTube brand channel. |

### v24.1 (2026-05-13)

The following new features and updates were added in Google Ads API v24.1. Minor
versions like v24.1 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Ads |||
| [`DemandGenMultiAssetAdInfo.classic_display_images`](https://developers.google.com/google-ads/api/reference/rpc/v24/DemandGenMultiAssetAdInfo#classic_display_images[]) | New field | Custom uploaded display images served without requiring extra responsive assets. |
| Experiments |||
| [`ADOPT_AI_MAX`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#adopt_ai_max) [`ADOPT_BROAD_MATCH_KEYWORDS`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#adopt_broad_match_keywords) [`OPTIMIZE_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#optimize_assets) [`PMAX_REPLACEMENT_SHOPPING`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#pmax_replacement_shopping) | New enum values | Added support for new [`ExperimentType`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType) types: - `ADOPT_AI_MAX`: For experiments that test how AI Max can help you engage more customers with Google AI and broad match keywords. - `ADOPT_BROAD_MATCH_KEYWORDS`: For experiments that test how broad match keywords can impact the number of searches your ads appear in. - `OPTIMIZE_ASSETS`: For custom experiments for optimizing assets. - `PMAX_REPLACEMENT_SHOPPING`: For experiments that test how your Shopping campaigns perform compared to Performance Max. |
| [`Experiment.video_experiment`](https://developers.google.com/google-ads/api/reference/rpc/v24/Experiment#video_experiment) | New field | Configuration support for existing [`YOUTUBE_CUSTOM`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentTypeEnum.ExperimentType#youtube_custom) experiments consisting of Video campaigns. |
| [`ExperimentArm.asset_testing_info`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentArm#asset_testing_info) [`ExperimentArm.asset_groups`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentArm#asset_groups[]) [`ExperimentArm.performance_max_experiment_arm_info`](https://developers.google.com/google-ads/api/reference/rpc/v24/ExperimentArm#performance_max_experiment_arm_info) | New fields | Exposes fields to support asset testing, asset groups, and Performance Max settings in experiment arms: - `asset_testing_info`: Details of assets associated with the experimental copies of ads. - `asset_groups`: List of asset groups in the experiment arm for Optimize Assets experiments. - `performance_max_experiment_arm_info`: Settings for Performance Max campaigns in `PMAX_REPLACEMENT_SHOPPING` experiments. |
| General |||
| [`CustomerUserAccess.passkey_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v24/CustomerUserAccess#passkey_enabled) | New field | Read-only field indicating whether the user has a passkey enabled. |
| Reports |||
| [`mobile_device_platform`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.mobile_device_platform) | New segment | Allows segmenting reports by the user device's platform (such as iOS or Android). |
| [`REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v24/DateRangeErrorEnum.DateRangeError#requested_date_granularity_not_supported) | New enum value / error | Returned when the requested daily, hourly, or weekly time granularity is not supported for query date ranges (only available for the last 37 months). |
| [`vertical_ads_listing_user_rating`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.vertical_ads_listing_user_rating) [`vertical_ads_listing_venue`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.vertical_ads_listing_venue) | New segments | New segments to be used for vertical ads. |
| `user_rating`, `venue`, `event_participant_display_name` | New filter criteria | Supported filtering in [`VerticalAdsItemGroupRuleInfo`](https://developers.google.com/google-ads/api/reference/rpc/v24/VerticalAdsItemGroupRuleInfo) for the [`SharedCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v24/SharedCriterion) resource. |
| Control/treatment experiment metrics | New fields | Added control values (`control_clicks`, etc.), treatment values (`clicks`, etc.), point estimates (`clicks_point_estimate`, etc.), margins of error (`clicks_margin_of_error`, etc.), and p-values (`clicks_p_value`, etc.) across seven core metric families (Clicks, Impressions, Cost, Conversions, Cost per conversion, Conversion value, Conversion value per cost). |
| Conversions absolute change metrics | New fields | Support for [`Conversions` absolute difference estimations](https://developers.google.com/google-ads/api/reference/rpc/v24/Metrics) using point estimate, margin of error, and p-value fields. |
| Targeting |||
| [`CriterionErrorEnum.CANNOT_EXCLUDE_ALL_TARGETS`](https://developers.google.com/google-ads/api/reference/rpc/v24/CriterionErrorEnum.CriterionError#cannot_exclude_all_targets) | New enum value / error | Returned when attempting to exclude all demographics targets. |
| Videos |||
| [`ThirdPartyViewabilityIntegrationPartnerEnum.ZEFR`](https://developers.google.com/google-ads/api/reference/rpc/v24/ThirdPartyViewabilityIntegrationPartnerEnum.ThirdPartyViewabilityIntegrationPartner#zefr) | New enum value | Published ZEFR as a third party viewability integration partner. |
| [`DataLink.youtube_video.channel_id`](https://developers.google.com/google-ads/api/reference/rpc/v24/DataLink#youtube_video) | New field | Exposes the YouTube channel ID associated with the data link. |

### v24 (2026-04-22)

The following new features, updates, and breaking changes were added in Google Ads API
v24, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Ads ||||
| Optional [`videos`](https://developers.google.com/google-ads/api/reference/rpc/v24/DemandGenVideoResponsiveAdInfo#videos[]) and [`logo_images`](https://developers.google.com/google-ads/api/reference/rpc/v24/DemandGenVideoResponsiveAdInfo#logo_images[]) in [`DemandGenVideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v24/DemandGenVideoResponsiveAdInfo) | Required fields | Behavioral shift | Provide `videos` and `logo_images` when creating or mutating responsive Demand Gen video ads. |
| Optional [`videos`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo#videos[]), [`business_name`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo#business_name), and [`logo_images`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo#logo_images[]) in [`VideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo) | Required fields | Behavioral shift | Provide `videos`, `business_name`, and `logo_images` when creating or mutating video responsive ads. Note that [`VideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo) is now mutable. |
| Campaigns ||||
| [`Campaign.video_brand_safety_suitability`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign#video_brand_safety_suitability) | None | Removal | Campaign-level suitability control is removed. Brand safety suitability is still available on the customer level. Use [`Customer.video_brand_safety_suitability`](https://developers.google.com/google-ads/api/reference/rpc/v24/Customer#video_brand_safety_suitability) instead. |
| Conversions ||||
| `UserListCustomerTypeCategoryEnum.LOYALTY_SIGN_UPS` | None | Removal | The loyalty sign ups user category has been removed. Remove code references to it. |
| Planning ||||
| [`InsightsAudienceAttributeGroup`](https://developers.google.com/google-ads/api/reference/rpc/v24/InsightsAudienceAttributeGroup) type for [`topic_audience_combinations`](https://developers.google.com/google-ads/api/reference/rpc/v24/InsightsAudience#topic_audience_combinations[]) | `common.https://developers.google.com/google-ads/api/reference/rpc/v24/InsightsAudienceAttributeGroup` type | Behavioral shift / type change | Typed client libraries integrations must be updated to use the new resource namespaces. |
| `youtube_select_lineups` field in [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#ListPlannableProducts) | None | Removal | Switch to using lineups from [`youtube_select_lineup_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v24/PlannableTargeting#youtube_select_lineup_targeting). |
| `is_brand_connect_creator` field in [`ContentCreatorInsightsService.GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#GenerateCreatorInsights) and [`GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#GenerateTrendingInsights) | None | Removal | Instead, check if a creator has [`CREATOR_PARTNERSHIPS`](https://developers.google.com/google-ads/api/reference/rpc/v24/PartnershipOpportunityEnum.PartnershipOpportunity#creator_partnerships) available in [`partnership_opportunities`](https://developers.google.com/google-ads/api/reference/rpc/v24/YouTubeMetrics#partnership_opportunities[]). |
| `geo_modifiers` and `biddable_keywords` in [`KeywordPlanIdeaService.GenerateKeywordForecastMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v23/KeywordPlanIdeaService#generateKeywordForecastMetrics) | `geo_target_constants` and `keywords` | Rename / removal | Replaced by [`CampaignToForecast.geo_target_constants[]`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignToForecast#geo_target_constants[]) and [`ForecastAdGroup.keywords[]`](https://developers.google.com/google-ads/api/reference/rpc/v24/ForecastAdGroup#keywords[]). |
| Deprecated keywords plan / forecast fields in [`GenerateKeywordForecastMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v23/KeywordPlanIdeaService#generateKeywordForecastMetrics) | None | Removal | Removed the following plan / forecast fields and types: - [`CampaignToForecast.keyword_plan_network`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignToForecast#keyword_plan_network) - [`CampaignToForecast.negative_keywords`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignToForecast#negative_keywords[]) and [`ForecastAdGroup.negative_keywords`](https://developers.google.com/google-ads/api/reference/rpc/v23/ForecastAdGroup#negative_keywords[]) - [`ForecastAdGroup.max_cpc_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v23/ForecastAdGroup#max_cpc_bid_micros) - [`BiddableKeyword`](https://developers.google.com/google-ads/api/reference/rpc/v23/BiddableKeyword) - [`CriterionBidModifier`](https://developers.google.com/google-ads/api/reference/rpc/v23/CriterionBidModifier) - [`KeywordForecastMetrics.impressions`](https://developers.google.com/google-ads/api/reference/rpc/v23/KeywordForecastMetrics#impressions) - [`KeywordForecastMetrics.click_through_rate`](https://developers.google.com/google-ads/api/reference/rpc/v23/KeywordForecastMetrics#click_through_rate) Update integrations accordingly. |
| Reports ||||
| [`ad_sub_network_type`](https://developers.google.com/google-ads/api/reference/rpc/v23/Segments#ad_sub_network_type) segment in [`campaign_budget`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignBudget) | None | Removal | Removed `ad_sub_network_type` segment for the [`campaign_budget`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignBudget) resource. |
| [`click_type`](https://developers.google.com/google-ads/api/reference/rpc/v23/Segments#click_type) segment in asset views | None | Removal | Removed segment from [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v24/AdGroupAsset), [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignAsset), and [`CustomerAsset`](https://developers.google.com/google-ads/api/reference/rpc/v24/CustomerAsset) views. |
| Videos ||||
| Partial failure allowed in [`ShareablePreviewService.GenerateShareablePreviews`](https://developers.google.com/google-ads/api/reference/rpc/v24/ShareablePreviewService#GenerateShareablePreviews) | No partial failure | Behavioral shift | Requests will fail and throw an error if any ID within it fails validation. |
| [`ShareablePreviewError`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreviewErrorEnum.ShareablePreviewError) legacy codes: - [`ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreviewErrorEnum.ShareablePreviewError#asset_group_does_not_exist_under_this_customer) - [`TOO_MANY_ASSET_GROUPS_IN_REQUEST`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreviewErrorEnum.ShareablePreviewError#too_many_asset_groups_in_request) | [`MutateErrorEnum.RESOURCE_NOT_FOUND`](https://developers.google.com/google-ads/api/reference/rpc/v24/MutateErrorEnum.MutateError#resource_not_found) [`ShareablePreviewError.TOO_MANY_RESOURCES_IN_REQUEST`](https://developers.google.com/google-ads/api/reference/rpc/v24/ShareablePreviewErrorEnum.ShareablePreviewError#too_many_resources_in_request) | Rename / behavioral shift | Error codes returned for asset groups are modified to align with ad group ad errors. Update validation catch logic. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| Ads |||
| Mutability of [`VideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v24/VideoResponsiveAdInfo) | Behavioral change | Responsive video ads information objects are now mutable. |
| Assets |||
| [`travel_feed_data`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetSet#travel_feed_data) in `AssetSet` | New field | Added to retrieve travel feed assets attributes (`hotel_center_account_id`, `merchant_center_id`, `partner_center_id`, `subset_id`, `travel_feed_vertical_type`). |
| Campaigns |||
| [`Campaign.view_through_conversion_optimization_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v24/Campaign#view_through_conversion_optimization_enabled) | New field | Allows enabling View-Through Conversion (VTC) Optimization (default `false`) in Demand Gen and App campaigns. |
| [`CampaignCriterion.gender`](https://developers.google.com/google-ads/api/reference/rpc/v24/CampaignCriterion#gender) | New feature | Enabled gender exclusions for Performance Max campaigns on all Google Ads API versions. |
| Conversions |||
| Lead Gen conversion types | New enum values | Added new GA4/Firebase conversion action type enums in [`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v24/ConversionActionTypeEnum.ConversionActionType): - `GOOGLE_ANALYTICS_4_GENERATE_LEAD` - `GOOGLE_ANALYTICS_4_QUALIFY_LEAD` - `GOOGLE_ANALYTICS_4_CLOSE_CONVERT_LEAD` - `FIREBASE_ANDROID_GENERATE_LEAD` - `FIREBASE_ANDROID_QUALIFY_LEAD` - `FIREBASE_ANDROID_CLOSE_CONVERT_LEAD` - `FIREBASE_IOS_GENERATE_LEAD` - `FIREBASE_IOS_QUALIFY_LEAD` - `FIREBASE_IOS_CLOSE_CONVERT_LEAD` |
| General |||
| [`UserListErrorEnum.DUPLICATE_LOOKALIKE`](https://developers.google.com/google-ads/api/reference/rpc/v24/UserListErrorEnum.UserListError#duplicate_lookalike) | New enum value / error | Returned when attempting to create multiple identical lookalike lists. |
| Planning |||
| `ProductCoreAttributes` fields in `ListPlannableProductsResponse` | New fields | Added plannable product description, marketing objective, cost model, and buying method to [`ProductCoreAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v24/ProductCoreAttributes) under [`ListPlannableProductsResponse`](https://developers.google.com/google-ads/api/reference/rpc/v24/ListPlannableProductsResponse). |
| Reports |||
| [`CartDataSalesView`](https://developers.google.com/google-ads/api/reference/rpc/v24/CartDataSalesView) | New reporting resource | Exposes reports segmenting conversions metrics by the specific product sold (brand, etc.) in addition to the clicked product. |
| Non-biddable metrics | New fields | Added non-biddable metrics (metrics showing conversions that campaigns are not optimizing for) to all matching resources: - [`all_average_cart_size`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_average_cart_size) - [`all_average_order_value_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_average_order_value_micros) - [`all_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_cost_of_goods_sold_micros) - [`all_cross_sell_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_cross_sell_cost_of_goods_sold_micros) - [`all_cross_sell_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_cross_sell_gross_profit_micros) - [`all_cross_sell_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_cross_sell_revenue_micros) - [`all_cross_sell_units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_cross_sell_units_sold) - [`all_gross_profit_margin`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_gross_profit_margin) - [`all_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_gross_profit_micros) - [`all_lead_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_lead_cost_of_goods_sold_micros) - [`all_lead_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_lead_gross_profit_micros) - [`all_lead_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_lead_revenue_micros) - [`all_lead_units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_lead_units_sold) - [`all_orders`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_orders) - [`all_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_revenue_micros) - [`all_units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_units_sold) |
| [`conversion_attribution_event_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_attribution_event_type) | New segment | Added to [`ShoppingPerformanceView`](https://developers.google.com/google-ads/api/reference/rpc/v24/ShoppingPerformanceView). |
| Shopping |||
| App campaigns in `ShoppingProduct` | New feature | Supported App campaigns inside the [`ShoppingProduct`](https://developers.google.com/google-ads/api/reference/rpc/v24/ShoppingProduct) resource. Note status and issues are not supported. |
| Tag-based product filtering | New feature | Introduced filtering using logical set expressions dynamically: - Added [`RETAIL_FILTER_BUNDLE`](https://developers.google.com/google-ads/api/reference/rpc/v24/CriterionTypeEnum.CriterionType#retail_filter_bundle) and [`RETAIL_FILTER`](https://developers.google.com/google-ads/api/reference/rpc/v24/CriterionTypeEnum.CriterionType#retail_filter) criterion types. - Added [`RETAIL_FILTER`](https://developers.google.com/google-ads/api/reference/rpc/v24/SharedSetTypeEnum.SharedSetType#retail_filter) shared set type. - Added the `retail_filter_bundle` field to [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v24/AdGroupCriterion). - Added the `retail_filter` field to [`SharedCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v24/SharedCriterion). - Added `RETAIL` to [`ListingGroupFilterListingSource`](https://developers.google.com/google-ads/api/reference/rpc/v24/ListingGroupFilterListingSourceEnum.ListingGroupFilterListingSource). - Added `RetailFilter` dimension to [`AssetGroupListingGroupFilter`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupListingGroupFilter). - Added related new validation errors in [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v24/CriterionErrorEnum.CriterionError) and [`AssetGroupListingGroupFilterError`](https://developers.google.com/google-ads/api/reference/rpc/v24/AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterError). This feature is only available to accounts on the allowlist. |

<br />

## v23 major and minor versions

Google Ads API v23 includes the following new features, updates, and breaking changes.

### v23.3 (2026-06-24)

The following new features and updates were added in Google Ads API v23.3. Minor
versions like v23.3 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| General |||
| [`Asset.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v23/Asset#synthetic_content_info) [`Ad.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/v23/Ad#synthetic_content_info) | New fields | Contain attestations for synthetic/AI-generated content, split into [`advertiser_attestation`](https://developers.google.com/google-ads/api/reference/rpc/v23/SyntheticContentInfo#advertiser_attestation) (declarations provided directly by the advertiser) and [`system_attestation`](https://developers.google.com/google-ads/api/reference/rpc/v23/SyntheticContentInfo#system_attestation) (attestations automatically detected or provided by Google's systems). To help you plan your upcoming integration work for v25, the interface for mutating advertiser attestation fields is being introduced early for v22 and higher. The interface is visible in these versions, but `synthetic_content_info.advertiser_attestation.status` and `synthetic_content_info.advertiser_attestation.source` will remain immutable for these versions. If you attempt a mutate request on either of these fields, one of these errors will be returned: "The field attempted to be mutated is immutable" or "Field cannot be set". These fields will become fully mutable starting in v25. We recommend using the interface now to build and test your internal logic so your system is ready for full write capabilities when v25 is launched. |
| Multi-party approvals | New features | > [!WARNING] > **Beta:** This feature is currently in beta and is subject to change in future releases. Added support for multi-party approvals (MPA) reviews: - Added the [`MultiPartyAuthReview`](https://developers.google.com/google-ads/api/reference/rpc/v23/MultiPartyAuthReview) resource and corresponding [`MultiPartyAuthReviewService`](https://developers.google.com/google-ads/api/reference/rpc/v23/MultiPartyAuthReviewService). - Added the [`MultiPartyAuthReviewStatus`](https://developers.google.com/google-ads/api/reference/rpc/v23/MultiPartyAuthReviewStatusEnum.MultiPartyAuthReviewStatus) enum to track the review status. - Added [`CustomerUserAccess.pending_multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v23/CustomerUserAccess#pending_multi_party_auth_review) to link to a pending review. - Added [`MutateCustomerUserAccessResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v23/MutateCustomerUserAccessResult#multi_party_auth_review) and [`MutateCustomerUserAccessInvitationResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/v23/MutateCustomerUserAccessInvitationResult#multi_party_auth_review) to return the associated review resource name. - Added [`MultiPartyAuthReviewError`](https://developers.google.com/google-ads/api/reference/rpc/v23/MultiPartyAuthReviewErrorEnum.MultiPartyAuthReviewError) for validation errors. |

### v23.2 (2026-03-25)

The following new features and updates were added in Google Ads API v23.2. Minor
versions like v23.2 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| [`VideoEnhancement`](https://developers.google.com/google-ads/api/reference/rpc/v23/VideoEnhancement) | New resource | Contains enhancement-specific video ad information, such as whether it's Google-generated or advertiser-provided. See the [About video enhancements](https://support.google.com/google-ads/answer/13652431) to learn more. |
| [`AppTopCombinationView`](https://developers.google.com/google-ads/api/reference/rpc/v23/AppTopCombinationView) | New resource | Read-only resource to provide insights into top-performing asset combinations in App campaigns. |
| [`CustomerAsset`](https://developers.google.com/google-ads/api/reference/rpc/v23/CustomerAsset) | New feature | Added support to retrieve `CustomerAsset` with [`field_type`](https://developers.google.com/google-ads/api/reference/rpc/v23/AssetFieldTypeEnum.AssetFieldType) set to `BUSINESS_LOGO`. |
| Campaigns |||
| [`AdGroupAd.start_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupAd#start_date_time) [`AdGroupAd.end_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupAd#end_date_time) | New fields | Provide more granular scheduling constraints over the campaign's dates. This is only supported for some ad group types. |
| [`HotelSettingInfo.disable_hotel_setting`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign.HotelSettingInfo#disable_hotel_setting) | New field | Allows disabling the hotel feed in Demand Gen campaigns. |
| General |||
| [`CustomerClientLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v23/CustomerClientLinkErrorEnum.CustomerClientLinkError) | New enum values / errors | Added two new error codes: `MAX_CUSTOMER_LIMIT_REACHED` and `ACCOUNT_CREATION_POLICY_VIOLATION`. |
| [`UserListCustomerTypeCategoryEnum.LOYALTY_SIGN_UPS`](https://developers.google.com/google-ads/api/reference/rpc/v23/UserListCustomerTypeCategoryEnum.UserListCustomerTypeCategory#loyalty_sign_ups) | Behavioral change | An error is now thrown when attempting to use this sunsetted user list customer type category. |
| Planning |||
| [`GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#generateTrendingInsights) [`GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#generateCreatorInsights) | New features | Added support for custom AND/OR combinations of entities, topics, and audiences. |
| [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#generateReachForecast) | New enum values | Added new targetable age ranges, such as `AGE_RANGE_21_44` or `AGE_RANGE_21_49`. |
| [`youtube_select_lineup_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v23/PlannableTargeting#youtube_select_lineup_targeting) | New field | Added to [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#listPlannableProducts), which will replace `youtube_select_lineups`. Both fields are currently populated. |
| [`ReachPlanSurface`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanSurfaceEnum.ReachPlanSurface) | New enum value | Added `IN_STREAM_NON_SKIPPABLE_THIRTY_SECONDS` as a surface option. |
| [`Forecast`](https://developers.google.com/google-ads/api/reference/rpc/v23/Forecast) | New field | Added `clicks` for Demand Gen Max Clicks (CPC) in [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#generateReachForecast). |
| [`partnership_opportunities`](https://developers.google.com/google-ads/api/reference/rpc/v23/YouTubeMetrics#partnership_opportunities[]) | New field | Added to [`ContentCreatorInsightsService.GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#generateCreatorInsights) and [`ContentCreatorInsightsService.GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#generateTrendingInsights). |
| Reports |||
| `biddable_indirect_install_first_in_app_conversion_micros` | New field | Added to [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign), [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v23/Customer), and [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroup) resources. |
| Videos |||
| [`ShareablePreviewService`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreviewService) | New feature | Extended to support YouTube Live previews by setting [`preview_type`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreview#preview_type) to `YOUTUBE_LIVE_PREVIEW`. Added `UNSUPPORTED_AD_TYPE` and `TOO_MANY_RESOURCES_IN_REQUEST` to [`ShareablePreviewError`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShareablePreviewErrorEnum.ShareablePreviewError). This is only supported for some ad types. |

### v23.1 (2026-02-25)

The following new features and updates were added in Google Ads API v23.1. Minor
versions like v23.1 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Account management |||
| `advertising_partner_properties.allowed_domain` | New field | Added to [`ProductLinkInvitation`](https://developers.google.com/google-ads/api/reference/rpc/v23/ProductLinkInvitation) and [`ProductLink`](https://developers.google.com/google-ads/api/reference/rpc/v23/ProductLink) resources. The advertising partner will only be able to advertise on this domain. |
| [`Customer.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/v23/Customer) | New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an [`EuPoliticalAdvertisingStatus`](https://developers.google.com/google-ads/api/reference/rpc/v23/EuPoliticalAdvertisingStatusEnum.EuPoliticalAdvertisingStatus). |
| Campaigns |||
| [`Campaign.text_guidelines`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign#text_guidelines) | New field | Added support for text guidelines, which can be used with Performance Max and Search campaigns to programmatically control AI-generated text assets. Within `text_guidelines`, you can define [`term_exclusions`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign.TextGuidelines#term_exclusions[]) and [`messaging_restrictions`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign.TextGuidelines#messaging_restrictions[]). |
| `CampaignPrimaryStatusReason` | New enum values | Added `CAMPAIGN_NOT_BOOKED`, `BOOKING_HOLD_EXPIRING`, `BOOKING_HOLD_EXPIRED`, and `BOOKING_CANCELLED` to provide primary status reasons for campaigns with the `FIXED_CPM` bidding strategy. |
| [`Campaign.VideoCampaignSettings.reservation_ad_category_self_disclosure`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign.VideoCampaignSettings#reservation_ad_category_self_disclosure) [`Campaign.VideoCampaignSettings.booking_details`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign.VideoCampaignSettings#booking_details) | New fields | Added support for reservation ad category self disclosure and read-only booking details. |
| `Campaign.missing_eu_political_advertising_declaration` | New field | Supports querying and filtering campaigns that are missing declarations about whether they contain political advertising targeted towards the EU. |
| Conversions |||
| `ConversionActionCategory.YOUTUBE_FOLLOW_ON_VIEWS` | New enum value | Supports tracking users who watch an ad and later watch a video from the same channel. |
| General |||
| [`CriterionErrorEnum.CANNOT_TARGET_ONLY_UNDETERMINED`](https://developers.google.com/google-ads/api/reference/rpc/v23/CriterionErrorEnum.CriterionError#cannot_target_only_undetermined) | New enum value / error | Returned when attempting to target only the undetermined category in demographics dimensions. |
| Incentives |||
| [`IncentiveErrorEnum`](https://developers.google.com/google-ads/api/reference/rpc/v23/IncentiveErrorEnum.IncentiveError) | New enum values / errors | Added two new error codes: `MAX_INCENTIVES_REDEEMED` and `ACCOUNT_TOO_OLD`. These errors can be returned for requests made on or after March 11, 2026. |
| Planning |||
| [`GenerateBenchmarksMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v23/BenchmarksService#generatebenchmarksmetrics) | New feature | Added support for date breakdowns using a [`BreakdownDefinition`](https://developers.google.com/google-ads/api/reference/rpc/v23/BreakdownDefinition). |
| [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#generateReachForecast) | New enum value | Added `GOOGLE_DISPLAY_NETWORK` as a targetable surface for Demand Gen Max Conversions. |
| [`GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/ContentCreatorInsightsService#generateTrendingInsights) | New fields | Added historical trend line information in [`TrendInsightDataPoint`](https://developers.google.com/google-ads/api/reference/rpc/v23/TrendInsightDataPoint) to [`TrendInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/TrendInsight) when searching by topic. |
| Reports |||
| Unique user frequency metrics | New fields | Added new metrics that report how many users saw your ad at least two, three, four, five or ten times: `unique_users_two_plus`, `unique_users_three_plus`, `unique_users_four_plus`, `unique_users_five_plus`, and `unique_users_ten_plus`. |
| [`SearchTermMatchSource`](https://developers.google.com/google-ads/api/reference/rpc/v23/SearchTermMatchSourceEnum.SearchTermMatchSource) | New enum value | Added `VERTICAL_ADS_DATA_FEED` to support vertical ad data feeds, such as Travel Ads entity targeting. |
| YouTubeVideoUpload |||
| `YouTubeVideoUpload` | New service / resource | Added the `YouTubeVideoUpload` service to support uploading and managing videos on YouTube, and the `YouTubeVideoUpload` resource to support fetching upload status and metadata. This feature is only supported for REST and the Python client library. |

### v23 (2026-01-28)

<br />

[Video](https://www.youtube.com/watch?v=HTsB6xjSUfw)

<br />

The following new features, updates, and breaking changes were added in Google Ads API
v23, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Ads ||||
| Ad sharing permitted | [`AdGroupAdError.AD_SHARING_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupAdErrorEnum.AdGroupAdError#ad_sharing_not_allowed) | Behavioral shift | Ad sharing among multiple ad groups is no longer permitted. Requests attempting to share ads will return an `AD_SHARING_NOT_ALLOWED` error. |
| Support for `CallAd` and `CallAdInfo` | None | Removal | Support for call ads has been removed. Refer to the [About call ads](https://support.google.com/google-ads/answer/6341403) help center article. |
| Campaigns ||||
| `Campaign.start_date` `Campaign.end_date` | [`Campaign.start_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign#start_date_time) [`Campaign.end_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v23/Campaign#end_date_time) | Rename / replacement | Use the new date-time fields to specify time components for campaigns. The original date-only fields are removed. |
| Demand Gen ||||
| `DemandGenMultiAssetAdInfo.lead_form_only` | None | Removal | The `lead_form_only` field has been removed. Update references in your code. |
| Reports ||||
| Aggregate asset performance label metrics and enum | None | Removal | Removed aggregate asset performance label metrics. The performance label enum is no longer returned for Search and Display. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| Ads |||
| [`AdFormatType`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdFormatTypeEnum.AdFormatType) | New enum values | Added new format types: `TEXT`, `VERTICAL_ADS_BOOKING_LINK`, and `VERTICAL_ADS_PROMOTION`. |
| Assets |||
| [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group) view | New fields | Added the following metrics: [`metrics.engagements`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.engagements), [`metrics.engagement_rate`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.engagement_rate), and [`metrics.average_cpe`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_cpe). |
| [`asset_group_asset`](https://developers.google.com/google-ads/api/fields/v26/asset_group_asset) view | New fields | Added the following metrics: [`metrics.average_cpe`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_cpe), [`metrics.average_cpm`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_cpm), [`metrics.trueview_average_cpv`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.trueview_average_cpv), [`metrics.video_trueview_view_rate`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.video_trueview_view_rate), [`metrics.video_trueview_views`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.video_trueview_views), and [`metrics.interaction_event_types`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.interaction_event_types). |
| [`Asset.orientation`](https://developers.google.com/google-ads/api/reference/rpc/v23/Asset#orientation) | New field | Read-only orientation field added to image and video assets. |
| [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignAsset) | New feature | Added support to retrieve campaign assets with [`field_type`](https://developers.google.com/google-ads/api/reference/rpc/v23/AssetFieldTypeEnum.AssetFieldType) set to `HEADLINE` and `DESCRIPTION`. |
| [`ServedAssetFieldType`](https://developers.google.com/google-ads/api/reference/rpc/v23/ServedAssetFieldTypeEnum.ServedAssetFieldType) | New enum values | Added `HEADLINE_AS_SITELINK_POSITION_ONE`, `HEADLINE_AS_SITELINK_POSITION_TWO`, `DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE`, and `DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO` for assets served as sitelinks. |
| [`BusinessMessageAsset`](https://developers.google.com/google-ads/api/reference/rpc/v23/BusinessMessageAsset) | New features / support | Updated Business Message assets: - Added support for Facebook Messenger and Zalo as providers. - Added `FACEBOOK_MESSENGER` and `ZALO` to [`BusinessMessageProvider`](https://developers.google.com/google-ads/api/reference/rpc/v23/BusinessMessageProviderEnum.BusinessMessageProvider). - Added fields `facebook_messenger_info` and `zalo_info`. - Added [`CUSTOMER_NOT_ON_ALLOWLIST_FOR_MESSAGE_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/v23/AssetErrorEnum.AssetError#customer_not_on_allowlist_for_message_assets) to [`AssetError`](https://developers.google.com/google-ads/api/reference/rpc/v23/AssetErrorEnum.AssetError). |
| Billing |||
| [`InvoiceService.ListInvoices`](https://developers.google.com/google-ads/api/reference/rpc/v23/InvoiceService#listinvoices) | New options | Can now return more granular details in [`Invoice`](https://developers.google.com/google-ads/api/reference/rpc/v23/Invoice), including campaign-level cost breakdown, itemized regulatory costs, and adjustment information, by setting `include_granular_level_invoice_details` in [`ListInvoicesRequest`](https://developers.google.com/google-ads/api/reference/rpc/v23/ListInvoicesRequest). |
| [`RegulatoryFeeType`](https://developers.google.com/google-ads/api/reference/rpc/v23/RegulatoryFeeTypeEnum.RegulatoryFeeType) [`UnitOfMeasure`](https://developers.google.com/google-ads/api/reference/rpc/v23/UnitOfMeasureEnum.UnitOfMeasure) | New enums | Added helper enums for regulatory fees and units of measure. |
| Campaigns |||
| [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignErrorEnum.CampaignError) | New enum values / errors | Added `DURATION_TOO_LONG_FOR_TOTAL_BUDGET` and `END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET` error codes. |
| Conversions |||
| ConversionActionCategory | New enum value | Added `YOUTUBE_FOLLOW_ON_VIEWS` to support tracking users who watch an ad and later watch a video from the same channel. |
| Demand Gen |||
| [`DemandGenVideoResponsiveAdInfo.companion_banner`](https://developers.google.com/google-ads/api/reference/rpc/v23/DemandGenVideoResponsiveAdInfo#companion_banners) | New field | Added support for companion banners in Demand Gen responsive video ads. |
| Incentives |||
| Added Choose Your Own (CYO) incentives support: - Added the [`FetchIncentive`](https://developers.google.com/google-ads/api/reference/rpc/v23/IncentiveService#fetchincentive) method to retrieve available personalized incentives for a user. - Added the [`ApplyIncentive`](https://developers.google.com/google-ads/api/reference/rpc/v23/IncentiveService#applyincentive) method to apply a selected incentive to a customer account. - Added the [`AppliedIncentive`](https://developers.google.com/google-ads/api/reference/rpc/v23/AppliedIncentive) resource (queryable using [`Search`](https://developers.google.com/google-ads/api/reference/rpc/v23/GoogleAdsService#search) and [`SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v23/GoogleAdsService#searchstream)) to provide redemption details. - Added new error codes in [`IncentiveError`](https://developers.google.com/google-ads/api/reference/rpc/v23/IncentiveErrorEnum.IncentiveError) and [`AuthenticationError.INVALID_EMAIL_ADDRESS`](https://developers.google.com/google-ads/api/reference/rpc/v23/AuthenticationErrorEnum.AuthenticationError#invalid_email_address). To facilitate more granular programmatic handling of failures, we will add additional error codes to `IncentivesService` in future releases. We recommend that you monitor upcoming announcements and release notes for these new error codes to make sure your applications can manage these new failure modes. |
| Planning |||
| [`AudienceInsightsDimension.LIFE_EVENT_USER_INTEREST`](https://developers.google.com/google-ads/api/reference/rpc/v23/AudienceInsightsDimensionEnum.AudienceInsightsDimension#life_event_user_interest) | New enum value | Allows building audiences using Life Events in `GenerateAudienceCompositionInsights`, `GenerateSuggestedTargetingInsights`, `GenerateInsightsFinderReport`, and `GenerateCreatorInsights`. Life Events are not supported for other [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/v23/AudienceInsightsService) methods such as `AudienceInsightsService.GenerateAudienceOverlap` and `AudienceInsightsService.GenerateTargetingSuggestionMetrics`. |
| [`ReachPlanService.GenerateConversionRates`](https://developers.google.com/google-ads/api/reference/rpc/v23/ReachPlanService#generateconversionrates) | New fields / options | The response now includes surfaces to support conversion rate suggestions based on surface controls (e.g., Gmail, Shorts). Only supported for Demand Gen campaigns. |
| [`LanguageDistribution`](https://developers.google.com/google-ads/api/reference/rpc/v23/LanguageDistribution) | New field / type | Added to [`YouTubeChannelInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/YouTubeChannelInsights) to provide language distribution details in YouTube channel content. |
| [`BenchmarksService`](https://developers.google.com/google-ads/api/reference/rpc/v23/BenchmarksService) | New service | Compares YouTube advertisement data against industry benchmarks. |
| [`AudienceInsightsService.GenerateAudienceDefinition`](https://developers.google.com/google-ads/api/reference/rpc/v23/AudienceInsightsService#generateAudienceDefinition) | New method | Translates a free text description of a target audience into matching audience attributes using generative AI. |
| [`YouTubeChannelInsights.relevance_score`](https://developers.google.com/google-ads/api/reference/rpc/v23/YouTubeChannelInsights#relevance_score) | New field | Evaluates how relevant a creator is for a topic weighted by views. |
| [`TrendInsightMetrics.trend_change_percent`](https://developers.google.com/google-ads/api/reference/rpc/v23/TrendInsightMetrics#trend_change_percent) | New field | Represents the percentage change in a trend's value over the comparison period. |
| Recommendations |||
| [`GenerateRecommendationsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v23/GenerateRecommendationsRequest) | New field | Added `is_new_customer`. When set to `true` for `CAMPAIGN_BUDGET` recommendations, it uses a model optimized for new customers (only recommended for customers with no campaigns). |
| Reports |||
| [`AdGroupAdAssetView`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupAdAssetView) | New feature / metrics support | Now supports impression, performance, and conversion metrics for [`RESPONSIVE_DISPLAY_AD`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdTypeEnum.AdType#responsive_display_ad). |
| [`ad_sub_network_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_sub_network_type) segment | New segment | Provides granular performance breakdown within an ad network. Initially available for Demand Gen campaigns on YouTube (In-stream, In-feed, Shorts). Must be selected along with `ad_network_type`. |
| Performance Max reporting | New feature | Enabled ad network type breakdown for Performance Max campaigns. |
| [`UserLocationView`](https://developers.google.com/google-ads/api/reference/rpc/v23/UserLocationView) [`GeographicView`](https://developers.google.com/google-ads/api/reference/rpc/v23/GeographicView) | New segments support | Support metrics segmented by conversion date: `conversions_by_conversion_date`, `all_conversions_by_conversion_date`, `conversions_value_by_conversion_date`, `all_conversions_value_by_conversion_date`, `value_per_conversions_by_conversion_date`, `value_per_all_conversions_by_conversion_date`, `cross_device_conversions_by_conversion_date`, and `cross_device_conversions_value_by_conversion_date`. |
| Vertical ads segments | New segments | Added the following segments: `vertical_ads_event_participant_display_names`, `vertical_ads_hotel_class`, `vertical_ads_listing`, `vertical_ads_listing_brand`, `vertical_ads_listing_city`, `vertical_ads_listing_country`, `vertical_ads_listing_region`, `vertical_ads_partner_account`, and `vertical_ads_vertical`. |
| [`PerStoreView`](https://developers.google.com/google-ads/api/reference/rpc/v23/PerStoreView) [`MatchedLocationInterestView`](https://developers.google.com/google-ads/api/reference/rpc/v23/MatchedLocationInterestView) | New reporting resources | Added `PerStoreView` to query store location details, and `MatchedLocationInterestView` (for AI Max campaigns) to provide performance metrics by geographic locations of interest. |
| Shopping |||
| [`ShoppingPerformanceView`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShoppingPerformanceView) | New metrics support | Now supports the following metrics segmented by conversion date: `conversions_by_conversion_date`, `all_conversions_by_conversion_date`, `conversions_value_by_conversion_date`, and `value_per_conversions_by_conversion_date`, `value_per_all_conversions_by_conversion_date`. |
| [`ShoppingPerformanceView`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShoppingPerformanceView) | New metrics support | Added support for: `search_budget_lost_impression_share`, `search_rank_lost_impression_share`, `search_budget_lost_absolute_top_impression_share`, and `search_rank_lost_absolute_top_impression_share`. |
| [`ShoppingProduct.product_image_uri`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShoppingProduct#product_image_uri) | New field | Added to [`ShoppingProduct`](https://developers.google.com/google-ads/api/reference/rpc/v23/ShoppingProduct). |
| Vertical ads |||
| [`AdGroup.vertical_ads_format_setting`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroup#vertical_ads_format_setting) | New field | Allows control over which ad formats can serve in Search campaigns using travel feeds. |
| [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupCriterion) [`SharedCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v23/SharedCriterion) | New fields / criteria | Added `vertical_ads_item_group_rule_list` criterion type to `AdGroupCriterion` and `vertical_ads_item_group_rule` to `SharedCriterion` to permit targeting item groups in Search campaigns with travel feeds. |
| Vertical ads data feed integration | New feature | Can now connect a vertical ads data feed to a search campaign running AI Max to show property promotion and booking link travel ads alongside text ads. Control formats with [`vertical_ads_format_setting`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroup#vertical_ads_format_setting) and define rules using `vertical_ads_item_group_rule`. Segment reporting by [`AdFormatType`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdFormatTypeEnum.AdFormatType) and vertical ads data feed dimensions. |
| Videos |||
| [`AdVideoAssetInfo.ad_video_asset_feature_control`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdVideoAssetInfo#ad_video_asset_feature_control) | New field | Added feature control options for video ad assets. |
| [`CampaignCriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v23/CampaignCriterionErrorEnum.CampaignCriterionError#invalid_video_lineup_id) | New enum value / error | Added the `INVALID_VIDEO_LINEUP_ID` error code. |
| YouTube audibility metrics | New metrics | Added audibility metrics for audio ads on YouTube, reporting whether an ad was audible and on how many impressions audibility could be measured. |

## Archived release notes

See [Sunsetted versions](https://developers.google.com/google-ads/api/docs/archived-release-notes) for archived release notes.