Author Archives: Google Ads Developer Advisor

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() {
    super.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 {
          self.startGoogleMobileAdsSDK()
        }
      }
    }

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

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

      self.isMobileAdsStartCalled = true

      // Initialize the Google Mobile Ads SDK.
      GADMobileAds.sharedInstance().start()
      // Request an ad.
      GADInterstitialAd.load(...)
    }
  }
}

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.

Image and Location Assets in New Accounts

What’s changing?

On July 6, 2023 we announced the auto-migration of image and location extensions to assets. Once the auto-migration starts on August 2, 2023, new accounts will only be able to create image and location assets and not extensions. New accounts will be treated as accounts that have been migrated.

How do I verify my account?

Use the following fields from v13 or greater in the Customer resource to track the status of your account:

  • bool image_asset_auto_migration_done
  • string image_asset_auto_migration_done_date_time
  • bool location_asset_auto_migration_done
  • string location_asset_auto_migration_done_date_time

What if I try to create an extension on a new or migrated account?

If your account has been migrated or is new and you attempt to create an extension the mutate request will be rejected and you will receive the error:

     LEGACY_EXTENSION_TYPE_READ_ONLY

If you have any questions, please reach out to us on the forum.

Effectively use the Attribution Reporting API for ad measurement

Overview

Historically, ad-tech providers have used third-party cookies (3PC) as a mechanism for conversion measurement, and for attributing conversions to ad interactions. Conversion measurement provides critical ad performance data to advertisers, and helps optimize auction-based bidding strategies.

Currently, the online advertising ecosystem is pivoting towards improved ways to protect user privacy. Chrome’s Attribution Reporting API (ARA), a part of the larger Privacy Sandbox initiative, offers an alternative for measurement after the third-party cookie deprecation in 2024. Ad-tech providers, including Google’s ads platforms, should consider adopting the ARA to maintain high-quality conversion measurement and support the pivot toward user privacy protection.

Google Ads has made significant investments to use the ARA more effectively and to help advertisers achieve more accurate measurement. We encourage other ad-tech providers to integrate with the ARA, configure the integration to retrieve the data they need, and process the ARA's output to help maintain accurate measurement after the planned third-party cookie deprecation in 2024.

Goals of the ARA

The ARA has two goals:

  • Protect users’ cross-site and cross-app identities from ad-tech providers, advertisers, publishers and other entities by using differential privacy techniques, such as aggregation, or adding an element of noise to the data.
  • Provide useful measurement information to ad-tech providers, advertisers, and publishers.

The ARA represents a change to both the format and granularity of conversion data available to ad-tech providers. As a result, ad-tech providers must change their current measurement protocols in order to start leveraging the ARA.

A glimpse into our approach

Ad-tech providers who participate in the Privacy Sandbox initiative receive data from the ARA in two forms: event-level reports and aggregate summary reports. This way, two independent views of the same underlying data are available. We encourage ad-tech providers to configure the reporting settings in the API to optimize for better measurement accuracy without 3PC, as well as improve how these two types of reports can be post-processed and used together.

There are many possible ways to utilize the ARA reports. The methodology that works for an ad-tech provider will ultimately depend on its conversion data and measurement requirements. Google Ads has found that leveraging both report types can help the industry benefit from the strengths of each report.

Google Ads leverages both event types to produce a more complete, ad event-level log. We are committed to sharing our process and engaging with the ecosystem to help our partners and the broader industry transition into a future without third-party cookies.

For more details on how we’re implementing the Attribution Reporting API, please refer to our detailed technical guide.

Announcing New Reporting Script for Performance Max

Today, we’re announcing the publishing of a new pre-written Script for reporting on Performance Max campaign performance in Google Ads scripts. This script will report on your conversions and other performance related metrics for your campaigns. The only thing needed to get it running is to copy the source code into your account and schedule the script to run daily.

How can I get started?
Find the script here.

If you have any questions or need additional help, contact us via the forum.

Display & Video 360 API v1 will sunset on September 14, 2023

As announced in March 2023, Display & Video 360 (DV360) API v1 will sunset on September 14, 2023. Please migrate to DV360 API v2 before the sunset date to avoid an interruption of service.

You can read our release notes for more information about v2. Follow the steps in our v2 migration guide to help you migrate from v1 to v2.

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