Category Archives: Ads Developer Blog

The official blog for information about the AdWords, AdSense, DoubleClick and AdMob APIs and SDKs

Expanded Text Ads (ETA) Creation and Editing will Cease on June 30, 2022

As previously announced, starting June 30, 2022:
  • You will no longer be able to create or edit Expanded Text Ads
  • If you attempt to create an ETA you will receive the error CANNOT_CREATE_DEPRECATED_ADS
  • If you attempt to modify an ETA you will receive the error CANNOT_MODIFY_AD
  • Expanded text ads will continue to serve, and you will still see reports on their performance going forward
  • You will be able to pause and resume your expanded text ads, or remove them if needed
We encourage you to transition to Responsive Search Ads (RSA).

If you have any questions, please contact us on the forum.

Announcing v202205 of the Google Ad Manager API

We're pleased to announce that v202205 of the Google Ad Manager API is available starting today, May 17th. This release adds support for CPM sponsorships for ProposalLineItems.

It also updates the ReportService for the upcoming "Ad Exchange Historical" to "Historical" report type conversion. Ad Exchange Historical dimensions and metrics are now available for Historical reports. Because of this change, several Ad Exchange dimensions and metrics have been renamed or replaced in the API.

To migrate, please refer to the migration guide and the reference documentation for v202202 and earlier. The reference documentation has been updated to show which values are deprecated and their replacements. Here’s an example:

Enumeration Description
AD_EXCHANGE_IMPRESSIONS Ad Impressions on mapped Ad Exchange properties. When multiple text ads fill a single display slot it is only counted once, when the top text ad is recognized. In these cases, the Ad Impression is attributed to the top text ad.
Deprecated as part of the "Ad Exchange Historical" to "Historical" report type conversion. Use AD_EXCHANGE_LINE_ITEM_LEVEL_IMPRESSIONS instead.

For the full list of changes, check the release notes. Feel free to reach out to us on the Ad Manager API forum with any API-related questions.

Changes to how Smart Bidding strategies are organized for Search campaigns

We previously announced that standard (non-portfolio) TargetCpa and TargetRoas bidding strategies are being replaced by MaximizeConversions (with target_cpa) and MaximizeConversionValue (with target_roas) for Search campaigns (those with advertising_channel_type = SEARCH).

Starting in July 2022, all remaining Search campaigns that use standard TargetCpa and TargetRoas bidding strategies will be converted to MaximizeConversions and MaximizeConversionValue strategies, with the same target_cpa and target_roas settings applied, respectively. The migration of portfolio strategies is planned later in 2023.

With this change there will be no impact to bidding behavior. Using MaximizeConversions with a target_cpa setting will have the same bidding behavior as TargetCpa. Likewise, using MaximizeConversionValue with a target_roas setting will have the same bidding behavior as TargetRoas.


The following sample Campaign object illustrates what a migrated Search campaign’s bidding strategy settings would look like before and after the transition.

Existing campaign using standard TargetCpa

Previously using TargetCpa Now uses MaximizeConversions
bidding_strategy_type: TARGET_CPA
target_cpa: {
target_cpa_micros: 1000000
bidding_strategy_type: MAXIMIZE_CONVERSIONS
maximize_conversions: {
target_cpa: 1000000

Existing campaign using standard TargetRoas

Previously using TargetRoas Now uses MaximizeConversionValue
bidding_strategy_type: TARGET_ROAS
target_roas: {
target_roas: 2.0
bidding_strategy_type: MAXIMIZE_CONVERSION_VALUE
maximize_conversion_value: {
target_roas: 2.0

What to do

The Google Ads API already prohibits creating or updating standard (non-portfolio) TargetCpa or TargetRoas bidding strategies for Search campaigns. In July, any code that reads or manages remaining strategies of those types should account for the settings migrating to MaximizeConversions and MaximizeConversionValue.

If you have any questions or need additional help, contact us via the forum or at [email protected].

Change in the maximum number of mutate operations per request for BatchJobService.AddBatchJobOperations

On June 30, 2022, we’ll limit the number of mutate operations that can be sent to BatchJobService.AddBatchJobOperations to 5,000 mutate operations per request. After this change rolls out, any AddBatchJobOperations requests that contain more than 5,000 mutate operations will result in a SizeLimitError.REQUEST_SIZE_LIMIT_EXCEEDED error.

Note that this will not change the total number of operations you are allowed to add to a BatchJob. It only changes the number of operations you can add to a BatchJob in a single AddBatchJobOperations request.

What do you need to do?
  • Ensure that your code doesn’t send more than 5,000 mutate operations per AddBatchJobOperations request to the Google Ads API.
  • In rare cases, you may still encounter the SizeLimitError.REQUEST_SIZE_LIMIT_EXCEEDED error due to the total size of the request payload, even when you send a request with fewer than 5,000 mutate operations. Therefore, your code should retry the request with half the number of mutate operations until it succeeds. For instance, if 5,000 mutate operations fail, try 2,500 mutate operations. If 2,500 mutate operations fail, try 1,250 mutate operations, and so on.
If you have any questions or need additional help, contact us through the forum.

Changes to CampaignSharedSet Entities

Starting June 23, 2022, attempting to create a CampaignSharedSet with a shared_set that has a status of REMOVED will cause a MutateError.RESOURCE_NOT_FOUND error in the Google Ads API.

There will also be a one-time change to automatically update CampaignSharedSet entities to a status of REMOVED if they contain a shared_set with a status of REMOVED. Because the shared_set already has a REMOVED status, this won’t impact any active campaigns since we’re only changing CampaignSharedSet entities that don’t currently serve.

Where can I get support?

If you have questions, please reach out to us on the forum or at [email protected].

Sunset of the Ad Manager API v202105

On Tuesday, May 31, 2022, in accordance with the deprecation schedule, v202105 of the Ad Manager API will sunset. At that time, any requests made to this version will return errors.

If you’re still using v202105, now is the time to upgrade to a newer release and take advantage of additional functionality. For example, in v202111 and newer versions we added new video opportunity Columns.

When you’re ready to upgrade, check the full release notes to identify any breaking changes. Here are a few examples of changes that may impact your applications:
  • v202108
    • The deprecated adExchangeEnvironment field has been removed from ProposalLineItem. To control which platforms your ProposalLineItem will serve on, you can use requestPlatformTargeting instead.
    • On the MobileApplication object, the singular field appStore was changed to the list field appStores.
  • v202202
    • The deprecated pauseRole and pauseReason fields were removed from Proposals. These fields have been available on ProposalLineItems since v202108.
    • The deprecated exchangeRate and refreshExchangeRate fields were removed from Proposals.
As always, don't hesitate to reach out to us on the developer forum with any questions.

Google Ads Scripts, AdWords API and Google Ads API reporting issues on April 25 and 26, 2022

Between April 25th 2:32 PM PT and April 26th 12:24 PM PT, there was an issue which may have impacted some read report requests across Google Ads scripts, the AdWords API, and the Google Ads API. If you were using these products to request reporting data for your accounts, then a small percentage of report downloads may have been missing rows or may have had incorrect data in a given row. This issue has been resolved. As a precaution, we recommend running again any reports that you have executed during this period as the missing data has been restored.

If you have any questions, please contact us via the Google Ads API forum or the Google Ads scripts forum.

Announcing v10.1 of the Google Ads API

Today we’re announcing the v10.1 release of the Google Ads API. To use some of the v10.1 features, you will need to upgrade your client libraries and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes.

Here are the highlights of v10.1:

Where can I learn more?

The following resources can help you get started:

If you have any questions or need additional help, contact us through the forum.

Reminder: Requests to the AdWords API will start failing April 27, 2022

As previously announced, if you are currently using the AdWords API, you need to upgrade to the Google Ads API as soon as possible. Starting on Wednesday, April 27, 2022 requests to the AdWords API will fail at a rate of 25% until May 31, 2022, increasing to 100% thereafter.

Where do I start?

See the following resources to get started:

Here are some tools to help you migrate:

Where can I get support?

If you have questions while you’re upgrading, please reach out to us on the forum or at [email protected].

Upcoming enforcement of custom batch limits in Content API for Shopping

Beginning May 31, 2022 we will enforce the following limits for custom batch methods in the Content API for Shopping:
  • Maximum entries per request: 10,000
  • Maximum transfer size per request: 32Mb (The payload received from the client)
We’re introducing these limits to enable the fair and stable use of Content API for Shopping. The limits will apply to the following endpoints: After May 31, 2022, calls to any of these endpoints that exceed these limits will begin to fail with the following error:
  • request_too_large
Visit our batching guide to learn more about methods for reducing your batch size. If you are looking for a reasonable batch size to implement, we recommend 1,000 entries per request for each endpoint. Following this means you are unlikely to encounter the limits even if your batch size temporarily increases.

If you have any questions about implementing this change, please visit the Content API for Shopping forum.