Author Archives: Google Ads Developer Advisor

Introducing a new way to discover Display & Video 360 bulk tools

Today we’re announcing a new guide to help Display & Video 360 users discover available bulk tools that they can use to optimize their integrations.

The guide offers a high-level overview of each of the following tools that allow you to integrate with Display & Video 360 at scale:

The guide also provides a recommendations page that can help you choose the right bulk tool based on your needs and circumstances and a page proposing potential platform-wide integrations using multiple bulk tools.

You can navigate to this new guide from the existing Display & Video 360 API, Bid Manager API, or Reporting Data Transfer documentation using the Discover Bulk Tools tab at the top of the page.

August 2023 update to Display & Video 360 API v2

Today we’re announcing the August 2023 update to Display & Video 360 API v2. This update includes the following features:

More detailed information about this update can be found in 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 support contact form.

Google Ads API v12 sunset reminder

Google Ads API v12 will sunset on September 27, 2023. After this date, all v12 API requests will begin to fail. Please migrate to a newer version before September 27, 2023 to ensure your API access is unaffected.

We've prepared various resources to help you with the migration: In addition, using the Google Cloud Console, you can view the list of methods and services to which your project recently submitted requests:
  1. Open the Dashboard page (found under APIs & Services) in the Google Cloud Console.
  2. Click on Google Ads API in the table.
  3. On the METRICS subtab, you should see your recent requests plotted on each graph. At the bottom of the page, you’ll see the Methods table, where you can see which methods you’ve sent requests to. The method name includes a Google Ads API version, a service, and a method name, e.g., In this way, you can see all versions that you’ve used recently.
  4. (Optional) Click on the time frame at the top right of the page if you need to change it.
If you have questions while you’re upgrading, please reach out to us on the forum or through [email protected].

Launching the Merchant Support Service

On August 23rd, 2023, we introduced new features in the Content API for Shopping to help you display detailed information about product and account issues to your merchants, and enable those merchants to request re-review or perform other actions. The new MerchantSupport service provides more transparency about our policy-related requirements to your merchants. These methods should be used for merchants based in the EEA, but can be used globally.

Here are the 2 new methods (developer guide):
  • Render account issues: provides UI elements with text in the language you select to display account issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions
  • Render product issues: provides UI elements with text in the language you select to display product issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions
All issue texts returned from MerchantSupport methods above are localized. Clients can request texts in any Merchant Center supported language. Please note that merchants need to have access to their Merchant Center account in order to perform the actions.

If you are based in EEA, we highly recommend implementing MerchantSupport methods by the end of the year, so that your merchants will have more information regarding our policy-related requirements, and have access to our new features. In the future we will expand the MerchantSupport service to let you request re-review or perform other actions directly with the Content API for Shopping. With this future addition, your merchants will not have to be redirected to Merchant Center, they will be able to request the action directly in your UI.

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

Deprecation of Structured Data Files v5.4

Today we’re announcing the deprecation of Structured Data Files (SDF) v5.4. This version will be fully sunset on February 27, 2024.

Please migrate to v6, the most recent version, by the sunset date. Once v5.4 is sunset::

  • The default version of partners and advertisers using those versions will be updated to the oldest supported version, v5.5.
  • sdfdownloadtasks.create requests declaring the sunset versions 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.

Announcing v202308 of the Google Ad Manager API

We're pleased to announce that v202308 of the Google Ad Manager API is available starting today, August 23, 2023. This release brings support for new ThirdPartyMeasurementSettings providers.

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

Announcing v14_1 of the Google Ads API

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

Here are the highlights: Where can I learn more?
The following resources can help you get started: If you have any questions or need help, contact us through the forum.

Change to updates of Google Ads custom audience types

Starting September 27, 2023 you will see a change if you use custom audiences. You will no longer be able to update a custom audience type once you create the custom audience. For example, if you set the type to AUTO or INTEREST, then you cannot update it to the type SEARCH in the Google Ads API. This change ensures that your campaign continues to serve by making sure that your custom audience remains eligible.

What do I need to change?

Modify your code so it avoids attempting to update the type of an existing CustomAudience. If your code attempts to update the type field after September 27, 2023 then the API will return a CustomAudienceError.INVALID_TYPE_CHANGE error.

Where can I get support?

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

We’ve Made Updates to the User Messaging Platform SDK APIs

In case you missed it, we announced new consent management platform requirements for serving ads in the EEA and UK. Beginning January 16, 2024, Google will require all publishers to use a Google-certified consent management platform (CMP) when serving ads to users in the European Economic Area or the UK.

In addition to growing our list of certified CMPs, we explored how to improve the User Messaging Platform (UMP) SDK developer experience for those who choose to use Google’s consent management solution. We are excited to share several updates in the latest iOS and Android versions that we think will streamline your integration.

Loading and presenting a consent form

The latest UMP SDK release introduces a new API, loadAndPresentIfRequired(), that consolidates the existing individual load and present consent form methods into a single method. The new API loads a consent form and if consent is required, automatically presents the consent form. This method is intended to be used at the beginning of a new app session.

Here is a code example of how to use the new API on iOS:

class ViewController: UIViewController {

  private var isMobileAdsStartCalled = false

  override func viewDidLoad() {

    UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
      [weak self] requestConsentError in
      guard let self else { return }

      // Call the helper method once consent information has been updated.
      UMPConsentForm.loadAndPresentIfRequired(from: self) {
        [weak self] loadAndPresentError in
        guard let self else { return }

        if UMPConsentInformation.sharedInstance.canRequestAds {

    // canRequestAds will be true if consent was gathered in the previous session.
    if UMPConsentInformation.sharedInstance.canRequestAds {

  private func startGoogleMobileAdsSDK() {
    DispatchQueue.main.async {
      guard !self.isMobileAdsStartCalled else { return }

      self.isMobileAdsStartCalled = true

      // Initialize the Google Mobile Ads SDK.
      // Request an ad.

Checking when to request ads

We added a new boolean property canRequestAds to use as a check before initializing the Google Mobile Ads SDK and requesting ads. canRequestAds returns true when the consent status is either OBTAINED or NOT_REQUIRED; as a result you don’t need to implement any enum checking yourself.

You should use the canRequestAds API in two places (as seen in the code snippet above):

  1. Once consent has been gathered in the current session.
  2. Immediately after you have called requestConsentInfoUpdate. It is possible consent has been gathered in the previous session in which case it is not necessary to wait for the callback to finish.

Checking privacy options requirement status

GDPR requires that publishers allow users to withdraw their consent choices at any time. It should be as easy to withdraw consent as it is to gather consent. To simplify this process, we have added two new APIs:

  1. privacyOptionsRequirementStatus to determine whether you should include a UI element that can re-present the consent form, such as a button in your application’s settings page.
  2. presentPrivacyOptionsForm() to show the form so the user can update their consent status at any time.

Here is a code example of how to use the new APIs on iOS:

// Show a privacy options button if required.
private var isPrivacySettingsButtonEnabled: Bool {
  return UMPConsentInformation.shared.privacyOptionsRequirementStatus == .required

// Present the privacy options form when a user interacts with your app.
@IBAction func privacySettingsTapped(_ sender: UIBarButtonItem) {
  UMPConsentForm.presentPrivacyOptionsForm(from: self) {
    [weak self] formError in
    guard let self, let formError else { return }

    // Handle the error.

Developer resources

We updated our AdMob banner samples applications for iOS and Android to showcase integrating the UMP SDK. Keep an eye out as we add UMP SDK support to the rest of our samples soon.

Also take a look at our iOS and Android developer documentation for instructions on how to implement the UMP SDK.

If you have any questions or need additional help integrating the UMP SDK, please contact us via the developer forum.