Upgrade to the latest version

Periodically, you might want to upgrade from an older major version of the Google Ads API to a newer major version. It could be because a version is sunsetting, or it could be because you want to use a new feature. We recommend that you always upgrade to the newest version.

Check out our deprecation schedule to plan your upgrades. See our versioning guide to learn how versioning works.

Here's a checklist to help you get started with the process of upgrading:

  1. Your endpoint will change when you change major versions. Update your client libraries to use the newest endpoint.
  2. Go through the release notes to see changes that were introduced in each release.
  3. Check out the tables below for specific areas to focus on for the version you're upgrading to.

For a comprehensive overview of changes based on a diff between the protos from the two versions, look at the diff table.

v18 to v19

Changes to services and their components
API-wide

All feed-related entities are removed from the API. Feeds have been deprecated for some time, replaced with assets.

Removed entities and their associated services:

  • AdGroupExtensionSetting
  • AdGroupFeed
  • CampaignExtensionSetting
  • CampaignFeed
  • CustomerExtensionSetting
  • CustomerFeed
  • ExtensionFeedItem
  • Feed
  • FeedItem
  • FeedItemSet
  • FeedItemSetLink
  • FeedItemTarget
  • FeedMapping

Removed enums:

  • FeedOrigin
  • PlaceholderType

Removed fields:

  • ChangeEvent.{feed,feed_item,feed_origin}
  • ChangeEvent.ChangedResource.{feed,feed_item,campaign_feed,ad_group_feed}
  • ChangeStatus.{feed,feed_item,ad_group_feed,campaign_feed,feed_origin}
  • Campaign.DynamicSearchAdsSetting.feeds
  • LocationGroupInfo.feed
  • Segments.placeholder_type

Removed views:

  • FeedPlaceholderView
AudienceInsightsService Submessage types AudienceInsightsAttribute, AudienceInsightsTopic, AudienceInsightsEntity, AudienceInsightsCategory, AudienceInsightsDynamicLineup, AudienceInsightsAttributeMetadata, YouTubeChannelAttributeMetadata, DynamicLineupAttributeMetadata, LocationAttributeMetadata, and UserInterestAttributeMetadata have been migrated out of the "resources" folder into the "common" folder so that they can be reused with the ContentCreatorInsightsService. These types work the same way, but you may need to import them from a different location, depending on your implementation.
AdGroupType, AdType, and AdvertisingChannelSubType The VIDEO_OUTSTREAM ad type has been removed.
DemandGenVideoResponsiveAdInfo When specifying the Campaign.asset_automation_settings or AdGroupAd.ad_group_ad_asset_automation_settings, omitting a setting for AssetAutomationType.GENERATE_SHORTER_YOUTUBE_VIDEOS for the DemandGenVideoResponsiveAdInfo ad type will result in being opted in for this feature. Previously, when omitting this setting, they were opted out.

v17 to v18

Changes to services and their components
GoogleAdsService Search and SearchStream requests

The error when your request is throttled because it is too expensive will be either QuotaError.EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION or QuotaError.EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION instead of QuotaError.RESOURCE_EXHAUSTED. See the blog post for more details.

GoogleAdsService The summary_row_setting and return_total_results_count fields in SearchGoogleAdsRequest are now part of the new SearchSettings object.
AssetType The DISCOVERY_CAROUSEL_CARD enum value has been renamed to DEMAND_GEN_CAROUSEL_CARD. This is in line with a previous change to rename discovery campaigns to demand gen campaigns.
AudienceInsightsService.GenerateSuggestedTargetingInsights The audience, baseline_audience, and data_month fields have been moved within the audience_definition field.
DemandGenCampaignSettings The default value for the upgraded_targeting field is now true instead of false.
LocalServicesLeadConversation The phone_call_details.call_recording_url field will no longer be populated for static calls.