Author Archives: Google Ads Developer Advisor

Content API for Shopping: Automatic Quota

The Content API for Shopping now automatically increases your products and accounts quotas as your account grows.

Because your API quota now changes dynamically, we have removed the static chart from our published limits guide. To check your current daily quota and usage, and current per minute quota, you can call the quotas.list service.

The following errors are not API quota errors and can’t be resolved by automatic quota increases. They require you to request a quota increase.

  • too_many_items: Merchant quota exceeded
  • too_many_subaccounts: Maximum number of subaccounts reached

Automatic quota only applies to the products and accounts services. If you need an increased API quota for any other service, or if you’re hitting your daily API quota for the products or accounts services or need a temporary increase for the accounts or products services, contact us with the following information:

  • Your Merchant Center ID
  • Which methods you’ve reached your quota limits on
  • An estimation of how many calls per day you need for those methods
  • The reason why you need an increased quota

Note that our general quota policy is you should not update your products more than twice per day, and that you should check your accounts and account statuses not more than once per day.

If you have any questions or concerns, please don't hesitate to contact us via the forum.

Migration to OpenRTB, deprecation of the Authorized Buyers Real-time Bidding Protocol

To align more closely with industry practices and embrace OpenRTB as the standard protocol, Authorized Buyers Real-time Bidding protocol will sunset February 15th, 2025. Following this date, bid requests will no longer be sent to endpoints configured to use the Authorized Buyers RTB protocol. After this time we will support the OpenRTB protocol only. We strongly recommend that you transition to either the JSON or Protobuf formats of the Authorized Buyers OpenRTB protocol implementation as early as possible to avoid interruptions to your bidding integration.

As a first step in migrating to OpenRTB, we suggest that you read through the OpenRTB migration guide. The guide highlights differences between the Google RTB protocol and the supported OpenRTB formats, identifies how Google RTB protocol fields map to OpenRTB, and provides instructions for complex mappings. We will continue updating our developer content as we approach February 2025 to provide additional guidance, and to ensure a smooth migration.

For any questions or feedback you have concerning the transition to OpenRTB, please contact us using the Authorized Buyers support forum, or [email protected].

Deprecation of Structured Data Files v5.5

Today we’re announcing the deprecation of Structured Data Files (SDF) v5.5. This version will sunset on October 3, 2024.

Migrate to v7, the most recent version, by the sunset date. Instructions on how to migrate to v7 can be found in our migration guide.

Once v5.5 is sunset:

  • The default version of partners and advertisers using those versions will be updated to the oldest supported version, v6.
  • sdfdownloadtasks.create requests using the sunset version in the request body will return a 400 error.

If you run into issues or need help with your migration, please contact us using our support contact form.

Introducing the Performance Max Developer Guide

Today we are pleased to announce the release of a dedicated Performance Max developer guide. With this release, we’ve moved Performance Max content to its own tab in the main navigation of our developer documentation with a dedicated landing page and updated navigation to help you more easily find the information you need to build Performance Max integrations.

Other notable improvements include:

Improving Performance Max integrations Blog Series

This article is part of a series that discusses new and upcoming features that you have been asking for. Keep an eye out for further updates and improvements on our developer blog, continue providing feedback on Performance Max integrations with the Google Ads API, and as always, contact our team if you need support.

Adding new project-level quota to Display & Video 360 API

On April 2, 2024, the Display & Video 360 API will institute a new project-level quota of 1500 total (read and write) requests per minute per project and 700 write requests per minute per project to help protect our infrastructure and improve the stability of the API for the overall community. All Display & Video 360 API requests that a project makes will count towards this new quota.

This new quota will replace the existing general request quota limits and be enforced along with existing advertiser-specific request quota limits.

Most existing projects don’t exceed the new quota limit, and thus don’t need adjustments. However, if your existing integration can make concurrent API requests to 5 or more advertisers, you are at risk of exceeding this new quota limit and should take the following actions:
  • Update the error handling of your Display & Video 360 API integration to reduce request frequency when receiving 429 error responses.
  • Consider using the Display & Video 360 API BigQuery connector to retrieve Display & Video 360 resource configuration settings in bulk.
See our quota optimization guide for more suggestions on how to further optimize your current integration.

If you have questions about this new quota, please contact us using our support contact form.

Announcing Android Google Mobile Ads SDK Version 23.0.0

Version 23.0.0 of the Android Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements.

The minimum Android API level is 21

Starting in version 23.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 21 to run. To adjust the API level, change the value of minSdk in your app-level build.gradle file to 21 or higher.

Ad Manager builder methods can now be chained

In version 23.0.0, AdManagerAdRequest.Builder methods inherited from its parent can be chained together to build an AdManagerAdRequest using a single call:

var newRequest = AdManagerAdRequest.Builder()
  .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
  .setContentUrl("https://www.example.com") // Method inherited from parent.
  .build() // Builds an AdManagerAdRequest.

A side effect of this change is AdManagerAdRequest.Builder no longer inherits from AdRequest.Builder.

SDK deprecation and sunset timelines activated

With this Android major version 23 launch and the iOS major version 11 launch last month, we are announcing new deprecation and sunset dates for older major releases. Specifically:

  • Android Google Mobile Ads SDK versions 21.x.x are officially deprecated, and will sunset in Q2 2025.
  • Android versions 20.x.x and iOS versions 8.x.x will sunset on June 30, 2024.
    • While there are currently no plans to disable ad serving on Android versions 20.x.x and iOS versions 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.

For the full list of changes in v23.0.0, check the release notes. Check our migration guide to ensure your mobile apps are ready to upgrade. As always, if you have any questions or need additional help, contact us via the developer forum.

Removing support for .NET 5.0 in the Google Ads API client library for .NET

Starting with version 19.0.0, the Google Ads API client library for .NET requires .NET version 6.0 or higher. Support for .NET Framework remains unchanged and the minimum required version remains 4.7.2.

Version 18.1.0 of the Google Ads API client library for .NET, which adds support for the Google Ads API v16, will be the last version that supports .NET version 5.0. We will still fix security issues for this client library version until the Google Ads API v16 is sunset in January 2025, but no new features will be added.

.NET version 5.0 reached its end of life in May 2022. Microsoft no longer provides security fixes for this version, so we strongly recommend migrating to newer versions as soon as possible.

The Google Ads API client library for .NET already supports newer LTS versions like .NET 6.0 and 8.0, and we plan to support forthcoming LTS versions as well.

Here are some useful resources to help with the .NET upgrade:

Deprecation of Full Path and Path Attribution reports in Bid Manager API

Starting May 1, 2024, requests to retrieve, create, or run Full Path and Path Attribution reports through the Bid Manager API will return an error. We deprecated both report types in February 2024. We announced this deprecation last November.

After deprecation, running a query using the ReportType FULL_PATH or PATH_ATTRIBUTION generates an empty report. Existing Query and Report resources of these types are still retrievable, and report files generated previously will still be available.

Starting on May 1, 2024, ReportType values FULL_PATH or PATH_ATTRIBUTION and the pathQueryOptions field will sunset. As a result:

We’ve added these details to our change log. To avoid an interruption of service, we recommend that you stop creating, retrieving, or running any reports using these values before the applicable sunset date.

If you have questions regarding these changes, please contact us using our support contact form.

Introducing "Solutions": A New Way to Automate Management of your Google Ads Account

We're excited to announce the launch of "Solutions," a new tool for Google Ads that makes it easier to manage and automate tasks in your account. With Solutions, you can quickly and easily generate reports that show you how your campaigns are performing against your business goals, automate simple management tasks and more.

Solutions is available for free in Google Ads under Tools and includes a number of features that make it easy to customize your reports, including the ability to:

  • Filter your data by campaign, ad group, keyword, or other dimensions
  • Set flexible budgets
  • Manage negative keyword lists throughout your account
  • Sort your data by any metric
  • Export your reports to a variety of formats, including CSV and XLSX

To learn more about Solutions, visit the the Google Ads Help Center.

Benefits of Using Solutions

Solutions offers a number of benefits, including:

  • It's easy to use. Solutions is a simple and straightforward script that can be used by anyone, regardless of their technical expertise.
  • It's customizable. Solutions can be customized to meet your specific automation needs.
  • It's efficient. Solutions can generate reports quickly and easily, saving you time and effort.
  • It's accurate. Solutions uses the Google Ads API to pull data directly from your Google Ads account, ensuring that your reports are accurate and up-to-date.

Developers Site Solution Library

In order to try to provide the best possible experience and to avoid duplication of efforts, we will also be sunsetting our manual solutions library in the coming months.

Get Started with Solutions Today!

Solutions is a powerful tool that can help you get the most out of your Google Ads campaigns. To get started, simply install the solution from the Google Ads Solutions gallery.

Google Ads Ad Groups Start Pausing March 11 due to Low Activity

Starting March 11, 2024 we are rolling out a permanent change that automatically pauses ad groups that were created at least 13 months ago and have not had impressions in the past 13 months. The rollout is expected to be complete for all production Google Ads accounts by April 30, 2024. This is being done to improve Google Ads experience for advertisers.

Advertisers who are affected by this change will be able to unpause ad groups if they still need them. However, we recommend that advertisers review their ad groups and only unpause the ones you expect to get impressions in the coming weeks. Unpaused ad groups will be automatically paused again if they don’t receive any impressions over the next 3 months.

What do I need to change?

No code changes are necessary, but Google Ads API developers can make changes to improve the transparency to their advertisers as to why the ad_group.status is set to PAUSED. If you keep local copies of Google Ads information in your database, you can keep them in sync by querying change history.

You can query the change event to see if the ad group status has changed with the following query for all API versions. If the change_event.changed_fields contains status, then this is an ad group that Google paused. Make sure to replace INSERT_YYYY-MMM-DD with your own date range.

SELECT ad_group.status, ad_group.resource_name, ad_group.name, 
ad_group.id, change_event.change_date_time, 
change_event.new_resource, change_event.old_resource, 
change_event.changed_fields, change_event.change_resource_type, 
change_event.client_type, change_event.user_email, change_event.ad_group 
FROM change_event 
WHERE change_event.client_type = 'OTHER' 
AND change_event.user_email = 'Low activity system bulk change'  
AND change_event.change_resource_type = 'AD_GROUP' 
AND ad_group.status = 'PAUSED' 
AND change_event.change_date_time >= 'INSERT_YYYY-MMM-DD' 
AND change_event.change_date_time <= 'INSERT_YYYY-MMM-DD' 
ORDER BY change_event.change_date_time DESC LIMIT 50

An example of a change event where the ad group has been paused by Google would look similar to:

{
      "adGroup": {
        "resourceName": "customers/1234567890/adGroups/5432154321",
        "status": "PAUSED",
        "id": "5432154321",
        "name": "Your ad group name"
      },
      "changeEvent": {
        "resourceName": "customers/1234567890/changeEvents/1708648783892610~5~0",
        "changeDateTime": "2024-02-22 16:39:43.89261",
        "changeResourceType": "AD_GROUP",
        "clientType": "OTHER",
        "userEmail": "Low activity system bulk change",
        "oldResource": {
          "adGroup": {
            "status": "ENABLED"
          }
        },
        "newResource": {
          "adGroup": {
            "status": "PAUSED"
          }
        },
        "changedFields": "status",
        "adGroup": "customers/1234567890/adGroups/5432154321"
      }
    }

Starting with v16, the API returns the reason as to why the ad group was paused with new fields. You can adjust the change history query to include these fields.

API Version Query Ad Group Changes
v16.1+ Starting in v16.1, the ad_group.primary_status_reasons will contain AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY if ad_group.primary_status is set to PAUSED by Google.
v16 Starting in v16, the ad_group.primary_status_reasons will contain AD_GROUP_PAUSED if ad_group.primary_status is set to PAUSED by Google.

You will still be able to update your ad groups and make changes while they are in a paused state.

Where can I get support?

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