Starting on April 1st, 2026, the Google Ads API will begin enforcing a minimum daily budget of 5 USD, or the equivalent in local currency, for all Demand Gen campaigns. This update ensures that campaigns have adequate budget to navigate the initial "cold start" phase, during which our models learn and optimize for performance.

This change is being implemented as an unversioned update across the Google Ads API, providing consistency across all buying doors.

Technical details and error handling

Depending on the version of the API you are using, you will encounter different behaviors when a budget below the 5 USD floor is specified for a Demand Gen campaign:

  • Google Ads API v21 and above: You will receive a BUDGET_BELOW_DAILY_MINIMUM error when creating or updating a campaign with an insufficient budget. You can also refer to the details.budget_per_day_minimum_error_details field for further details about the minimum budget, such as the actual minimum threshold.
  • Google Ads API v20: The API will return a generic UNKNOWN error code. To identify this specific validation failure, you must check the details.unpublished_error_code field, which will contain the string CampaignBudgetError.BUDGET_BELOW_DAILY_MINIMUM.

The validation will trigger whenever a campaign's budget, start time, or end time is modified in a way that results in a daily budget below the floor. This applies to both daily budgets and flighted (custom) budgets.

Impact on existing campaigns

Existing Demand Gen campaigns that currently operate with a budget below the 5 USD threshold will continue to serve without interruption. However, any future modifications to these campaigns' budgets or durations will be subject to the new validation rules. To make a change to these campaigns, the budget must be increased to at least the minimum required floor.

Next steps

We recommend that developers update their reporting and management systems to handle these new error codes.

If you have any questions regarding this change, get Google Ads API support.

This major update transforms the Assistant from a powerful code generation tool into a proactive troubleshooting and automation partner for Google Ads developers. Since our v1.6.0 release, we've listened to your feedback and focused on the most challenging parts of API development: diagnostics, consistency, and setup.

What’s new in v2.0?

1. Simpler Installation & Maintenance

Setting up a multi-language development environment shouldn't be a chore.

  • One-Command Setup: Use the new --install-deps flag with install.sh or install.ps1 to handle pip, composer, and bundler dependencies in one go.
  • Unified Directory Structure: All your generated code, CSV exports, and diagnostic reports are now organized under a single saved/ directory with sub-directories for each type of output.
  • One-Command Update: When a new version of the API and the client libraries are released you need to execute update.sh to work with the latest version. You can also use update.sh to add additional client libraries to your context.

2. Agentic conversion troubleshooting

Offline conversion tracking is one of the most powerful—yet complex—features of the Google Ads API. Debugging why a conversion wasn't attributed can be a time-consuming manual process.

In v2.0, we’ve introduced a dedicated Conversion Troubleshooting & Diagnostics suite.

  • New Script: api_examples/collect_conversions_troubleshooting_data.py
  • New Command: /conversions_support_data

The script executes standard reports for conversions troubleshooting and provides context for the Assistant to troubleshoot your issues.

The command is most useful after the Assistant has analyzed your conversion problem and attempted to solve it. If it cannot, and you need to contact support, this command will analyze your customer settings, conversion actions, and upload summaries to generate a structured diagnostic report based on the analysis already performed. It even identifies "unhealthy" states and high failure rates automatically, saving you hours of log diving. It saves the results to a text file that you can include with a support request should you need to file one.

3. Built for the latest API (v23)

Version 2.0 fully supports Google Ads API v23. All our interactive examples have been updated, and the Assistant's internal context is now optimized for the latest resources and fields, ensuring the code you generate is production-ready.

4. Seamless Automation with Session Hooks

We’ve added SessionStart and SessionEnd hooks to make your workflow truly frictionless.

  • Automatic Configuration: The Assistant can now automatically locate your configuration file in your $HOME directory at the start of a session. It copies it to the sub-directory config in your project directory. Python is Gemini’s preferred language to query the API. So, if you are using another language, it reads your configuration file and creates a temporary google-ads.yaml in config for its queries, but continues to respond in the code of your preferred language.
  • Auto-Cleanup: Temporary configurations are securely wiped when you exit, keeping your workspace clean and your credentials safe.

5. Smarter GAQL validation

Building complex GAQL queries is easier than ever. We've updated GEMINI.md and conversions/GEMINI.md with rigorous validation rules for the latest API edge cases, including improved handling of date segments and finite range requirements. The Assistant now catches logic errors before you execute the query.

6. Skills

Think of a Skill as a mini-plugin or a "behavior blueprint." While the general context (like your GEMINI.md file) provides background info, a Skill is only "loaded" into the AI's brain when it specifically needs to perform a complex, procedural task like obtaining the current version of this extension. You don’t execute the Skill directly. Gemini decides when it needs it.

Although still an experimental feature, we have included one with this release to compliment our use of hooks for session initialization and cleanup.

Why Should You Upgrade?

The leap from v1.6.0 to v2.0.0 is about more than just new features; it’s about reliability. By integrating deep API knowledge with automated diagnostic tools, v2.0 reduces the "trial and error" loop that often slows down API integration.

Whether you're debugging conversion uploads or building complex reporting pipelines, v2.0 gives you the tools to work faster and with more confidence.

Getting Started

First installation

Upgrading from a previous version

  • Copy any custom code from saved_code/ and saved_csv/ to a secure location.
  • Delete your local clone of the Google Ads API Developer Assistant by deleting your project directory and all sub-directories and files.
  • git clone https://github.com/googleads/google-ads-api-developer-assistant.git
  • In the project directory, run install.sh or install.ps1 to install the extension and client libraries.

Bob Hancock, Google Ads API Team

What’s changing?

In 2025, Google rolled out changes to support the EU Political Ads Regulation in the Google Ads API and Google Ads scripts. On April 1, 2026, we will change account-level API restrictions. If you use either of these products to create or manage campaigns, you may need to update your application before April 1, 2026 to handle these enforcements.

API validation and enforcement changes

On April 1, 2026, Google Ads API and Google Ads scripts will implement the following changes in versions v20, v21, v22 and v23 of the API.

    select campaign.id
      from
        campaign
      where 
        campaign.missing_eu_political_advertising_declaration = true

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. Refer to the Help Center to learn more.

What do I need to do?

If your application uses either the Google Ads API or Google Ads scripts to create or manage campaigns, make sure to update your application to handle these enforcements before April 1, 2026.

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 v23.1 release of the Google Ads API. To use the new v23.1 features, you must upgrade your client libraries and client code. All the updated client libraries and code examples have been published.

We are also releasing minor versions v20.2, v21.1 and v22.1 of the Google Ads API to add additional support for the EU Political Ads Regulation.

Here are some of the key features in this release:

Where can I learn more?

The following resources can help you get started:

Come join us for a live walkthrough of this release in our "Google Ads API Release Highlights" event on Discord or on our Ads Developers YouTube Live tomorrow (February 26th at 10a ET). This will also be recorded and posted on YouTube for those who can’t make the live events. If you have any questions or want to discuss this post, reach out to us in the #ads-api channel on Discord.

For technical support issues, reach out to https://support.google.com/google-ads/gethelp

Version 25.0.0 of the Android Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to take advantage of the latest features, performance improvements, and API updates. This is a major version update that includes several breaking changes, new functionality for optimizing banner ad sizes, and important dependency updates.

New Large Anchored Adaptive Banner Size APIs

Unlock better performance with new banner ad sizes:

To better align with modern mobile devices, we are introducing the Large Adaptive Anchor API (e.g. AdSize.getLargeAnchoredAdaptiveBannerAdSize()). This update focuses solely on the sizing logic within adaptive anchor banners. While individual results may vary, larger ads are designed to increase engagement and revenue potential for publishers. The previous anchored adaptive APIs (e.g. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize()) are now deprecated in favor of the new large anchored adaptive banner approach.

Old usage (Kotlin):

adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

New usage (Kotlin):

adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))

Breaking Changes and Removals

Version 25.0.0 is a major version with breaking changes that primarily impact mediation adapters and custom events.

API Removals:

  • The VersionInfo class in the com.google.android.gms.ads.mediation package has been removed. Use com.google.android.gms.ads.VersionInfo instead.
  • The deprecated getConfiguration() method in the RtbSignalData class has been removed. Developers should migrate to using getConfigurations() instead.
  • The deprecated onFailure(String) and onAdFailedToShow(String) methods have been removed from the following callback classes:
    • SignalCallbacks
    • MediationAdLoadCallback
    • MediationInterstitialAdCallback
    • MediationRewardedAdCallback
      The replacement methods are onFailure(AdError) and onAdFailedToShow(AdError).
    • The NativeAdViewHolder class has been removed from the com.google.android.gms.ads.nativead package.

For the full list of changes, please refer to the release notes. We strongly encourage you to review our migration guide to ensure your mobile apps are ready to upgrade.

SDK Deprecation Reminder

Per the deprecation schedule, the release of version 25.0.0 means that:

  • Android Google Mobile Ads SDK versions 23.0.0 - 23.6.0 are officially deprecated.
  • Android versions 22.0.0 - 22.6.0 will sunset on June 30, 2026.

We strongly recommend updating to a supported SDK version to avoid any disruption in ad serving and to benefit from the latest SDK features and fixes.

To comment on this blog post or engage with fellow developers, join the Google Mobile Ads SDK Discord channel and share your thoughts.

We're excited to announce the release of v1.5 of the Data Manager API, delivering a more comprehensive platform for data management. This update introduces powerful new capabilities for managing user lists alongside expanded options for audience member ingestion.

End to end user list management

The UserListService now allows you to oversee the lifecycle of your user lists entirely through the Data Manager API. It provides core resource management operations such as create, retrieve, update, and delete methods for UserLists, enabling full control over your audience management workflows.

Partner links

The introduction of the PartnerLinkService provides a secure way to manage connections between advertiser and data partner accounts across Google Ads and Display & Video 360.

Expanded audience member identifiers

The Data Manager API now supports additional user identifiers for audience ingestion. You can now upload User IDs, which can be used for Customer Match in Google Ads.

We’ve also integrated status reporting specific to User ID when you retrieve diagnostics for your ingestion requests. These updates make it easier to monitor User ID ingestion and quickly identify any issues.

Get started

If you have questions or need help, contact us through the support page.

If you’re interested in becoming a data partner, please fill out the Partner Interest Form.

Version 13.0.0 of the Google Mobile Ads SDK for iOS is now available. We recommend upgrading as soon as possible to take advantage of the latest features, performance improvements, and API updates.

Updates in Version 13.0.0

  • Increased minimum deployment target: The minimum supported iOS deployment target has been raised to iOS 13.
  • Unlock better performance with new banner ad sizes: To better align with modern mobile devices, we are introducing the Large Adaptive Anchor API (e.g. largeAnchoredAdaptiveBanner). This update focuses solely on the sizing logic within adaptive anchor banners. While individual results may vary, larger ads are designed to increase engagement and revenue potential for publishers. The previous anchored adaptive APIs (e.g. currentOrientationAnchoredAdaptiveBanner) are now deprecated in favor of the new large anchored adaptive banner approach. For more API details, see the migration guide.

    Old usage (Swift):

    bannerView.adSize =
        currentOrientationAnchoredAdaptiveBanner(width: 375)

    New usage (Swift):

    bannerView.adSize = largeAnchoredAdaptiveBanner(width: 375)
  • Swift 6 concurrency support: This release continues to enhance support for Swift 6 strict concurrency, such as updating our delegate methods to only be accessed on the main thread.
  • Stricter type enforcement: The SDK will now raise an exception if any object that is not a String type is detected in the neighboringContentURLStrings array, ensuring better type safety.

For the full list of changes, please refer to the release notes. We strongly encourage you to review our migration guide to ensure your mobile apps are ready to upgrade.

SDK Deprecation Reminder

Per the deprecation schedule, the release of version 13.0.0 means that:

  • iOS Google Mobile Ads SDK versions 11.x.x are now officially deprecated.
  • Version 10.x.x will sunset on June 30, 2026.

We strongly recommend updating to a supported SDK version to avoid any disruption in ad serving and to benefit from the latest SDK features and fixes.

To comment on this blog post or engage with fellow developers, join the Google Mobile Ads SDK Discord channel and share your thoughts.

With the recent release of Explorer Access for the Google Ads API, Google Ads API MCP server and the Google Ads API Developer Assistant, we are seeing significant interest in the developer community for Google Ads API access, and are receiving an increase in developer token access applications. As a result, there is also an increased delay on reviews for these applications.

We have heard from the developer community that the applications for developer token access levels are taking longer than usual. We are aware of this issue, and have added additional reviewers to process the applications and clear the backlog. We have fast-tracked some applications, so some of you should already start seeing your applications getting approved.

If you have Explorer Access, continue to use it if it meets your needs, as it provides the same campaign management and reporting features as Basic and Standard levels.

Upgrade to Basic Access only if:

  • You consistently exceed your daily quota.
  • You are planning for growth and expect you will exceed quotas.
  • You are blocked by features unavailable in your current Access Level (Test or Explorer).

How can I support the progress of my application?

If you have an ongoing Basic Access application, regardless of whether you currently have Test Account Access or Explorer Access, you can take the following actions to help us move your application forward with fewer requests for additional information:

  • Ensure that the accounts you plan to manage are listed as children under the Google Ads Manager account from which you signed up for the developer token, when possible.
  • Complete advertiser verification for one or more accounts under the Google Ads Manager account from which you signed up for the developer token. If you already have verified accounts under a different Manager account, you may link those accounts under the API Manager account instead.
  • If you are using other Google APIs and have completed the OAuth App verification process for your Google Cloud project in the past, then update your Basic Access application to include the Google Cloud project number. If you have a new Google Cloud project, consider completing the OAuth App verification process and sharing the project number with the review team.
  • Update your Basic Access application with clear, specific details of your use case, including why your current level of access doesn’t meet your needs. Your explanation should be a few sentences long, that helps us understand both your business, and your API use case. We will reject applications that are unclear.

For technical support issues, reach out to https://support.google.com/google-ads/gethelp