(Translated by https://www.hiragana.jp/)
Google Ads Developer Blog: 2025

We're thrilled to announce significant improvements to the Google Ads API documentation, designed to make your development experience smoother, faster, and more intuitive. These changes are a direct result of valuable feedback from our incredible API developer community.

We're thrilled to announce significant improvements to the Google Ads API documentation, designed to make your development experience smoother, faster, and more intuitive. These changes are a direct result of valuable feedback from our incredible API developer community.

Our goal was simple: enhance discoverability and reduce the need to jump between pages, so you can spend less time searching and more time building. Let's dive into what's new:

1. Easier campaign type discovery and implementation

One of the most requested features was clearer guidance on supported campaign types. You can now more easily identify which campaign types the API supports and, crucially, find all the resources you need to implement them directly within the documentation. This streamlines your workflow from discovery to deployment.

2. Unified reporting and reference documentation

We've merged our Reporting and Reference documentation into a single location. This means all your essential references are now together, providing a more comprehensive and less fragmented experience when you're working with data and API specifics.

3. Seamless gRPC and REST integration

For those who switch between gRPC and REST, we've introduced a highly anticipated feature: a one-button toggle!

This lets you effortlessly switch between the two protocols on the same page. If you haven't yet, we highly recommend trying out our Try-it feature directly from the developer site. With gRPC and REST now co-located, accessing Try-it is more efficient than ever, making it perfect for quickly testing new features and requests.

4. Reorganized and clustered guides

All your familiar guides are still there, but we've given them a thoughtful re-ordering. Guides with similar features are now clustered together, creating a more logical flow and helping you navigate to related topics more quickly. This thoughtful reorganization aims to reduce friction and enhance your learning.

We want your feedback!

These changes are just the beginning, and your feedback is crucial as we continue to refine and improve. If you have any thoughts on these updates, or suggestions for future enhancements, please click the Send Feedback button at the bottom of any page in the documentation.

This direct line lets you provide valuable input that will help shape the future of the Google Ads API documentation.

We're incredibly excited about these updates and believe they will significantly enhance your experience with the Google Ads API. Happy coding!


What’s changing?

As announced last year, Google will stop serving political advertising in the European Union ahead of a new regulation taking effect in October 2025. On September 3, 2025, the Google Ads API and Google Ads scripts will roll out enforcements related to this change. If you use either of these products to create or manage campaigns, you may need to update your application to handle these enforcements before September 3, 2025.

What’s changing?

As announced last year, Google will stop serving political advertising in the European Union ahead of a new regulation taking effect in October 2025. On September 3, 2025, the Google Ads API and Google Ads scripts will roll out enforcements related to this change. If you use either of these products to create or manage campaigns, you may need to update your application to handle these enforcements before September 3, 2025.

API support for self-declaration of EU political ads

Google Ads API and Google Ads scripts have added support for self-declaration as to whether a campaign has EU political ads. Learn how an EU political ad is defined here. Versions v19.2, v20.1, and v21 of the API contain a new field named contains_eu_political_advertising in the Campaign object. The possible values and their meaning are shown in the table below.
Value Meaning
CONTAINS_EU_POLITICAL_ADVERTISING The campaign has EU political ads.
DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING The campaign does not have EU political ads.
UNSPECIFIED The campaign is missing self-declaration about EU political ads.

You can retrieve the self-declaration status of a campaign in Google Ads API by running the following query using either the Search or SearchStream methods of the GoogleAdsService. For Google Ads Scripts, use the AdsApp.search or AdsApp.report methods.

select campaign.id, campaign.contains_eu_political_advertising from campaign

If you use the Google Ads API client libraries, you may need to download the latest library version to use this functionality in versions v19 and v20 of the API.

API validation & enforcement changes

On September 3, 2025, Google Ads API and Google Ads scripts will start enforcing the following checks in versions v19 and v20 of the API.

These checks are already enforced in version v21 of the Google Ads API.

How will this affect my campaign serving?

Any campaign that has declared EU political ads by setting contains_eu_political_advertising to true will stop serving ads in the EU on September 22, 2025. Refer to our Help Center to learn more.

Existing campaigns without a declaration will remain unaffected for now. We recommend updating the existing campaigns in your accounts with an appropriate declaration as soon as possible. You can retrieve campaigns without a declaration using the following GAQL query using either the Search or SearchStream methods of the GoogleAdsService.

select campaign.id, campaign.contains_eu_political_advertising
  from
    campaign
  where 
    campaign.contains_eu_political_advertising NOT IN
    (
       'CONTAINS_EU_POLITICAL_ADVERTISING',
       'DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING'
    )

What do I need to do?

If your application uses either Google Ads API or Google Ads scripts to create or manage campaigns, make sure to update your application to handle these enforcements before September 3, 2025.

How do I get help?

Reach out to the Google Ads API support or Google Ads scripts support channels if you have more questions about this change.

Today, we’re announcing the v21 release of the Google Ads API. To use some of the v21 features, you must upgrade your client libraries and client code. All the updated client libraries and code examples have been published.

Today, we’re announcing the v21 release of the Google Ads API. To use some of the v21 features, you must upgrade your client libraries and client code. All the updated client libraries and code examples have been published.

As previously announced, we are also releasing minor versions v20.1 and v19.2 of the Google Ads API.


Here are some of the key features in this release:

  • We have added a new field named contains_eu_political_advertising for the Campaign object. Use this field to self-declare whether your campaign contains political advertising content targeted towards the European Union. If this field is set to true, the campaign will no longer serve in the EU starting September 23, 2025. This feature is also released in versions v20_1 and v19_2 of the API so you can start using this feature immediately without upgrading to the latest version of the API. See our blog post to learn more.
  • A new view campaign_search_term_view aggregates search term data at the campaign level and exposes search term data for Performance Max campaigns. We encourage you to migrate from search_term_view to campaign_search_term_view if you are interested in fetching search term data for Performance Max campaigns.
  • Brand guidelines will automatically be enabled on new campaigns.
  • You can now use the ai_max_setting.enable_ai_max field of the Campaign object to enable AI Max for Search campaigns. Google Ads AI Max is a suite of AI-powered features for standard Search campaigns designed to increase conversions and reach. It works by using machine learning to expand keyword targeting, dynamically generate ad creatives based on user intent, and send users to the most relevant landing pages on your website. Refer to our blog post to learn more. A new view ai_max_search_term_ad_combination_view exposes search term data for AI Max for Search campaigns. We plan to launch a consolidated version of this view including data from other campaign types in a future API version.
  • We are allowing Terms & Service, QR codes, and various other barcodes to be added to PromotionAssets.

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.

This blog post was updated on August 12, 2025 to add clarification on how to attach a negative keyword list to your campaign.

We're excited to announce the launch of three powerful new features for Performance Max campaigns within the Google Ads API. These updates will give you greater control and flexibility over your Performance Max campaigns, allowing for even more precise targeting and optimization. Available today across all supported versions of the Google Ads API, these features empower developers and advertisers to refine their Performance Max strategies.

This blog post was updated on August 12, 2025 to add clarification on how to attach a negative keyword list to your campaign.

We're excited to announce the launch of three powerful new features for Performance Max campaigns within the Google Ads API. These updates will give you greater control and flexibility over your Performance Max campaigns, allowing for even more precise targeting and optimization. Available today across all supported versions of the Google Ads API, these features empower developers and advertisers to refine their Performance Max strategies.

Introducing new targeting capabilities

1. Device targeting

With the introduction of device targeting, you now have the ability to specify at the campaign level where your Performance Max ads will appear. This feature provides a new layer of control, enabling you to optimize your campaign reach across various platforms. To set up device targeting, add a DeviceInfo criterion to your Performance Max campaign.

2. Negative keyword lists

To help prevent your ads from showing for irrelevant searches, we're introducing support for negative keyword lists at the campaign level on Performance Max campaigns. This highly requested feature allows you to upload and apply lists of keywords that you want to exclude, ensuring your ads are displayed to the most relevant audience. You can attach a negative keyword list to your campaign by attaching a SharedSet with the type NEGATIVE_KEYWORDS using the CampaignSharedSetService. Refer to this page for an example on how to attach a negative keyword set to a campaign.

3. Age range exclusions

We're also adding the capability to exclude specific age ranges from your Performance Max campaigns. This allows for more granular audience targeting, which helps you comply with age-related advertising regulations and focus your spend on the most appropriate demographics for your products or services. To set up an age range exclusion, add an AgeRangeInfo as a negative criterion on your PMax campaign.

How to get started

These new features are available starting today on all supported versions of the Google Ads API. For detailed documentation on how to implement these new targeting options in your Performance Max campaigns, refer to our developer guides.

We're committed to continually enhancing the Google Ads API to provide you with the tools you need to succeed. We encourage you to explore these new features and incorporate them into your Performance Max strategies to achieve even better results.

Today, we’re announcing the July 2025 update to the Display & Video 360 API. This update includes the following:

Today, we’re announcing the July 2025 update to the Display & Video 360 API. This update includes the following:

For more details, see the Display & Video 360 API release notes. Before using these new features, make sure to update your client library to the latest version.

Display & Video 360 API v3 will sunset on October 7, 2025. If you are still using v3, update your integration to use v4 as soon as possible. Follow the steps in our v4 migration guide to migrate.

If you need help with these new features, please contact us using our Display & Video 360 API Technical support contact form.

In October, 2025, Python 3.9 will reach end-of-life in October 2025 and will no longer be supported by the Python Software Foundation. Once Python 3.9 officially reaches end-of-life status, it will also no longer be supported by the Google Ads client library for Python. That means we will not make updates to the library, or address any issues related to compatibility with Python 3.9, outside of critical security updates.

In October, 2025, Python 3.9 will reach end-of-life in October 2025 and will no longer be supported by the Python Software Foundation. Once Python 3.9 officially reaches end-of-life status, it will also no longer be supported by the Google Ads client library for Python. That means we will not make updates to the library, or address any issues related to compatibility with Python 3.9, outside of critical security updates.

In Q4 2025 we will release a new major version of the library that is incompatible with Python 3.9. This new version will include support for Python 3.14. Users of deprecated, or soon-to-be deprecated versions of Python, are at risk of losing access to the Google Ads API. Please note the below timelines:

  • Current: Python 3.7 users cannot currently access the Google Ads API
  • Q1 2026: Python 3.8 users will lose access to the API when version v19 of the Google Ads API is sunset in Q1 2026.
  • Late 2026: Python 3.9 users will lose access to the API when version v22 of the Google Ads API is sunset in late 2026

Follow the deprecation and sunset timetable for updates around the specific timing of Google Ads API version releases and sunsets.

Any library users currently relying on Python 3.8 or 3.9 should upgrade their systems to Python 3.10 or higher as soon as possible.

If you have any questions about this change, please file an issue on the client library repository.

Starting on October 3, 2025, you will be able to set both the gclid and gbraid fields on your ClickConversion messages when importing them to the Google Ads API, by using the UploadClickConversions method.

Starting on October 3, 2025, you will be able to set both the gclid and gbraid fields on your ClickConversion messages when importing them to the Google Ads API, by using the UploadClickConversions method.

Previously, setting both of these fields resulted in the following partial failure error:

Once this change is released, this error will no longer be returned. Instead you will see successful import responses.

What’s changed?

Today, we're excited to announce that the brand guidelines rollout is now complete for all new Performance Max campaigns created through the Google Ads UI, with API-created accounts soon to follow. As was first announced in December, this means that new PMax campaigns initiated in the UI will have brand guidelines enabled by default, offering advertisers greater control over their brand's representation.

What’s changed?

Today, we're excited to announce that the brand guidelines rollout is now complete for all new Performance Max campaigns created through the Google Ads UI, with API-created accounts soon to follow. As was first announced in December, this means that new PMax campaigns initiated in the UI will have brand guidelines enabled by default, offering advertisers greater control over their brand's representation.

With brand guidelines rolling out to more Performance Max campaigns, it is crucial to understand how this impacts campaigns you interact with via the API, and for you to update your code in advance to prepare for it.

What do API Users need to update now?

Previously, brand assets such as your business name and logo were associated with Asset Groups.

Currently, for any PMax campaign with brand guidelines enabled, these brand assets are now stored at the campaign level. This means if your application queries or modifies brand assets for PMax campaigns, you must adjust your code to look for these assets in CampaignAsset instead of AssetGroupAsset for these campaigns. Accounting for both asset locations in your application is vital to ensure your integrations continue to function as expected. To determine if brand guidelines are enabled for a PMax Campaign, check the Campaign.brand_guidelines_enabled field.

What do API Users need to plan for in the future?

Brand guidelines will be enabled by default when creating PMax Campaigns using the API beginning in v21. You can optionally disable brand guidelines by setting the Campaign.brand_guidelines_enabled field to false on-creation. The default behavior for brand guidelines on new Performance Max campaigns created via the API remain disabled for all supported versions through v20.

To manually turn on brand guidelines through the API, you have two options:

  1. Starting in v19, all API users can choose to manually enable brand guidelines when creating a new PMax campaign. To do so, you need to set the Campaign.brand_guidelines_enabled field to true during campaign creation. You can refer to the “Add Performance Max Campaign” code sample for an example of how to create a campaign with brand guidelines enabled.
  2. To manually enable brand guidelines for an existing campaign, use CampaignService.EnablePMaxBrandGuidelines. Set auto_populate_brand_assets to true to automatically populate the campaign with top-performing brand assets. Disabling brand guidelines for a campaign after its creation is not supported.

There is an in-progress automatic migration to enable brand guidelines for existing campaigns. As previously announced, this migration has already begun on a rolling basis by CID. Only campaigns that use the same logos and business name across all asset groups will be automatically migrated. We anticipate the migration to be completed for all applicable CIDs by October 30th. In the meantime, we encourage you to use the existing migration endpoint to manually update your campaigns to brand guidelines at your own pace.

Google Ads API v18 will sunset on August 20, 2025. Starting on this date, all v18 API requests will begin to fail. Migrate to a newer version prior to August 20, 2025 to ensure your API access is unaffected.

Google Ads API v18 will sunset on August 20, 2025. Starting on this date, all v18 API requests will begin to fail. Migrate to a newer version prior to August 20, 2025 to ensure your API access is unaffected.

Here are some resources to help you with the migration:

You can view a list of methods and services your project has recently called using the Google Cloud Console:

  1. Open the APIs & Services in the Google Cloud Console.
  2. Click Google Ads API in the table.
  3. On the METRICS subtab, you should see your recent requests plotted on each graph. You can see which methods you've sent requests to in the Methods table. The method name includes a Google Ads API version, a service, and a method name, such as google.ads.googleads.v18.services.GoogleAdsService.Mutate.
  4. (Optional) Choose the timeframe you want to view for your requests.

If you have questions while you’re upgrading, reach out to us on the forum or at googleadsapi-support@google.com.

What is changing?

Google is deprecating the ad sharing functionality in Google Ads API.

  • With the October 2025 release of v22, the ability to create shared ads will be removed from all supported versions on October 15, 2025.
  • In Q1 2026, shared ads will sunset and stop serving. The exact date isn’t determined, and will be communicated in the future.

What is changing?

Google is deprecating the ad sharing functionality in Google Ads API.

  • With the October 2025 release of v22, the ability to create shared ads will be removed from all supported versions on October 15, 2025.
  • In Q1 2026, shared ads will sunset and stop serving. The exact date isn’t determined, and will be communicated in the future.

This change will affect how ads are created and managed at scale, so it's crucial to understand the implications and prepare your systems accordingly. Let's break down what's happening, why it matters, and what you need to do.

What is Ad Sharing?

In simple terms, "ad sharing" means creating one ad and using that exact same ad in multiple Ad Groups.

Instead of building identical ads over and over for each Ad Group, you build it once and link it everywhere you need it.

Why is this changing?

This change aligns with the movement to Asset-Based Ads. The future of Google Ads is centered around asset-based ad formats like Responsive Search Ads (RSAs) and Performance Max campaigns. In these formats, the "ad" is dynamically assembled from a pool of assets (headlines, descriptions, images), making the concept of a static, shareable ad object less efficient.

How to Prepare

The timeline gives you ample time to adapt, but we strongly recommend starting the process now to avoid any disruption to your advertising operations. Follow these steps to ensure a smooth transition.

Step 1: Audit Your Application

The first step is to determine if your application uses the ad sharing model.

Review your codebase, specifically any logic that interacts with the AdGroupAdService. Look for any instances where you created an AdGroupAd by pointing to an existing ad's resource name that is already in use in another ad group.

Your current, soon-to-be-deprecated logic might look something like this conceptually:

  1. Create an AdGroupAd that contains an Ad.
  2. Create an AdGroup.
  3. Create another AdGroupAd using the embedded Ad from step 1 and the AdGroup from Step 2. (This is the functionality that will be removed).

Step 2: Update Your Ad Creation Logic

You must refactor your code to create a new, unique ad for every ad group. Instead of sharing an ad, your new workflow should be a loop that creates a distinct ad for each target ad group. You will no longer be able to create a standalone ad. Instead, you will specify the ad parameters as part of creating an AdGroup.

The new, compliant logic should look like this:

  1. For AdGroup_1:
    • Create an AdGroupAd using ad for ad_group_1.
  2. For AdGroup_2:
    • Create an AdGroupAd using ad for ad_group_2.

Even if the ad copy is identical, the ads must be created as separate ad objects in the API.

If you still have legacy Expanded Text Ads (ETAs) serving that are shared, you must convert them to Responsive Search Ads and assign each shared instance to a single AdGroup.

Step 3: Understand the Impact on Reporting

When you stop sharing a single ad and start creating unique ads for each ad group, the performance history will be affected.

Important: Performance statistics (impressions, clicks, conversions) are tied to the unique ad. The new ads you create will start with zero performance history. The historical data from your old, shared ads will remain, but it will not be carried over to the new ads.

Be sure to communicate this to your team or clients. Plan to export and archive historical performance data before you make the switch to perform long-term, ad-level analysis.

Migration of Existing Shared Ads

Step 1: Identify Your Shared Ads

First, you need a definitive list of all ads that are currently shared across more than one ad group.

SELECT
  ad_group_ad.ad.id,  -- This is the unique ID of the 'Ad' itself
  ad_group.id,        -- This is the unique ID of the 'AdGroup'
  ad_group_ad.status,
  ad_group_ad.ad.type,
  campaign.id,
  campaign.name,
  ad_group.name
FROM
  ad_group_ad
WHERE
  ad_group_ad.status IN ('ENABLED', 'PAUSED')
ORDER BY
  ad_group_ad.ad.id, ad_group.id

If you find an ad_group_ad.ad.id in your results whose associated collection of ad_group.ids has more than one entry, it means that specific Ad (identified by ad_group_ad.ad.id) is linked to multiple ad groups (each identified by a unique ad_group.id in the collection).

If any ad_group.id that is associated with more than one distinct ad_group.id, then that Ad is considered "shared".

Step 2: Gather Ad Content and Associated Ad Groups

For each shared Ad you identified in Step 1, you need to retrieve two things:

  1. The content of the ad (its headlines and descriptions).
  2. The list of all ad groups where it is currently active.

Step 3: Create a New, Unique ResponsiveSearchAd in Each Ad Group

For the core of the migration, loop through each ad group you identified in Step 2 and create a new ResponsiveSearchAd inside it.

Best Practice: If your shared ad is an Expanded Text Ad, don't just copy the 3 headlines and 2 descriptions. Use them as a starting point and add more assets. The power of ResponsiveSearchAds comes from having a deep pool of headlines and descriptions for Google to test. Aim for 5 short headlines, 1 long headline, and 5 descriptions.

Here is a quick summary of the ResponsiveSearchAds limits,

Asset Type Maximum Allowed Character Limit Best Practices
Short Headline Up to 5 30 characters Provide all 5
Long Headline 1 90 characters Always provide 1
Description Up to 5 90 characters Provide all 5

Here is a conceptual outline of the mutate operation using AdGroupAdService:

  1. Loop through each ad_group.resource_name from your Step 2 results.
  2. Inside the loop, construct a new AdGroupAd object.
  3. Set the ad_group field to the current ad_group.resource_name.
  4. Create an Ad object within the AdGroupAd.
  5. Populate the responsive_search_ad field with your assets:
    • Create a list of AdTextAsset objects for your headlines.
    • Create a list of AdTextAsset objects for your descriptions.
    • Set the final_urls, path1, and path2 using the data from your old Ad.
  6. Execute the MutateAdGroupAds() request.

This process ensures that each ad group now has its own unique ResponsiveSearchAds, ready to be served.

Step 4: Remove the Old Shared Ads

Once your new ResponsiveSearchAds have been created and have passed the editorial review (status is ENABLED), it's time to retire any shared ads.

  1. Identify the resource name of the old AdGroupAd (the link between the shared ad and the ad group).
  2. Use the AdGroupAdService to perform the mutation. Within this service, you'll construct an AdGroupAdOperation. This operation object has a remove field where you provide the resource name of the AdGroupAd you want to remove.
  3. Finally, you call the mutateAdGroupAds method on the AdGroupAdService.

The Timeline for Phasing Out Shared Ads

We strongly encourage you to manually migrate your shared ads yourself

  • This is the best approach. It allows you to create new ads with unique images and headlines tailored specifically to the audience in each Ad Group. More relevant ads lead to better results.

Phase 1: Starting 15 October 2025

  • You can no longer create new shared ads.
  • Any attempt to link a single ad to a new Ad Group will be blocked and will return an error. If you use automated tools or scripts for this, they will stop working.

Phase 2: Between 15 October 2025 and Q1 2026

  • Your existing shared ads will continue to serve normally.
  • No immediate action is required for ads that are already shared; they will not be affected during this period.

Phase 3: In Q1 2026

  • We will automatically convert all remaining shared ads.
  • For any ads that are still shared, we will create individual copies in each Ad Group they belong to.

We recommend consulting the official Google Ads API documentation and keeping an eye on the Google Ads Developer Blog for further details as the date approaches.

Start your audit today and share this post with your development team to ensure you are prepared for a seamless transition.

Automatic Process in Q1 2026

If you take no action, we will automatically separate your shared ads for you in the first quarter of 2026.

Here’s how our automated process will work:

  • One Ad Group Keeps the Original Ad: Your original ad will be kept in just one of the Ad Groups (specifically, the one with the lowest ad group ID).
  • Other Ad Groups Get Copies: We will create new copies of the original ad for all the other Ad Groups it was shared with.
  • Automated Content Will Be Regenerated: Your settings for features like "asset automation" will be copied. However, the actual machine-generated assets (like automatically created headlines or images) will not be transferred. Our system will create a brand-new set for each copied ad, which may affect initial performance.

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

We’re launching our new “Google Advertising and Measurement Community” Discord server! To join, just click this invite link and follow the onboarding guide.

The current products available on this server are Analytics, Google Ads, Google AdMob, and Google Ad Manager.

We’re launching our new “Google Advertising and Measurement Community” Discord server! To join, just click this invite link and follow the onboarding guide.

The current products available on this server are Analytics, Google Ads, Google AdMob, and Google Ad Manager.

The Ads Developer Relations team will be on this server regularly to discuss your feedback or questions using Google’s Advertising and Analytics APIs/SDKs, as well as to let you know what’s new with our products.

We’ll be hosting a “Meet the Team” in August, where we’ll go over who we are, and how you can expect to engage with us in Discord. Stay tuned as we add other events, and more channels.

Looking forward to chatting with you on Discord!

The Google Ads API team is exploring bringing a Model Context Protocol Server to the developer base to allow third-party GenAI tools to work with advertiser accounts. We are seeking your initial input to help us shape our roadmap.

The Google Ads API team is exploring bringing a Model Context Protocol Server to the developer base to allow third-party GenAI tools to work with advertiser accounts. We are seeking your initial input to help us shape our roadmap.

If you are interested in providing feedback in relation to this topic please follow this link to participate in a short survey.

How to get help

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

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.

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.

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.

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.

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.

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.

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

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!

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.
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.

On June 12, 2025, we will be making three changes to the Display & Video 360 API and Structured Data Files (SDFs) to better align with the Display & Video 360 product.

On June 12, 2025, we will be making three changes to the Display & Video 360 API and Structured Data Files (SDFs) to better align with the Display & Video 360 product.

These changes may impact your existing integrations. We have announced these changes on our Announced Deprecations page:

If you believe any of these changes will impact your integrations, follow the recommended actions in the change description.

If you run into any issues or have questions about these changes, please contact us using our Display & Video 360 API Technical support contact form.

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.

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.

This post was recently updated to reflect that API support for these settings will be included in v21.

We're providing an important update regarding new image optimization features rolling out in the Google Ads user interface, specifically impacting Performance Max campaigns.

This post was recently updated to reflect that API support for these settings will be included in v21.

We're providing an important update regarding new image optimization features rolling out in the Google Ads user interface, specifically impacting Performance Max campaigns.

What are these new UI features?

  • Landing Page Images: This setting allows Google AI to automatically source relevant images directly from your ad's landing page. The aim is to dynamically incorporate these visuals into your ads, potentially improving relevance and extending your reach across more placements.
  • Image Enhancements: With this feature, Google AI can automatically make improvements to your uploaded image assets. This can include smart cropping to create different versions of your images, helping to unlock more ad inventory and boost performance. Future enhancements may also include capabilities like uncropping or animating images.

You can find more information about these features in the Google Ads Help Center.

Default behavior:

Image enhancements will be enabled for all Performance Max users. For Landing Page Images, the setting will be enabled on PMax only if the account level Dynamic Image setting is active. Note that enabling the account-level Dynamic Image setting requires manual opt-in through the UI.

Key Information for API Users:

At this time these new UI features for Performance Max campaigns can only be managed with the Google Ads user interface. API control of these settings will become available in version 21.

  • These features will not be viewable through the Google Ads API.
  • At this time, you will not be able to opt-in or opt-out of these new settings (Landing Page Images and Image Enhancements) using the Google Ads API. To change the status of these settings you must use the Google Ads UI.

API Integration Impact:

Your existing API integrations will continue to function for the features and settings currently supported by the API. However, these new additional Performance Max settings will need to be managed by your users directly in the Google Ads interface.

We encourage you to familiarize yourselves with the details provided in the Google Ads Help Center to understand the scope of these UI changes for Performance Max campaigns. This will enable you to effectively support your users and clarify what can and cannot be controlled via the API.

We are committed to keeping our developer community informed. Stay tuned to this blog for further updates on control of these image optimization settings in the Google Ads API.

Today we’re announcing the deprecation of Structured Data Files (SDF) v7. This version will sunset on November 4, 2025.

Migrate to SDF v7.1 or higher before the sunset date to avoid any interruption of service. See the differences between SDF v7 and v7.1 in the v7.1 release notes.

Today we’re announcing the deprecation of Structured Data Files (SDF) v7. This version will sunset on November 4, 2025.

Migrate to SDF v7.1 or higher before the sunset date to avoid any interruption of service. See the differences between SDF v7 and v7.1 in the v7.1 release notes.

After November 4, 2025, the following changes will apply to all users:

If you run into issues or need help with your migration, please contact us using our new Display & Video 360 API Technical support contact form.

The open beta launch of AI Max for Search campaigns in the Google Ads UI will begin on 27 May 2025.

While full AI Max for Search campaigns support in the ...
The open beta launch of AI Max for Search campaigns in the Google Ads UI will begin on 27 May 2025.

While full AI Max for Search campaigns support in the Google Ads API is planned for v21 in August 2025, we want to ensure you're prepared for the open beta rollout and understand its potential impact on your API interactions.

What is AI Max for Search campaigns?
What is Changing?
During the open beta period, before full API support arrives in v21, there will be a transitional phase. Here's what API users need to know:
  1. Feature Grouping in the UI: When a user enables AI Max for Search campaigns for a campaign in the Google Ads UI, several legacy features will be grouped into the new AI Max for Search campaigns settings:
    • Text customization (formerly known as Automatically created assets (ACA))
    • Campaign-level broad match (the setting itself)
    • Brand inclusions (previously tied to campaign-level broad match)
    • Campaign-level brand exclusions
  2. Potential API Conflicts During Transition: Once AI Max for Search campaigns has been enabled and then disabled for a campaign via the UI, managing its associated features (ACA, brand list inclusions/exclusions) using any API version is subject to feature grouping and may cause errors. Starting with v21, AI Max for Search campaigns can be activated through the API.
    • Why? Disabling AI Max for Search campaigns in the UI during this interim period doesn't fully revert the underlying settings configuration back to the pre-AI Max for Search campaigns state compatible with older API versions for these specific features.
    • Campaign-Level Broad Match: Attempts to toggle the campaign-level broad match setting via the API will be allowed but may function differently depending on the AI Max for Search campaigns state. Keywords will still be converted to Broad Match if the setting is enabled via the API, but the primary control mechanism moves to AI Max for Search campaign.
    • Text customization: Attempts to deactivate text customization via API requests will raise an error if Final URL expansion is enabled in the UI.
  3. Mitigation - UI Warnings: To prevent accidental disruption, the Google Ads UI will display warning messages when enabling or disabling AI Max in Search campaigns for campaigns that use these legacy features, explicitly mentioning the potential impact on API workflows during this beta period.
  4. Recommendation: We strongly advise coordinating within your teams. If your organization relies heavily on API workflows for managing ACA or Brand Lists, be cautious about enabling and then disabling AI Max in Search campaigns in the UI for those campaigns until full API support lands in v21 in August 2025.
What Stays the Same:
  • You can continue to manage existing Search campaigns using ACA, campaign-level broad match, and brand exclusions via the current API version (v19) as long as AI Max in Search Campaigns has not been enabled and then disabled for those specific campaigns in the UI.
  • Ad Group level Brand Inclusions and Locations of Interest (LOI) pilots (outside of AI Max for Search campaigns) are ending. Functionality for these will only be available within AI Max for Search campaigns going forward.
Preparing for the Future - v21 and beyond:
  • Full Support Coming: API v21 (planned for August 2025) will introduce dedicated fields and services to fully manage all AI Max for Search campaigns features, including the new consolidated controls.
  • Legacy Field Deprecation: Following the launch and adoption of v21, older API versions will sunset. At that point, the legacy fields for ACA, campaign-level broad match, and standalone brand exclusions/inclusions will be fully deprecated and removed from the API.
If you have any questions, please contact us on the forum.

We previously announced our 2025 Google Ads API release plans. We are introducing a few changes to this schedule as a part of our ongoing efforts to evolve our release process. The new schedule lets us make various product features available earlier in the Google Ads API. As usual, additional details on new features will follow as part of the release notes for individual versions.

We previously announced our 2025 Google Ads API release plans. We are introducing a few changes to this schedule as a part of our ongoing efforts to evolve our release process. The new schedule lets us make various product features available earlier in the Google Ads API. As usual, additional details on new features will follow as part of the release notes for individual versions.

  1. V20_1 will be upgraded to a major version and named V21.
  2. V21 will be renamed to V22.
  3. We will add two minor releases (v19_2, v20_1) alongside V21 to add these features in existing Google Ads API versions.
  4. The projected launch dates will remain unchanged.

Here’s our updated schedule.

Version Planned Release

Type

Projected launch Projected sunset
V20 Major June/July 2025 June 2026
V21 Major August/September 2025 August 2026
V19_2 Minor August/September 2025 February 2026
V20_1 Minor August/September 2025 June 2026
V22 Major October/November 2025 October 2026

Please take a look at your future plans to make sure they still align with the upcoming Google Ads API release schedule.

How to get help

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

IMA Android version 3.35.1 adds the ImaSdkFactory.initialize() method. This call begins loading necessary SDK resources before the first ad request, leading to faster load times. These changes can limit ad buffering, and help maximize ad impressions and monetization. Depending on the device, the loading process can take several seconds to complete.

IMA Android version 3.35.1 adds the ImaSdkFactory.initialize() method. This call begins loading necessary SDK resources before the first ad request, leading to faster load times. These changes can limit ad buffering, and help maximize ad impressions and monetization. Depending on the device, the loading process can take several seconds to complete.

We strongly recommend making the initialize() call as soon as possible after the app starts. This approach shortens the time to first frame for pre-roll ads, thus limiting the time users are waiting and increasing monetization potential.

For applications that implement these load time improvements, the following benefits show:

  • An average decrease of 0.25 to 0.5 seconds in time to first frame.
  • With larger decreases for TV implementations, up to a five second improvement.

The following diagram shows an app using the initialize() method call to load system resources before a user selects a video:

The ImaSdkFactory.initialize() call accepts an ImaSdkSettings instance. Use the same settings values that are used to create any AdsLoader instances in the app. For client-side and DAI for more information, see optimize IMA load time . If you have any questions, feel free to reach out using the IMA technical forum.

Today, we’re announcing the April 2025 update to the Display & Video 360 API. This update includes the following:

Today, we’re announcing the April 2025 update to the Display & Video 360 API. This update includes the following:

In addition to these new features, This update also includes a fix for a known issue that caused advertisers.list requests to ignore provided orderBy parameters.

For more details, see the Display & Video 360 API release notes. Before using these new features, make sure to update your client library to the latest version.

If you need help with these new features, please contact us using our new Display & Video 360 API Technical support contact form.

Google Ads API v17 will sunset on June 4, 2025. After this date, all v17 API requests will begin to fail. Migrate to a newer version prior to June 4, 2025 to ensure your API access is unaffected.
Google Ads API v17 will sunset on June 4, 2025. After this date, all v17 API requests will begin to fail. Migrate to a newer version prior to June 4, 2025 to ensure your API access is unaffected.

Here are some resources to help you with the migration: You can view a list of methods and services your project has recently called using the Google Cloud Console:
  1. In the Google Cloud Console, open the APIs & Services tab.
  2. In the table, click Google Ads API.
  3. On the METRICS subtab, you should see your recent requests plotted on each graph. You can see which methods you've sent requests to in the Methods table. The method name includes a Google Ads API version, a service, and a method name, such as google.ads.googleads.v17.services.GoogleAdsService.Mutate.
  4. (Optional) Choose the timeframe you want to view for your requests.
If you have questions while you’re upgrading, reach out to us on the forum or at googleadsapi-support@google.com.

Today, we’re announcing the v19.1 release of the Google Ads API. To use any of the v19.1 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week. This release includes no breaking changes and maintains backwards compatibility for those who have already upgraded to v19.

Today, we’re announcing the v19.1 release of the Google Ads API. To use any of the v19.1 features, you must upgrade your client libraries and client code. The updated client libraries and code examples will be published next week. This release includes no breaking changes and maintains backwards compatibility for those who have already upgraded to v19.

Here are the highlights:

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.