[go: nahoru, domu]

Today we’re announcing the general availability of the Structured Data Files (SDF) v7.1 and the open beta of our new QA format. Both are available to all Display & Video 360 users.

While in open beta, the QA format might be updated without notice. These updates will be reflected in the documentation. We will announce the QA format release to general availability at a later date.

What’s new in v7.1?

All users can now use SDF v7.1 to upload and download SDFs in the Display & Video 360 UI, and to download SDFs through the Display & Video 360 API.

The update from v7 to v7.1 includes the following changes:

  • Added new TrueView Video Ad settings to the Line Item resource.
  • Renamed three insertion order columns to use “Kpi” instead of “Performance Goal.”
  • Introduced a new objective column to the insertion order resource. This column is currently in beta and only available to participating clients.

Full details on the changes made in v7.1 can be found in our Structured Data Files release notes. If you are currently using SDF v5.5 or v6, follow the instructions on our v7 migration guide first before migrating to v7.1.

What’s the SDF QA format?

The new SDF QA format provides SDFs with human-readable data to make it easier to review Display & Video 360 resource settings in bulk.

All supported SDF versions offer this format through two new file types: Line Item - QA and YouTube Ad Group - QA. These file types provide the same information as standard format files of the same version, and convey a subset of that information using display name values instead of numeric IDs.

SDF QA files are read-only and cannot be uploaded to modify or create Display & Video 360 resources. Currently, QA format files are only available through the Display & Video 360 interface.

We are accepting feedback on the QA format while it is in open beta. To submit feedback, please use the Send Feedback button on the relevant reference documentation page. We will consider suggested updates before releasing the QA format to general availability.

If you run into issues or need help with this new format or version, please follow the instructions on our support guide or contact us using our contact form.


Do you want to discover if Performance Max can provide additional benefits beyond your existing campaigns?
Are you interested in upgrading existing campaigns to Performance Max?
Do you need to scale your upgrades using the Google Ads API?

What’s new
If the answer to any of these questions is “yes”, then the new Upgrade to Performance Max guide can help. In this guide you will discover:
  • A summary of the benefits available in Performance Max
  • Steps to assist you managing the upgrade process
  • Eligibility information to help you understand which existing campaigns you are able to upgrade using the Google Ads API
  • Recommendations to compare reporting between existing campaigns and Performance Max campaigns
  • Enhancements you can make to improve your upgraded campaign
Feedback and support
If you have further questions or concerns about upgrading to Performance Max, we want to hear from you. Please provide any feedback on the upgrade process or Performance Max using our feedback page. If you require further support with your upgrade, please reach out to our team via one of our support channels.

We're pleased to announce that v202405 of the Google Ad Manager API is available today. This release brings support for contextual targeting.

It also includes a number of deprecations, such as the removal of the ActivityService, ActivityGroupService, and ACTIVITY reporting dimensions to support the Spotlight deprecation.

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.

We recently published a new suite of guides on how to create Performance Max campaigns in Google Ads scripts. You can check them out on our developers site.

These guides focus on using the new mutate function, which lets you access most of the features from the full Google Ads API.

By following the pattern established in these guides, you can customize the operations to perform all sorts of tasks automatically with scripts. Check out the mutate strategy section specifically for some general advice applicable to many use cases.

If you have any questions or concerns, you can reach out to us on our forum.

Starting June 10, 2024, we are rolling out a permanent change that automatically pauses Google Ads keywords that haven’t had any impressions during the last 13 months. The rollout is expected to be complete for all production Google Ads accounts in August 2024. We’re implementing this change to improve Google Ads experience for advertisers, in a similar way to what we changed earlier this year for ad groups with low activity.

You can unpause keywords if you still need them, or to remove them if you don’t. However, we recommend that all advertisers review their keywords, and only unpause the ones they expect to get impressions in the coming weeks.

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_criterion.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 resource to see if the keyword status has changed with the following query for all API versions. If the change_event.changed_fields contains status, then this is a keyword that Google paused. Make sure to replace INSERT_YYYY-MM-DD with your own date range.

SELECT
change_event.new_resource,
change_event.old_resource,
change_event.changed_fields,
change_event.resource_name,
change_event.change_resource_name,
change_event.user_email
FROM change_event
WHERE
change_event.change_resource_type = 'AD_GROUP_CRITERION'
AND change_event.user_email = 'Low activity system bulk change'
AND change_event.resource_change_operation = 'UPDATE'
AND change_event.change_date_time BETWEEN ' INSERT_YYYY-MM-DD' AND ' INSERT_YYYY-MM-DD'
ORDER BY change_event.change_date_time DESC
LIMIT 50

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

{
      "changeEvent": {
        "resourceName": "customers/1234567890/changeEvents/1708648783892610~5~0",
        "changeDateTime": "2024-02-22 16:39:43.89261",
        "changeResourceName": "customers/1234567890/adGroupCriteria/1234567890~0987654321",
        "changeResourceType": "AD_GROUP_CRITERION",
        "userEmail": "Low activity system bulk change",
        "oldResource": {
          "adGroupCriterion": {
            "status": "ENABLED"
          }
        },
        "newResource": {
          "adGroupCriterion": {
            "status": "PAUSED"
          }
        },
        "changedFields": "status",
        "resourceChangeOperation": "UPDATE",
      }
    }

You can use the resource names returned by this query to retrieve the current status of the keywords and mutate if, if needed.

Starting with v17, you can also retrieve the ad_group_criterion.primary_status field to see if your keywords have been paused; keywords that have this field set to PAUSED and for which the ad_group_criterion.primary_status_reasons contains AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY are the ones that were automatically paused due to low activity. You can adjust the change history query to include these fields.

You will still be able to update your keywords 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 googleadsapi-support@google.com.

Since 2020, we've asked the Google Publisher Tag (GPT) developer community to provide their valuable feedback through an annual survey. This feedback influences what we work on each year, and has directly inspired work on resources and tools like the official GPT type definitions, GPT sample builder, and more.

As we look forward to another year, it's time once again to check in with our developer community to see what's working well and what can be improved. Starting today, we're kicking off the 2024 GPT developer survey.

Take the survey

The survey should take no more than 10 minutes to complete, and it will be open through the end of June 2024. Most questions are optional and your answers are anonymous.

Remember that the feedback you provide influences what we work on over the course of the next year, so please let us know what matters most to you. Thanks in advance for taking the time to help improve the GPT developer experience!

Google Ads is rolling out a new feature that allows the account administrator to request its users to switch from a regular personal email address (for example john.doe@gmail.com) to a business email address (for example john.doe@example.com). We are making this change to improve account security and reduce potential surface for abuse. This is an informational post to highlight how this feature could affect the Google Ads API and Google Ads scripts developers.

How does this feature work?

To use this feature, the account administrator sends a request to an account user from the Google Ads UI to switch their personal email to a business email. If the user accepts, then the following steps are bundled behind the scenes:

  • A business email address is added to the Google Ads account.
  • A grace period of one month starts, where both the personal email address and business email address are active users in the Google Ads account.
  • The personal email address is removed from the Google Ads account at the end of the grace period.

Refer to our help center guide to learn more about this feature.

How does this affect API developers?

As a developer, you may need to do the following additional steps:

  1. If the user has authorized your application to make API calls to the Google Ads account using their personal email address, then the OAuth 2.0 refresh token will stop working once the personal email address is removed from the Google Ads account. You need to authorize the user with the new business email address.
  2. This change only works with Google Ads accounts. If the user manages other accounts, such as Google Analytics or Google Merchant Center, then the email address needs to be switched manually in those accounts. See the help center page for a more comprehensive list of locations where you might have to make a change.
  3. If you have authorized and scheduled Google Ads Scripts with the personal email address, you need to authorize the scripts with the business email address after this change.

How to get help

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

What's changing?

We are updating the Google Ads API resource usage policy to throttle GoogleAdsService.Search and GoogleAdsService.SearchStream query patterns that consume excessive amounts of API resources. If a particular query pattern is throttled, other services, methods, and query patterns will continue to work unaffected.

Starting the week of June 17, 2024, and only for the throttled query patterns, requests will be affected as follows:

  • If you use version v16 or older of the API, you will receive a QuotaError.RESOURCE_EXHAUSTED error.
  • If you use version v17 or later of the API, you will receive a QuotaError.EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION or QuotaError.EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION, depending on whether the excessive resource consumption was for a short period of time (a few minutes), or a long period of time.

To help you identify and monitor your expensive reports, we will also return a cost metric for individual reports. To view the cost for successful reports, see the following fields:

Why this change?

We are making this change to preserve the reliability and stability of the API.

What do I need to do?

Before June 17, 2024, update your applications to do the following:

  • Handle the new error codes when making GoogleAdsService::Search or GoogleAdsService::SearchStream calls
    • If you use version v16 or earlier of the Google Ads API, then handle QuotaError.RESOURCE_EXHAUSTED errors.
    • If you use version v17 or later of the API, handle the QuotaError.EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION and QuotaError.EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION errors.
    • If one or more of your reporting query patterns are throttled, you should review and fix the query pattern. Here are some ways to improve query performance:
    • Run the query less frequently.
    • Use a less expensive query pattern or view.

To learn more about optimizing your queries, see manage data efficiency.

  • [Optional] Incorporate the new query_resource_consumption metric into your monitoring systems to detect and handle new expensive queries.

How to get help

If you have any questions about this change or need help optimizing specific query patterns, check out the Google Ads API support page for options.

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

More details 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 new Display & Video 360 API Technical support contact form.

Today, we’re announcing the v16_1 release of the Google Ads API. To use some of the v16_1 features, 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 additional help, contact us via the forum.

Google Ads API v14 will sunset on June 5, 2024. After this date, all v14 API requests will begin to fail. Migrate to a newer version prior to June 5, 2024 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 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., google.ads.googleads.v14.services.GoogleAdsService.Mutate. 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, reach out to us on the forum or at googleadsapi-support@google.com.

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.

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 adxbuyerapi-support@google.com.

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.

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.

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.

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.

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:

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.

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.

Starting March 11, 2024 we are rolling out a permanent change that automatically pauses search campaign 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.user_email, change_event.ad_group 
FROM change_event 
WHERE 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",
        "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 googleadsapi-support@google.com.

Today we’re announcing the February 2024 update to the Display & Video 360 API. This update includes the following features:

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

What happened?

For developers linking Merchant Center accounts to Google Ads using Google Ads API v14, there was an issue from 04:00 PST Monday, Feb 19 to 08:00 PST Tuesday, Feb 20 that caused some requests to the MutateMerchantCenterLink method of MerchantCenterLinkService to return MutateError.RESOURCE_NOT_FOUND. Also calls to ListMerchantCenterLinks may not have returned some MerchantCenterLinks with link status PENDING.

What should I do?

If you use Google Ads API v14 to link Merchant Center accounts to Google Ads accounts using MerchantCenterLinkService, you should check to see if you have accounts that have pending link requests during the period of time described above. This issue has now been resolved and you may retry the failed calls to complete the linking of Merchant Center accounts. Also check ListMerchantCenterLinks for accounts with link status PENDING. Some of these link requests may not have previously been returned during that time period.

How to get help

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

In April 2024, we are releasing a new version of Google Ads scripts that is updated to use Google Ads API v15.

Note: Our generic search and mutate methods allow for new API features as soon as they become available, and have been supporting Google Ads API v15 since its release.

As a result of this change, several features that were removed from v15 of the Google Ads API will no longer be available in Google Ads scripts:
  • AdsApp.adMedia() will throw a sunset error. Media is no longer supported. Assets are used instead.
  • ResponsiveDisplayAd would previously return a Media when fetching its marketing image or logo image. Instead, this will now return null.
  • ImageAd.getImage() previously returned a Media. It will now return an Asset instead. This will be a breaking change if you depend on this method.
In addition to these changes, we will be increasing the default reporting version to v15 if you don't manually specify a version.
If you have any questions or concerns, you can reach out to us on our forum.

Today, we’re announcing the v16 release of the Google Ads API. To use some of the v16 features, you will need to upgrade your client libraries and client code. The updated client libraries and code examples will be published next week.
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.

Note: You can ignore this if you are not using Google Ads Performance Max with page feeds and text asset automation

What’s happened?

In October 2023, as part of Google Ads API v15, we launched the ability to configure your campaign to automatically generate text assets. Assets such as dynamic headlines or descriptions that match your landing page content can be configured by setting the Campaign.AssetAutomationSetting of TEXT_ASSET_AUTOMATION to be opted-in or opted-out. We also launched the ListingGroupFilterDimension.Webpage dimension to allow Performance Max campaigns to filter URLs from a page feed specified by a CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED.

For this feature to work correctly, developers need to provide BOTH the page feed configuration AND set text asset automation to OPTED_IN (which is the default behavior, if you do not specify a Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION). We noticed that some developers have included a page feed or a listing group filter for a webpage, but have text asset automation set to OPTED_OUT. Unfortunately this combination will not correctly utilize the page feed for Performance Max campaigns as might be expected.

What is happening today?

Starting Feb 15, 2024, we will begin throwing OPERATION_NOT_PERMITTED_FOR_CONTEXT errors if a Performance Max campaign is created or updated such that it contains the follow incompatible state:

Incompatible state for a Performance Max campaign with a page feed and text asset automation
Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION is set to OPTED_OUT AND A CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED
OR
An AssetGroupListingGroupFilter with ListingGroupFilterDimension set to Webpage.

We are doing this to let you know that this combination is not valid and won’t serve ads utilizing landing page content as expected.

What happens next?

For those developers who have campaigns in this incompatible state, starting April 15, 2024, we will automatically fix the compatibility by removing CampaignAssetSet resources linking a campaign to an AssetSet of type PAGE_FEED and removing AssetGroupListingGroupFilter resources with ListingGroupFilterDimension set to Webpage only if the Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION is set to OPTED_OUT. This fix will match how the campaign is currently serving and no action is required if you would like the campaign to remain in this state. If you would like to utilize the landing page content, then you will need to opt-in to text asset automation.

What do I need to do?

First, confirm that you are using text asset automation and page feed assets or asset group listing filters with webpage dimensions in your Performance Max campaigns. Otherwise, you are not impacted by this change.

To check if your Performance Max campaign is in an incompatible state for page feeds, run the following GAQL queries:

1) Check for page feeds linked to campaigns that have text asset automation opted-out:

SELECT 
  asset_set.id, 
  asset_set.name, 
  asset_set.resource_name, 
  campaign.id, 
  campaign.name, 
  campaign.resource_name, 
  campaign.asset_automation_settings, 
  campaign_asset_set.status, 
  campaign.status 
FROM campaign_asset_set 
WHERE 
  campaign.advertising_channel_type = 'PERFORMANCE_MAX' 
  AND asset_set.type = 'PAGE_FEED' 
  AND asset_set.status = 'ENABLED' 
  AND campaign_asset_set.status = 'ENABLED' 
  AND campaign.status != 'REMOVED' 

You may be impacted if any of the CampaignAssetSet resources, linking a campaign to an AssetSet of type PAGE_FEED, have a campaign_asset_set.status that is set to ENABLED and an item in campaign.asset_automation_settings with TEXT_ASSET_AUTOMATION set to OPTED_OUT.

2) Check for asset group listing group filters with dimension webpage for campaigns that have text asset automation opted-out:

SELECT 
  asset_group.id, 
  asset_group.name, 
  asset_group.resource_name, 
  asset_group_listing_group_filter.case_value.webpage.conditions, 
  asset_group_listing_group_filter.id, 
  asset_group_listing_group_filter.resource_name, 
  asset_group_listing_group_filter.listing_source, 
  campaign.id, 
  campaign.name, 
  campaign.resource_name, 
  campaign.asset_automation_settings, 
  campaign.status 
FROM asset_group_listing_group_filter 
WHERE 
  asset_group.status != 'REMOVED' 
  AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' 
  AND asset_group_listing_group_filter.listing_source = 'WEBPAGE' 
  AND campaign.status != 'REMOVED'

You may be impacted if any of the AssetGroupListingGroupFilter resources have a case_value that is a Webpage and an item in campaign.asset_automation_settings with TEXT_ASSET_AUTOMATION set to OPTED_OUT.

Manually fix the inconsistent state of the campaign

If you would like to manually configure the campaign yourself ahead of the automatic fix, we suggest one of the two options:

Options to manually fix the inconsistent state of a Performance Max campaign
OPTION A) Turn on text asset automation
Set Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION to OPTED_IN
OPTION B) Remove associated page feed references
Remove BOTH:
The CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED AND The AssetGroupListingGroupFilter with ListingGroupFilterDimension set to Webpage.

You will be able to make this change until April 15, 2024, after which option B will be automatically applied to fix the Performance Max campaign. Note that after the automatic fix is applied, the serving state of the campaign won't change from how it is serving today.

How do I get support?

For more details on how to correctly use automatically generated text assets with landing pages, see the automatically created assets section of the Performance Max guide. If you require further support, please reach out to our team via one of our support channels.

Today we are deprecating Display & Video 360 API v2 and will sunset v2 on September 3, 2024. Migrate to Display & Video 360 API v3 before the sunset date to avoid an interruption of service.

You can read our release notes for more information on updates made to the API in v3, such as the addition of proximity location list management and updates to resource and field names. Follow the steps in our v3 migration guide to help you migrate from v2 to v3.

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

We're pleased to announce that v202402 of the Google Ad Manager API is available starting today, February 13, 2024. This release brings support for gross revenue metrics in reporting as well as new error messages to support the Spotlight deprecation.

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.

On April 30, 2024, the creation of hotel campaigns with COMMISSION bidding strategy will sunset. This bidding strategy was available only to travel advertisers. Requests to create new hotel campaigns or apply this bidding strategy to existing campaigns after April 30th will result in a BiddingStrategyError.BIDDING_STRATEGY_NOT_SUPPORTED error. Existing campaigns with the COMMISSION bidding strategy will continue to run until October 31, 2024. After this day campaigns will stop serving until their bidding strategy is updated. A notification will be displayed in the Google Ads UI, guiding users on how to update the affected campaigns.

We suggest that travel advertisers with Hotel campaigns and Things to do Ads migrate to the Target ROAS (TARGET_ROAS) auto bidding strategy. You can find more information about the tROAS in our Help Center article.

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

Today, we are announcing that version 11.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements.

Simplified SwiftUI development

Version 11.0.0 no longer requires publishers to declare a view controller to present full-screen ads. As a result, SwiftUI Publishers can now present full-screen ads without the need for UIKit or UIViewControllerRepresentable workarounds. See our SwiftUI guide for more information.

struct ContentView: View {
  private let adCoordinator = AdCoordinator()

  var body: some View {
    ...

    Button("Watch an ad") {
      adCoordinator.showAd()
    }
  }
}

private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate {
  private var interstitial: GADInterstitialAd?

  ...

  func showAd() {
    guard let interstitial = interstitial else {
      return print("Ad wasn't ready")
    }

    // The SDK uses the app's main window to look up view controllers
    // automatically when one is not provided.
    interstitial.present(fromRootViewController: nil)
  }
}

Continue collecting user metrics in AdMob

The Google Mobile Ads SDK dependency on GoogleAppMeasurement has been removed. This dependency that powered the user metrics toggle in AdMob will be discontinued in early 2024. To continue collecting user metrics in AdMob, link your AdMob app to Firebase and integrate the Google Analytics for Firebase SDK into your app.

Changes to minimum OS and Xcode requirements

  • The minimum OS version to load ads has been bumped from 12 to 13. Applications can still be built for iOS 12, but the SDK will only load ads on iOS 13 and higher.
  • The minimum supported Xcode version has been bumped to 15.1.

For the full list of changes, check the release notes. Check our migration guide to ensure your mobile apps are ready to upgrade.

SDK Deprecation Reminder

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

  • iOS Google Mobile Ads SDK versions 9.x.x are officially deprecated, and will sunset in Q2 2025.
  • Versions 8.x.x and below will sunset in Q2 2024, approximately 60 days following the release of Android Google Mobile Ads SDK major version 23.0.0.
    • While there are currently no plans to disable ad serving on version 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.

As always, if you have any questions or need additional help, contact us via the developer forum.