Migration Guide (v201802)

See Deprecation Schedule for deprecation and sunset dates.

This page covers incremental changes introduced in v201802 that may remove or change functionality provided in previous versions. If you're moving multiple versions at once, make sure to consult each migration guide in sequence for a complete picture of API changes.

Changes to services and their components

Ad text ideas in Universal Ad Campaigns that have more than one exclamation mark across all four lines will now return SettingError.TOO_MANY_EXCLAMATION_MARKS rather than RequestError.INVALID_INPUT.

CampaignService UniversalAppCampaignSetting

The universalAppBiddingStrategyGoalType field has new values, OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION and OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND, which disambiguate some campaigns that returned as UNKNOWN in previous versions.

CampaignService UniversalAppCampaignSetting

The new appVendor field is now required.

CampaignService DynamicSearchAdsSetting

When attempting to set a domainName that includes a subdomain, the returned error message will now be SettingError.DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME rather than SettingError.DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME.


When adding a ManualCpcBiddingScheme, enhancedCpcEnabled will now default to true, rather than defaulting to false like in previous versions.


The enhancedCpcEnabled field has been removed from the TargetSpendBiddingScheme, as MaximizeConversionsBiddingScheme offers similar functionality.


New types of PolicyTopicConstraint, CertificateMissingConstraint and ResellerConstraint, may now be returned for policy violation errors.


The targetAll setting for demographic criteria types GENDER, AGE_RANGE, PARENT, and INCOME_RANGE cannot initially be set to false or changed from true to false. Attempting to do so will result in either a TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL or TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP error, respectively.

Additionally, a TargetingSettingDetail with targetAll set to true will be created automatically for each demographic criterion type when creating an ad group using v201802 or newer. You can use positive criteria only for bid adjustments, and negative criteria to restrict targeting on these demographics.

AdGroupCriterionService BiddableAdGroupCriterion

URL fields (destinationUrl, finalUrls, finalMobileUrls, finalAppUrls, trackingUrlTemplate, and urlCustomParameters) are no longer allowed to be set for demographic criteria (AgeRange, Gender, IncomeRange, Parent) in search and shopping campaigns. Doing so will result in a CriterionError.CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE error.

These URL fields were always ignored while serving. This validation brings the API in line with serving.

Placement criteria type

The URL of a placement will no longer allow the "?" character. When specified, this will return CriterionError.INVALID_FORMAT_FOR_PLACEMENT_URL.

Placements with a "?" character were always ignored while serving. This validation brings the API in line with serving.

AdwordsUserListService Member

The new appId field is now required when uploading mobile advertising IDs in a CrmBasedUserList.

AdwordsUserListService Member

The field uploadKeyType is now required when adding a new CrmBasedUserList.

BatchJobService N/A

The error message when erroneously re-using a temporary ID will now be NewEntityCreationError.DUPLICATE_TEMP_IDS rather than an internal API error.

ConversionTrackerService ConversionTracker

The snippet field is removed from AdWordsConversionTracker, UploadCallConversion and WebsiteCallMetricsConversion. The googleGlobalSiteTag and googleEventSnippet fields are added to ConversionTracker to return global site tags instead. For AdCallMetricsConversion, AppConversion and UploadConversion, which don't use the global site tags, these two fields will always be empty.

ConversionTrackerService ConversionTracker

The category field can no longer be set to the value REMARKETING, as this value doesn't exist in the AdWords user interface Doing so will result in an INVALID_CATEGORY error.

OfflineDataUploadService StoreSalesTransaction

The transactionAmount field now validates that the currency type specified is valid according to ISO 4217 currency code. If an invalid code is specified, a CurrencyCodeError.UNSUPPORTED_CURRENCY_CODE error will return.

OfflineDataUploadService UserIdentifier

The value field is now validated that it conforms to the ISO two-letter country codes when the userIdentifierType field is set to COUNTRY_CODE.

OfflineDataUploadService OfflineDataUpload

The partialDataErrors field is removed. Use OfflineDataUploadReturnValue.partialFailureErrors instead.

Reporting Ad Performance Report

The ImageAdUrl field in the Ad Performance Report will now return the entire URL string, rather than require an additional prefix be prepended to the returned value to get the full URL.

Reporting Various reports

The BidType field is removed. It could only ever return a value of "TargetCpa".

Reporting Various reports

The AdNetworkType1 and AdNetworkType2 fields may now return a result of MIXED to indicate that this entry is cross-network.

Reporting Bid Goal Performance Report

The PageOnePromotedBidChangesForRaisesOnly, PageOnePromotedRaiseBidWhenBudgetConstrained, PageOnePromotedRaiseBidWhenLowQualityScore, TargetOutrankShareBidChangesForRaisesOnly, and TargetOutrankShareRaiseBidWhenLowQualityScore fields return literal true/false values, rather than a string description of that value.

Send feedback about...

AdWords API
AdWords API
Need help? Visit our support page.