Page Summary
-
Google Ads API v22 introduces the AssetGenerationService for generating text and image assets using generative AI.
-
New bidding goals without a target CPA or ROAS are added for App campaigns to optimize for installs or total value.
-
Demand Gen campaigns now support the TargetCPC bidding strategy and asset automation for generating design variations and videos from existing assets.
-
Performance Max campaigns gain new AssetAutomationType values for image enhancement and extraction, along with new segments for reporting.
-
Planning services include updates for user lists, partner audiences, YouTube metrics, trend insights, and support for parental status and income ranges in AudienceInsightsService.
Refer to Feature deprecations for an up to date list of current and planned feature deprecations.
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 |
New enum value | Generates text information from the landing page to be shown in the engagement panel for DemandGenVideoResponsiveAd instances (which are opted in by default starting with this API version). |
| Assets | ||
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 |
New field | Added to support Local Services Ads service ID signals in Performance Max campaigns. |
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 |
New enum value / error | Returned when attempting to remove all asset groups from a campaign. |
AssetGroupSignalErrorEnum.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 Campaign.PmaxCampaignSettings.local_services_enabled |
New fields | Support identifying Local Services Performance Max campaigns. |
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 |
New enum value / error | Returned when attempting to remove all locations from a local services Performance Max campaign. |
SmartCampaignErrorEnum.CREATION_FAILED |
New enum value / error | Returned when attempting to create new Smart Campaigns. |
| Conversions | ||
ConversionOrigin.LOCAL_SERVICES_ADS 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 PMAX_TEXT_CUSTOMIZATION_FINAL_URL_EXPANSION |
New enum values | Added support for new ExperimentType types:
|
| General | ||
Asset.synthetic_content_info Ad.synthetic_content_info |
New fields | Contain attestations for synthetic/AI-generated content, split into advertiser_input (declarations provided directly by the advertiser) and system_input (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
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 |
Added support for Multi-Party Authorization (MPA) reviews:
This feature has been backported to v23.3, v22.2, and v21.2. |
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 |
New field | Added to the ContentCreatorInsightsService.GenerateCreatorInsights service. This option searches for creators talking about a topic in the country specified in country_locations (supports searching for one country only). |
CREATOR_TOPIC_INSIGHTS |
New enum value | Added to InsightsKnowledgeGraphEntityCapabilities to signify entities for searching creators talking about a topic. These entities should be used in the search_topics field. Retrieved using AudienceInsightsService.ListAudienceInsightsAttributes. |
KnowledgeGraphEntitySearchOptions |
New type / options | Contains additional search options for topics in ListAudienceInsightsAttributes, including options to retrieve all topics supported as creator attributes, and filtering by capabilities. |
GenerateCreatorInsightsRequest.supplemental_data 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 related_local_creators |
New fields | Populated when supplemental_data contains the 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 |
New field | Added to ContentCreatorInsightsService.GenerateTrendingInsights, allowing searches for trending insights using country location and sub country locations. |
| Reports | ||
PerformanceMaxPlacementView |
Segments extension | Made segmentable by ad_network_type. |
| Shopping | ||
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 |
New enum value / error | Returned when attempting to target a language that is not allowed. |
| Videos | ||
DataLink.youtube_link_metadata |
New field | Contains 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 |
New field | Custom uploaded display images served without requiring extra responsive assets. |
| Experiments | ||
ADOPT_AI_MAX ADOPT_BROAD_MATCH_KEYWORDS OPTIMIZE_ASSETS PMAX_REPLACEMENT_SHOPPING |
New enum values | Added support for new ExperimentType types:
|
Experiment.video_experiment |
New field | Configuration support for existing YOUTUBE_CUSTOM experiments consisting of Video campaigns. |
ExperimentArm.asset_testing_info ExperimentArm.asset_groups ExperimentArm.performance_max_experiment_arm_info |
New fields | Exposes fields to support asset testing, asset groups, and Performance Max settings in experiment arms:
|
| General | ||
CustomerUserAccess.passkey_enabled |
New field | Read-only field indicating whether the user has a passkey enabled. |
| Reports | ||
mobile_device_platform |
New segment | Allows segmenting reports by the user device's platform (such as iOS or Android). |
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 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 for the 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 using point estimate, margin of error, and p-value fields. |
| Targeting | ||
CriterionErrorEnum.CANNOT_EXCLUDE_ALL_TARGETS |
New enum value / error | Returned when attempting to exclude all demographics targets. |
| Videos | ||
ThirdPartyViewabilityIntegrationPartnerEnum.ZEFR |
New enum value | Published ZEFR as a third party viewability integration partner. |
DataLink.youtube_video.channel_id |
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 for guidance.
Breaking changes
| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Ads | |||
Optional videos and logo_images in DemandGenVideoResponsiveAdInfo |
Required fields | Behavioral shift | Provide videos and logo_images when creating or mutating responsive Demand Gen video ads. |
Optional videos, business_name, and logo_images in VideoResponsiveAdInfo |
Required fields | Behavioral shift | Provide videos, business_name, and logo_images when creating or mutating video responsive ads. Note that VideoResponsiveAdInfo is now mutable. |
| Campaigns | |||
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 instead. |
| Conversions | |||
UserListCustomerTypeCategoryEnum.LOYALTY_SIGN_UPS |
None | Removal | The loyalty sign ups user category has been removed. Remove code references to it. |
| Planning | |||
InsightsAudienceAttributeGroup type for topic_audience_combinations |
common.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 |
None | Removal | Switch to using lineups from youtube_select_lineup_targeting. |
is_brand_connect_creator field in ContentCreatorInsightsService.GenerateCreatorInsights and GenerateTrendingInsights |
None | Removal | Instead, check if a creator has CREATOR_PARTNERSHIPS available in partnership_opportunities. |
geo_modifiers and biddable_keywords in KeywordPlanIdeaService.GenerateKeywordForecastMetrics |
geo_target_constants and keywords |
Rename / removal | Replaced by CampaignToForecast.geo_target_constants[] and ForecastAdGroup.keywords[]. |
Deprecated keywords plan / forecast fields in GenerateKeywordForecastMetrics |
None | Removal | Removed the following plan / forecast fields and types: Update integrations accordingly. |
| Reports | |||
ad_sub_network_type segment in campaign_budget |
None | Removal | Removed ad_sub_network_type segment for the campaign_budget resource. |
click_type segment in asset views |
None | Removal | Removed segment from AdGroupAsset, CampaignAsset, and CustomerAsset views. |
| Videos | |||
Partial failure allowed in ShareablePreviewService.GenerateShareablePreviews |
No partial failure | Behavioral shift | Requests will fail and throw an error if any ID within it fails validation. |
ShareablePreviewError legacy codes:
|
MutateErrorEnum.RESOURCE_NOT_FOUND 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 |
Behavioral change | Responsive video ads information objects are now mutable. |
| Assets | ||
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 |
New field | Allows enabling View-Through Conversion (VTC) Optimization (default false) in Demand Gen and App campaigns. |
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:
|
| General | ||
UserListErrorEnum.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 under ListPlannableProductsResponse. |
| Reports | ||
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:
|
conversion_attribution_event_type |
New segment | Added to ShoppingPerformanceView. |
| Shopping | ||
App campaigns in ShoppingProduct |
New feature | Supported App campaigns inside the ShoppingProduct resource. Note status and issues are not supported. |
| Tag-based product filtering | New feature | Introduced filtering using logical set expressions dynamically:
|
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 Ad.synthetic_content_info |
New fields | Contain attestations for synthetic/AI-generated content, split into advertiser_attestation (declarations provided directly by the advertiser) and 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
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 |
Added support for multi-party approvals (MPA) reviews:
|
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 |
New resource | Contains enhancement-specific video ad information, such as whether it's Google-generated or advertiser-provided. See the About video enhancements to learn more. |
AppTopCombinationView |
New resource | Read-only resource to provide insights into top-performing asset combinations in App campaigns. |
CustomerAsset |
New feature | Added support to retrieve CustomerAsset with field_type set to BUSINESS_LOGO. |
| Campaigns | ||
AdGroupAd.start_date_time 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 |
New field | Allows disabling the hotel feed in Demand Gen campaigns. |
| General | ||
CustomerClientLinkError |
New enum values / errors | Added two new error codes: MAX_CUSTOMER_LIMIT_REACHED and ACCOUNT_CREATION_POLICY_VIOLATION. |
UserListCustomerTypeCategoryEnum.LOYALTY_SIGN_UPS |
Behavioral change | An error is now thrown when attempting to use this sunsetted user list customer type category. |
| Planning | ||
GenerateTrendingInsights GenerateCreatorInsights |
New features | Added support for custom AND/OR combinations of entities, topics, and audiences. |
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 |
New field | Added to ReachPlanService.ListPlannableProducts, which will replace youtube_select_lineups. Both fields are currently populated. |
ReachPlanSurface |
New enum value | Added IN_STREAM_NON_SKIPPABLE_THIRTY_SECONDS as a surface option. |
Forecast |
New field | Added clicks for Demand Gen Max Clicks (CPC) in ReachPlanService.GenerateReachForecast. |
partnership_opportunities |
New field | Added to ContentCreatorInsightsService.GenerateCreatorInsights and ContentCreatorInsightsService.GenerateTrendingInsights. |
| Reports | ||
biddable_indirect_install_first_in_app_conversion_micros |
New field | Added to Campaign, Customer, and AdGroup resources. |
| Videos | ||
ShareablePreviewService |
New feature | Extended to support YouTube Live previews by setting preview_type to YOUTUBE_LIVE_PREVIEW. Added UNSUPPORTED_AD_TYPE and TOO_MANY_RESOURCES_IN_REQUEST to 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 and ProductLink resources. The advertising partner will only be able to advertise on this domain. |
Customer.contains_eu_political_advertising |
New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an EuPoliticalAdvertisingStatus. |
| Campaigns | ||
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 and 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 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 |
New enum value / error | Returned when attempting to target only the undetermined category in demographics dimensions. |
| Incentives | ||
IncentiveErrorEnum |
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 |
New feature | Added support for date breakdowns using a BreakdownDefinition. |
ReachPlanService.GenerateReachForecast |
New enum value | Added GOOGLE_DISPLAY_NETWORK as a targetable surface for Demand Gen Max Conversions. |
GenerateTrendingInsights |
New fields | Added historical trend line information in TrendInsightDataPoint to TrendInsights 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 |
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)
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 for guidance.
Breaking changes
| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Ads | |||
| Ad sharing permitted | 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 help center article. |
| Campaigns | |||
Campaign.start_date Campaign.end_date |
Campaign.start_date_time 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 |
New enum values | Added new format types: TEXT, VERTICAL_ADS_BOOKING_LINK, and VERTICAL_ADS_PROMOTION. |
| Assets | ||
asset_group view |
New fields | Added the following metrics: metrics.engagements, metrics.engagement_rate, and metrics.average_cpe. |
asset_group_asset view |
New fields | Added the following metrics: metrics.average_cpe, metrics.average_cpm, metrics.trueview_average_cpv, metrics.video_trueview_view_rate, metrics.video_trueview_views, and metrics.interaction_event_types. |
Asset.orientation |
New field | Read-only orientation field added to image and video assets. |
CampaignAsset |
New feature | Added support to retrieve campaign assets with field_type set to HEADLINE and DESCRIPTION. |
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 |
New features / support | Updated Business Message assets:
|
| Billing | ||
InvoiceService.ListInvoices |
New options | Can now return more granular details in Invoice, including campaign-level cost breakdown, itemized regulatory costs, and adjustment information, by setting include_granular_level_invoice_details in ListInvoicesRequest. |
RegulatoryFeeType UnitOfMeasure |
New enums | Added helper enums for regulatory fees and units of measure. |
| Campaigns | ||
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 |
New field | Added support for companion banners in Demand Gen responsive video ads. |
| Incentives | ||
Added Choose Your Own (CYO) incentives support:
To facilitate more granular programmatic handling of failures, we will add additional error codes to |
||
| Planning | ||
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 |
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 |
New field / type | Added to YouTubeChannelInsights to provide language distribution details in YouTube channel content. |
BenchmarksService |
New service | Compares YouTube advertisement data against industry benchmarks. |
AudienceInsightsService.GenerateAudienceDefinition |
New method | Translates a free text description of a target audience into matching audience attributes using generative AI. |
YouTubeChannelInsights.relevance_score |
New field | Evaluates how relevant a creator is for a topic weighted by views. |
TrendInsightMetrics.trend_change_percent |
New field | Represents the percentage change in a trend's value over the comparison period. |
| Recommendations | ||
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 |
New feature / metrics support | Now supports impression, performance, and conversion metrics for RESPONSIVE_DISPLAY_AD. |
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 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 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 |
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 |
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 |
New field | Added to ShoppingProduct. |
| Vertical ads | ||
AdGroup.vertical_ads_format_setting |
New field | Allows control over which ad formats can serve in Search campaigns using travel feeds. |
AdGroupCriterion 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 and define rules using vertical_ads_item_group_rule. Segment reporting by AdFormatType and vertical ads data feed dimensions. |
| Videos | ||
AdVideoAssetInfo.ad_video_asset_feature_control |
New field | Added feature control options for video ad assets. |
CampaignCriterionError |
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. |
v22 major and minor versions
Google Ads API v22 includes the following new features, updates, and breaking changes.
v22.2 (2026-06-24)
The following new features and updates were added in Google Ads API v22.2. Minor versions like v22.2 don't contain breaking changes.
| Features and updates | Type | Description |
|---|---|---|
| General | ||
Asset.synthetic_content_info Ad.synthetic_content_info |
New fields | Contain attestations for synthetic/AI-generated content, split into advertiser_attestation (declarations provided directly by the advertiser) and 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
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 |
Added support for multi-party approvals (MPA) reviews:
|
v22.1 (2026-02-25)
The following new feature was added in Google Ads API v22.1. Minor versions like v22.1 don't contain breaking changes.
| Features and updates | Type | Description |
|---|---|---|
| Account management | ||
Customer.contains_eu_political_advertising |
New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an EuPoliticalAdvertisingStatus. |
| Campaigns | ||
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. |
v22 (2025-10-15)
The following new features, updates, and breaking changes were added in Google Ads API v22, which is a major release.
See Upgrade to the latest version for guidance.
Breaking changes
| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Demand Gen | |||
BudgetPerDayMinimumErrorDetails.minimum_bugdet_amount_micros |
minimum_budget_amount_micros |
Rename / spelling fix | Rename references to use the corrected field name. |
| General | |||
No operations limit in AddBatchJobOperations |
10,000 operations limit per request | Behavioral shift | Ensure that no single AddBatchJobOperations request contains more than 10,000 operations. |
Silently capped page size at 1,000 in ListBatchJobResultsRequest |
Returns INVALID_PAGE_SIZE error |
Behavioral shift | Ensure ListBatchJobResultsRequest.page_size is set to 1,000 or less, as requesting a larger page size will now result in an error. |
| Performance Max | |||
| Asset performance labels | None | Removal | Asset performance labels support and the associated performance label enum have been removed for Performance Max campaigns. Update integrations accordingly. |
Campaign.url_expansion_opt_out |
FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION flag in AssetAutomationSetting |
Removal / replacement | Use the final URL expansion text asset automation setting. The Campaign-level URL expansion opt-out field is removed. |
| Planning | |||
views |
trueview_views |
Removal / replacement | Replace references to views with the new trueview_views field in ReachPlanService. |
| Videos | |||
average_cpv video_view_rate video_views video_view_rate_in_feed video_view_rate_in_stream video_view_rate_shorts |
trueview_average_cpv video_trueview_view_rate video_trueview_views video_trueview_view_rate_in_feed video_trueview_view_rate_in_stream video_trueview_view_rate_shorts |
Renames | Update query strings and integrations to use the new metric names representing TrueView video views. |
Features and updates (non-breaking)
| Features and updates | Type | Description |
|---|---|---|
| Assets | ||
AssetFieldType.LANDING_PAGE_PREVIEW |
New enum value | Added as a new image asset field type. |
AssetGenerationService |
New service (Beta) | Allows generating text and image assets using generative AI:
|
| Campaigns | ||
AppCampaignBiddingStrategyGoalType |
New enum values | Added new goals for App campaigns for installs (ACi) to optimize without specifying a target:
|
BiddingStrategyType |
New feature | Added support for the fixed share of voice bidding strategy type. |
Campaign.feed_types |
New field | Shows the types of feeds attached to a campaign. For Performance Max campaigns, this can indicate the business vertical, such as MERCHANT_CENTER_FEED for retail. |
| Shared set targeting | New feature | Allowed attaching negative keywords shared sets to multi-channel (for App campaigns) and local campaigns. |
| Demand Gen | ||
| TargetCPC bidding | New feature | Added bidding strategy to maximize clicks at target CPC: set campaign-level target CPC using Campaign.target_cpc and override at ad group level using AdGroup.target_cpc_micros. |
AssetAutomationType.GENERATE_DESIGN_VERSIONS_FOR_IMAGES |
New enum value | If enabled for DemandGenMultiAssetAdInfo, this adds design elements and embeds text assets into image assets to create new image assets with different aspect ratios (enabled by default). |
AssetAutomationType.GENERATE_VIDEOS_FROM_OTHER_ASSETS |
New enum value | If enabled for DemandGenMultiAssetAdInfo, it generates videos using other assets like images and text, which can then be used to create new DemandGenVideoResponsiveAdInfo instances (enabled by default). |
| General | ||
ListBatchJobResultsRequest page size fallback |
Behavioral change | If page_size is not set or is 0, it now defaults to the maximum of 1,000 (previously returned INVALID_PAGE_SIZE). |
QuotaError |
New enum value / error | Added PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED to indicate when payment profile activation rate limit is exceeded. |
| Performance Max | ||
| Asset automation settings | New enum values | Added new PMax asset automation options:
|
| PMax reporting segments | New segments | Added new segments unique to Performance Max campaigns:
|
| Planning | ||
| CRM partner data lists | New feature / enum value | Added THIRD_PARTY_PARTNER_DATA to CRM data sources, along with partner audience validation error codes (such as tos acceptance, Link missing, etc.). |
| Livestream creator metrics | New field | Added YouTubeMetrics.is_active_live_stream_creator, returned by creator insights to indicate if a creator published a livestream in the past 90 days. |
| Plannable CRM source metadata | New message | Added PlannableUserListMetadata inside PlannableUserList, returned by ReachPlanService.ListPlannableUserLists, to show CRM data source types. |
| Support for related videos and creators in TrendInsight | New fields | Added support for related_videos and related_creators on TrendInsight, and watch properties in video_properties and publish_date. |
| InsightsFinder improvements | New feature | GenerateInsightsFinderReport now supports parental_status, income_ranges, and more complex AND/OR targeting combinations. |
| Reports | ||
| New click types | New enum values | Added CLICK_TO_MESSAGE_THIRD_PARTY_CLICK and CLICK_TO_MESSAGE_LANDING_PAGE_CLICK. |
| AssetGroupAsset segmentation | New segments support | AssetGroupAsset is now segmentable by device, conversion_action, conversion_action_name, and conversion_action_category. |
| RSAs in AdGroupAdAssetView | New feature / metrics support | AdGroupAdAssetView now fully supports performance and conversion metrics for RESPONSIVE_SEARCH_AD (previously only impressions were returned). |
| Exploration query cluster metric segmentations | New segments support | Metrics clicks_unique_query_clusters, conversions_unique_query_clusters, and impressions_unique_query_clusters are now segmentable by date fields. |
| TargetingExpansionView | New reporting resource | Added TargetingExpansionView to report metrics for expansions over manual targeting, such as keywordless expansion for AI Max for Search Campaigns. |
| Shopping | ||
| Shopping scope fix | Bug fix | Fixed the campaign and ad group scoping of metrics in the ShoppingProduct resource. |
| Unified goals | ||
| Retention goals | New feature | Added support for customer retention goals to optimize for re-engaging existing customers (e.g., using target_option with TARGET_SPECIFIC or TARGET_ALL). |
| Videos | ||
| Video watch time metrics | New fields | Added watch time duration metrics: video_watch_time_duration_millis (total duration) and average_video_watch_time_duration_millis (average duration per impression). |
v21 major and minor versions
Google Ads API v21 includes the following new features, updates, and breaking changes.
v21.2 (2026-06-24)
The following new features and updates were added in Google Ads API v21.2. Minor versions like v21.2 don't contain breaking changes.
| Features and updates | Type | Description |
|---|---|---|
| General | ||
| Multi-party approvals | New features |
Added support for multi-party approvals (MPA) reviews:
|
v21.1 (2026-02-25)
The following new features and updates were added in Google Ads API v21.1. Minor versions like v21.1 don't contain breaking changes.
| Features and updates | Type | Description |
|---|---|---|
| Account management | ||
Customer.contains_eu_political_advertising |
New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an EuPoliticalAdvertisingStatusEnum. |
| Campaigns | ||
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. |
v21 (2025-08-06)
The following new features, updates, and breaking changes were added in Google Ads API v21, which is a major release.
See Upgrade to the latest version for guidance.
Breaking changes
| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Campaigns | |||
Returns CriterionError.INVALID_LISTING_GROUP_HIERARCHY |
Returns CriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION |
Error code change | For requests with a partial failure enabled, handle the new error code instead of the original hierarchy error code. |
| Conversions | |||
Access to debug_enabled mode in ConversionUploadService |
None | Removal | The debug_enabled field is removed. Update code referencing it to not set or query this parameter. |
| EU political advertising changes | |||
| Optional campaign self-declarations for EU political advertising | Required contains_eu_political_advertising field for new campaigns |
Validation rule / behavioral shift | API calls to create new campaigns will fail with a FieldError.REQUIRED error if this field is not set. Starting September 22, 2025, campaigns declared as CONTAINS_EU_POLITICAL_ADVERTISING will no longer serve in the EU. |
| Modifiable criteria without self-declaration | Fails updates with CriterionError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION |
Validation rule / behavioral shift | Set the self-declaration status before attempting to create or update campaign- or ad group-level proximity, location, or location group targeting criteria for existing campaigns. |
| Experiments without self-declaration requirements | Fails updates with ExperimentError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION |
Validation rule / behavioral shift | Ensure that the self-declarations have been completed on the experiment's campaigns. |
| Performance Max | |||
brand_guidelines_enabled defaults to false |
Defaults to true |
Behavioral shift | For new Performance Max campaigns, brand guidelines are enabled by default. Explicitly set the field to false if they should be disabled. |
| Planning | |||
Original input argument type for AudienceInsightsService.GenerateTargetingSuggestionMetrics |
Input of type InsightsAudience |
Type change | Update implementations to pass the new input type which supports an AND-of-ORs combination of user interests, permitting potential reach metrics for custom audience definitions. |
Features and updates (non-breaking)
| Features and updates | Type | Description |
|---|---|---|
| AI Max for Search campaigns | ||
ai_max_setting.enable_ai_max in Campaign |
New field | Enables AI Max to expand search term matching (respecting previous text asset automation and brand lists until toggled off). The field Campaign.ai_max_setting.bundling_required indicates if AI Max must be enabled to respect/modify those settings, and AdGroup.ai_max_ad_group_setting.disable_search_term_matching can disable matching at the ad group level. See Unlock next-level performance with AI Max for Search campaigns. |
CampaignError.AI_MAX_MUST_BE_ENABLED |
New enum value / error | Thrown when opting in to URL expansion text asset automation in Search campaigns without enabling AI Max. |
| Ad group level targeting | New feature | Support added in AI Max for Search campaigns for brand lists, locations, and webpages (URL rules) at the ad group level. |
ai_max_search_term_ad_combination_view |
New reporting resource | Reports performance on combinations of search terms, headlines, and landing pages. |
search_term_match_type segment |
New enum value | Added AI_MAX as a search term match type option. |
| Assets | ||
PromotionAsset |
New fields | Added terms_and_conditions_text, terms_and_conditions_uri, and oneof promotion_trigger options (promotion_barcode_info, promotion_qr_code_info). See About promotion assets. |
AssetAutomationType.FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION |
New enum value | Added to AssetAutomationType to control automated text and landing page generation from final URLs in Search campaigns. |
AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset |
New service / method | Allows removing automatically created final URL expansion assets from campaigns. |
ServedAssetFieldType.DESCRIPTION_PREFIX |
New enum value | Added to correct a reporting issue where the type was returned as UNKNOWN in ad_group_ad_asset_combination_view. |
| Campaigns | ||
CampaignPrimaryStatusReason.MISSING_LOCATION_TARGETING |
New enum value | Returned when location-restricted campaigns lack location targeting (which now throws LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN if targeted outside the allowed area). |
| Third-party app analytics integration | New fields | Added support for VideoCustomer.third_party_integration_partners and Campaign.third_party_integration_partners. See Track app conversions with third-party app analytics. |
Campaign.advertising_partner_ids |
New field support | The field can now be set for existing campaigns (remains immutable after being set). |
| Manager-level negative placements | New feature | Allows exclusions of placement lists across individual advertiser accounts using CustomerNegativeCriterion. |
| Tolerance configurations in target ROAS strategies | New fields | Added support for TargetRoas.target_roas_tolerance_percent_millis (for Search campaign portfolio strategies) in MaximizeConversionValue and TargetRoas. |
LocationInterestView |
New reporting resource | Summarizes performance of ad group location interest criteria. |
| Conversions | ||
conversion_attribution_event_type segment |
New enum value | Added ENGAGED_VIEW to conversion attribution type options. |
| Demand Gen | ||
CampaignBudgetError.BUDGET_BELOW_DAILY_MINIMUM |
New enum value / error | Added in preparation for enforcing minimum daily budgets for Demand Gen campaigns. Details are exposed using budgetDailyMinimumErrorDetails. |
| Performance Max | ||
campaign_search_term_view |
New reporting resource | Aggregates search terms metrics at the campaign level, enabling search term analysis and reporting for Performance Max. |
| Planning | ||
ReachPlanService.ListPlannableUserInterests |
New method | Allows discovering plannable affinities and in-market interests for generateReachForecast. |
AdditionalApplicationInfo |
New field | Added as an optional input in ReachPlanService.ListPlannableUserLists. |
| AudienceInsights attributes listing | New feature | AudienceInsightsService.ListAudienceInsightsAttributes now fetches available 1P user lists. |
| AudienceCompositionInsights targeting CRM lists | New feature | AudienceInsightsService.GenerateAudienceCompositionInsights now returns user list index details for AudienceInsightsDimension dimensions: AGE_RANGE, GENDER, AFFINITY_USER_INTEREST, and IN_MARKET_USER_INTEREST. |
TrendInsightMetrics audience share |
New field | Represents the share of an audience for a trend. |
KnowledgeGraphAttributeMetadata categories |
New fields | Filters Knowledge Graph attributes by matching categories. |
| Reports | ||
| Asset views metrics | New features / metrics | Added multiple new metrics to AssetGroupAsset, ChannelAggregateAssetView, and CampaignAggregateAssetView. PMax campaigns also now report true values for impressions. |
| Selector extensions | New feature | Made AssetSet and CampaignAssetSet queryable together inside ChangeStatus. |
search_term_targeting_status |
New segment | Selectable segment in the campaign search term view. |
final_url_expansion_asset_view |
New reporting resource | Reports final URL expansion asset performance details. |
| AssetGroup value adjustments | New fields | Added support for value_adjustment and all_value_adjustment metrics in the AssetGroup report. |
landing_page_source |
New segment | Provides a landing page source segment in landing_page_view. |
search_term_match_source |
New segment | Selectable segment in the search term and campaign search term views. |
match_type |
New segment | Selectable segment key in the keyword view. |
| Unique query intent clusters reporting | New fields | Added clicks_unique_query_clusters, conversions_unique_query_clusters, and impressions_unique_query_clusters to report unique query intent clusters. |
ClickType.VEHICLE_ASSETS |
New enum value | Track and report clicks related specifically to vehicle ad formats in the click_view report. |
| Smart Bidding Exploration | ||
| tolerance configurations in Search strategies | New fields / settings | Allows enabling Smart Bidding Exploration on Search campaigns by setting target_roas_tolerance_percent_millis between 10,000 (10%) and 30,000 (30%) inclusive (Maximize Conversions requires target_roas setting). See our blog post on Smart Bidding Exploration and help center article. |
| diversity reporting compatibility | New feature | Aggregated diversity reporting is now supported for the following metrics for unique query intent clusters. A time segmented view is available in the Google Ads UI:
|
| Videos | ||
YouTubeVideoListAsset |
New resource / field | Allows establishing links between campaigns and video list assets using Asset.youtube_video_list_asset. See Use related videos. |
| Insights metadata extensions | New fields | Added new metadata to YouTubeChannelInsights and YouTubeVideoAttributeMetadata. |
| Interactive click types | New enum values | Added click types: VIDEO_RELATED_VIDEOS_CLICK, VIDEO_CHANNEL_CLICK, and PRODUCT_ASSETS. |
VideoAdInventoryControl.allow_non_skippable_in_stream |
New field | Lets Video Responsive ads serve as non-skippable in-stream ads for campaigns mixing skip and non-skip formats. |
| Video sequencing settings | New fields | Added read-only sequencing configurations: Campaign.VideoCampaignSettings.video_ad_sequence and VideoAdSequenceStepSetting. See About video ad sequencing. |
| Video lineup targeting | New criterion type / field | Added VIDEO_LINEUP criterion type and corresponding field in CampaignCriterion and AdGroupCriterion. This feature is only available to accounts on the allowlist. |
| Content suitability placements views | New reporting resources | Added a Content Suitability report for both detail (detail_content_suitability_placement_view) and group (group_content_suitability_placement_view) levels. See About the 'Content suitability' report. |
Archived release notes
See Sunsetted versions for archived release notes.