Category Archives: Ads Developer Blog

The official blog for information about the AdWords, AdSense, DoubleClick and AdMob APIs and SDKs

Google Ads scripts failures starting on October 13

There is an ongoing issue with Google Ads scripts that started around 7:30 AM EDT on October 13, 2021. If your existing script is affected, it will fail with a "Finished with errors" execution status or show "Failed" or "No changes" in the Results column. No context is being logged for the failed scripts. If your existing script is affected, it will fail to run while this issue is ongoing. We will keep this blog post updated with the latest information.

We have identified the issue and it will not affect any further scripts than those already affected at this time. We are working on restoring functionality for all scripts. Once we do, your scripts will return to running as scheduled.

This issue only affects existing scripts, so as a workaround while we work to resolve this issue, you can create a duplicate of your existing script. You can do this by copying and pasting the script contents into a new script.

If you have any questions, please leave a post on our forum.

Announcing the release of the Authorized Buyers Marketplace API

The Authorized Buyers Marketplace API has been released. You can use the Marketplace API to manage clients, users, and auction packages, and to negotiate proposals with publishers. This new API is intended to replace the following Marketplace resources included in the Ad Exchange Buyer II API:
Although the Ad Exchange Buyer II API is not deprecated at this time, we recommend that all Marketplace integrations adopt the new API to receive the latest updates going forward. New features will only appear in the Marketplace API.

The Marketplace API introduces the following features:
  • Programmatic support for auction packages.
  • Deals are now a sub-resource of proposals.
  • The finalizedDeals resource helps you manage deals.
  • The rtbMetrics field of finalizedDeals provides performance data.
Given that the Marketplace API is distinct from the existing Real-time Bidding and Ad Exchange Buyer II APIs, please note that you need to enable the Authorized Buyers Marketplace API in your Google Cloud Console project. Additionally, you need to update your existing OAuth 2.0 credentials and workflows to include a new API scope:

https://www.googleapis.com/auth/authorized-buyers-marketplace

For any questions or feedback about this API, please contact us via our support forums.

UserData Enforcement in Google Ads API

On January 10, 2022, the maximum number of user_identifers set in a UserData object will be reduced from 100,000 to 20. This is to clarify that each set should represent a single user.

The table below illustrates uploading UserData for two users (John Doe and Max Mustermann), each of whom has two email addresses.




Correct usage

operations: {
create: {
user_identifiers {
hashed_email: hash(“[email protected]”)
},
user_identifiers {
hashed_email: hash(“[email protected]”)
}
}
}
operations: {
create: {
user_identifiers {
hashed_email: hash(“[email protected]”)
},
user_identifiers {
hashed_email: hash(“[email protected]”)
}
}
}
Incorrect usage

operations: {
create: {
user_identifiers {
hashed_email: hash(“[email protected]”)
},
user_identifiers {
hashed_email: hash(“[email protected]”)
},
user_identifiers {
hashed_email: hash(“[email protected]”)
},
user_identifiers {
hashed_email: hash(“[email protected]”)
}
}
}

UserData is used for Customer Match and store sales uploads. In a given create/remove UserData operation, each set of user_identifiers should be for a single user.

Note that the same total amount of data can be sent in a single request, but each set of user_identifiers must represent a single person.

If the number of user_identifiers for a single set exceeds the new limit of 20, a TOO_MANY_USER_IDENTIFIERS error will be generated.

This will be applied to the two Google Ads API methods that provide UserData uploads:

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

Final reminder to migrate to the AdMob API

On October 12, 2021, you will no longer be able to retrieve AdMob data from the AdSense Management API v1.4. To retrieve AdMob data programmatically, migrate to the AdMob API.

What do I need to do?

Follow the instructions in the migration guide to migrate your API workflow. Review these additional resources to support your migration:


Start migrating from the AdSense API to the AdMob API as soon as possible. If you don’t complete the migration by October 12th, 2021, you will lose access to AdMob data through the AdSense API, which may impact your ability to make data-driven business decisions.

Feel free to reach out to us via the AdMob API Developer forum if you have questions or feedback regarding the AdMob API.


Take the 2021 Google Publisher Tag developer survey

In 2020, we launched the first ever Google Publisher Tag (GPT) developer survey to learn more about our community and understand how we can improve the developer experience. Feedback from users like you directly inspired improvements to our sample offerings, release notes, and much more over the course of the past year.

As we look forward to a new 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 2021 GPT developer survey.



The survey should take no more than 10 minutes to complete, and it will be open through the end of October 2021. Most questions are optional and your answers are completely 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!

Support for Responsive Video Ads in Scripts

Today we’re launching support for responsive video ads in Google Ads scripts. If you were using the TrueView for action campaign type, you must update your code to use the new video ad type. If you don’t update, your code will begin throwing errors starting approximately October 10, 2021. The old TrueView for action campaign type is being renamed to Video action campaign along with this change.

You can update your selectors with a new withCondition clause to separate Video action campaigns from other video campaign types in your code.

To get campaigns with the video action type:

AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
.get();
Or to get video campaigns of other types, which are unaffected by this change:

AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType != VIDEO_ACTION")
.get();
Once you've identified that you're acting on a Video action campaign, create a new type of ad group that can house responsive video ads, and then construct a new type of ad at ad creation time. For other types of video campaigns, this new ad type isn’t available.

For creating the ad group, if you were using:

videoCampaign.newVideoAdGroupBuilder().withAdGroupType("VIDEO_TRUE_VIEW_IN_STREAM")
Then update that code to:

videoCampaign.newVideoAdGroupBuilder().withAdGroupType("VIDEO_RESPONSIVE")
For creating the ads themselves, if you were using:

adGroup.newVideoAd().inStreamAdBuilder()
Then update that code to:

adGroup.newVideoAd().responsiveVideoAdBuilder()
Check out the reference documentation for the new responsiveVideoAdBuilder for details on its fields and methods.

If you have any questions, please leave a post on our forum so that we can help.

Google Ads API, Google Ads scripts, and AdWords API issues on Oct 1

Between 2:50 am EDT and 6:40 am EDT on October 1, there was an outage that may have prevented some users from accessing the Google Ads API, Google Ads scripts, & the AdWords API. If you were using the Google Ads API or the AdWords API or running Google Ads scripts, then you may have experienced slowness or timeouts. Please check for any failed requests from these tools during the outage.

If you have any questions, please contact us via the forum.

Register for the Google Ads API Migration Workshop

As previously announced, the Google Ads API Migration Workshop is only one week away. Register today to reserve your spot.

As a reminder, the workshop will provide you with knowledge, resources, and support to migrate from the AdWords API to the Google Ads API. We’re offering this live workshop in three regions. Follow the links below to view the full agenda in your region.

Session Dates

We look forward to seeing you!

Making Google Ads API Client Libraries More Inclusive

As part of Google’s effort to foster inclusivity in our products and communities, we will be changing the name of the default branch to main in the Google Ads API client libraries. This change is a small but important step towards making diversity, equity, and inclusion central to our work on the Google Ads API.

This change won’t affect most client library users who access the libraries through a distribution platform like PyPi for Python or Maven for Java. Users who access the libraries directly from the default branch on GitHub should start using the new main branch once it’s available. We encourage contributors who own forks of these client libraries to update them accordingly.

If you have any questions about this change, please file an issue on the issues tracker for your client library of choice (like Python). As always, please feel free to contact us through the forum or at [email protected] for additional help.

AdSense Management API v1.4 Sunset Reminder

This is the final reminder that v1.4 of the AdSense Management API will sunset on October 12, 2021. Any requests made this this version will stop working on this date. If you haven’t already migrated to v2 of the AdSense Management API, now is the time to do so.

For help with migrating, see our migration overview guide. We also have updated examples for all five of our client libraries: Java, Python, Ruby, PHP, and .NET. For a full list of changes, see the release notes.

As always, feel free to reach out to us on the AdSense API forum with any API-related questions.