Author Archives: Google Ads Developer Advisor

Upcoming changes to Search and SearchStream responses in Google Ads API

What’s changing?

Last year, we introduced query_resource_consumption metric as a way to measure how expensive a Google Ads API query is. However, this cost was not returned when the query results were empty.

Starting the week of August 4, 2025, we will modify the behavior of both the Search and SearchStream methods of GoogleAdsService in all the API versions to return the query_resource_consumption metric and the field_mask field even when the query results are empty. The responses for empty query results will change as follows:

Method Old response New response
Search
{    
    "fieldMask": "..."     
}
{
    "fieldMask": "...",
    "query_resource_consumption": 123
}
SearchStream
[]
{
    "fieldMask": "...",
    "queryResourceConsumption": 206
}

What do I need to do?

If you are using Search and SearchStream methods to download Google Ads API reports, make sure your application can handle the modified response.

If you have any questions or need help, check out the Google Ads API support page for options.

Reach out to the Google Ads product support team for any questions related to account policies.

[Update] Add Conversion Environment to Google Ads Conversion Imports

Previously we announced that, starting on June 30, 2025, in-app conversions imported through the Google Ads API must include a value for the ClickConversion.conversion_environment field. The timing and details for this rollout have changed.

Now, starting September 30, 2025, we will begin gradually rolling out a change to our bidding models so that they will start using the presence of the ClickConversion.conversion_environment field in imported in-app conversions to ensure accurate attribution for smarter bidding and optimal campaign performance. This means that if you are using the Google Ads API to measure in-app conversions, your campaign performance may degrade if the ClickConversion.conversion_environment field is not set.

For developers importing in-app conversions, the following considerations still apply:

  1. In-app conversions are defined as any conversion events that occur within an app, such as purchase, add to cart, or sign up.
  2. Once this bidding model change is launched to a campaign, if you do not include the conversion_environment field when importing conversions, you may observe fewer in-app conversions and worse overall campaign performance.
  3. If you do include conversion_environment data for your imported conversions, it ensures attribution accuracy and campaign effectiveness.
  4. The presence or absence of the conversion_environment parameter does not impact conversion uploads. These conversions will still be consumed and reported, with no error messages.

If you have any questions or need help, see the Google Ads API support page for options.

Upcoming Removal of debug_enabled in Google Ads API Offline Conversion Imports

In v21 of the Google Ads API, the UploadClickConversion method’s debug_enabled setting will be removed. Starting on August 6, 2025, all the previous versions (v18, v19, and v20) will ignore this setting if it’s set as part of a request.

As a result of this change, Google Ads API will no longer return ConversionUploadError.CLICK_NOT_FOUND errors, because setting the debug_enabled field to true is the only way to retrieve it. This error code will be removed from the Google Ads API in a future version.

Here’s a breakdown of how this change will materialize in each Google Ads API version:

If your application uses this field or error code, make sure you update your application to handle the new API behavior.

If you have any questions or need help, check out the Google Ads API support page for options.

Google Ads Scripts Sunsetting Ad Customizers for Expanded Text Ads and Legacy Ad Extension Entities Starting July 14, 2025

Starting July 14, 2025, Google Ads scripts will begin to throw errors for requests related to ad customizers for expanded text ads and feed-based legacy ad extensions.

Ad customizer changes

Any requests related to Ad Customizer entities, such as AdsApp.AdCustomizerSource or AdsApp.newAdCustomizerSourceBuilder, will begin to return sunset errors. These entities have been read-only since deprecation in 2022 and haven’t been served on any ads since May 2024. They were also fully removed from the Google Ads API in the v19 release.

Ad extension changes

Feed-based Ad Extensions were sunset in 2022 in favor of asset-based extensions. Users were asked to migrate, or were migrated automatically, but were able to access legacy functionality through the withOnlyLegacy() methods on various selectors. The withOnlyUpgraded() method was added to allow users to only use upgraded asset-based extensions. Starting July 14, 2025, the legacy functionality will be removed, and withOnlyLegacy() methods will begin to throw a sunset error. The withOnlyUpgraded() methods will log a warning, since it will no longer be necessary to specify the use of asset-based extensions when they are the only option.

If you have any questions, ask them in the Google Ads scripts forum. We're here to help!

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.

Announcing v20 of the Google Ads API

Today, we’re announcing the v20 release of the Google Ads API. To use some of the v20 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.

Here are the highlights:
  • You can now add campaign level negative keywords to your Performance Max campaigns.
  • Report segmentation by ad_network_type for Demand Gen campaigns is now more granular, and is split between YOUTUBE, MAPS, DISCOVER and GMAIL instead of aggregating all data under the GOOGLE_OWNED_NETWORKS segment.
  • Demand Gen campaigns now support the platform comparable conversions measurement in the API.
  • Gain deeper insights into YouTube Select Lineups, now accessible through a new dimension in the AudienceInsightsService. This feature is only available to accounts on an allowlist.
  • Target your reach forecasts more effectively with the ability to plan based on your own first-party user lists. Reach forecasting is available to allowlisted accounts only.
  • Analyze your audience data with greater precision using new device segmentation, additional video metrics, and the ability to refine searches by sub-country locations. See Planning in the release notes for more details. This feature is only available to accounts on an allowlist.
Where can I learn more?
The following resources can help you get started: If you have any questions or need additional help, contact us via the forum.