<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <!-- 1. Feed-Level Metadata -->
  <id>tag:developers.google.com,2026:Google-Advertising-and-Measurement-Developer-Blog</id>
  <updated>2026-11-10T00:00:00Z</updated>
  <title type='text'>Google Advertising and Measurement Developer Blog</title>
  <subtitle type='html'>Keep up with the latest announcements for Google Advertising and Measurement developer tools.</subtitle>

  <link rel='self' href='https://developers.google.com/ads/blog/rss.xml'/>
  <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/'/>

  <!-- 2. Individual Blog Post Entries -->
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/11/the-google-ads-developer-blog-is-moving</id>
    <published>2026-11-10T00:00:00Z</published>
    <updated>2026-11-10T00:00:00Z</updated>

    <title type='text'>The Google Ads Developer Blog is moving!</title>
    <content type='html'>&lt;p&gt;Today we&#39;re announcing the move of the Google Ads Developer Blog from Blogger to
the &lt;a href=&quot;https://developers.google.com?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;Google for Developers&lt;/a&gt;
platform, where it will be joining the &lt;a href=&quot;//developers.google.com/ads?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;Google Advertising and Measurement Developers Hub&lt;/a&gt;
and be known as the &lt;a href=&quot;//developers.google.com/ads/blog?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;Google Advertising and Measurement Developer Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You&#39;re probably already familiar with this platform: it&#39;s where we host guides
and reference documentation for our various products. While this move will give
our blog a new look, improved formatting, and additional features such as
clearer tagging and curated product pages, it won&#39;t change the content. In fact,
it will make it easier for you to get the information you need about the
products you use.&lt;/p&gt;
&lt;p&gt;Starting &lt;strong&gt;November 11, 2026&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our current Blogger homepage, &lt;a href=&quot;https://ads-developers.googleblog.com?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-old-blog&quot;&gt;ads-developers.googleblog.com&lt;/a&gt;, will redirect to our new site at &lt;a href=&quot;//developers.google.com/ads/blog?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;developers.google.com/ads/blog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Any blog post published on or after January 1, 2024, and any Blogger label page updated since that date will automatically redirect to its migrated version on the new platform.&lt;/li&gt;
&lt;li&gt;All new blog posts will be published solely on &lt;a href=&quot;//developers.google.com/ads/blog?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;developers.google.com/ads/blog&lt;/a&gt;, with the most recent post available at &lt;a href=&quot;//developers.google.com/ads/blog/latest?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;developers.google.com/ads/blog/latest&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Any blog posts published before 2024 will continue to be hosted solely on
Blogger. These posts won&#39;t be included in any feeds on the new platform, but
will be listed in reverse chronological order on our &lt;a href=&quot;//developers.google.com/ads/blog/posts/archive?utm_source=googleblog-adsdevs&amp;amp;utm_medium=blog&amp;amp;utm_campaign=adr-blog-migration&amp;amp;utm_content=learnmore-new-blog&quot;&gt;archive page&lt;/a&gt;
and available directly using the URL.&lt;/p&gt;
&lt;p&gt;If you receive our content using RSS, point your RSS reader to our new feed at
&lt;a href=&quot;https://developers.google.com/ads/blog/rss.xml&quot;&gt;developers.google.com/ads/blog/rss.xml&lt;/a&gt;.
This new feed contains the most recent 25 posts and doesn&#39;t support
product-specific feeds. While blog updates will be reflected only in our new RSS
feed after November 10, the existing feed will continue to be accessible to
avoid breaking existing integrations.&lt;/p&gt;
&lt;p&gt;After 15 years of the Google Ads Developer Blog on Blogger, we know that our
dedicated readers and developers are accustomed to how they hear from us. Our
priority with this migration is to make a better experience for you, and we
intend to continue updating our blog with that in mind. If you have any
questions, suggestions, or concerns, feel free to reach out to us on the
&lt;a href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
We have created a temporary channel, &lt;strong&gt;#ads-developer-blog&lt;/strong&gt;, for this
discussion. It will be available for the next few weeks.&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/11/the-google-ads-developer-blog-is-moving' title='The Google Ads Developer Blog is moving!'/>
    <author><name>Trevor Mulchay, Advertising and Measurement Developer Relations Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/11/display-targeting-changes-in-demand-gen</id>
    <published>2026-11-09T00:00:00Z</published>
    <updated>2026-11-09T00:00:00Z</updated>

    <title type='text'>Display targeting changes in Demand Gen campaigns starting the week of December 1, 2026</title>
    <content type='html'>&lt;p&gt;
Starting the week of December 1, 2026, campaign-level Display targeting (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/Campaign.NetworkSettings#target_content_network&quot;&gt;network_settings.target_content_network&lt;/a&gt;&lt;/code&gt;) will default to enabled (&lt;code&gt;true&lt;/code&gt;) for newly created Demand Gen campaigns. Display network targeting will be managed directly at the ad group level using channel controls (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/AdGroup.DemandGenAdGroupSettings.DemandGenChannelControls.DemandGenSelectedChannels#display&quot;&gt;demand_gen_ad_group_settings.channel_controls.selected_channels.display&lt;/a&gt;&lt;/code&gt;) and channel strategies. Overall default campaign serving behavior will remain unchanged.
&lt;/p&gt;
&lt;p&gt;
You will no longer be able to disable Display targeting for Demand Gen campaigns at the campaign level by setting &lt;code&gt;network_settings.target_content_network&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;. Setting this field during campaign creation or update will result in an &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/ContextErrorEnum.ContextError#operation_not_permitted_for_context&quot;&gt;OPERATION_NOT_PERMITTED_FOR_CONTEXT&lt;/a&gt;&lt;/code&gt; error.
&lt;/p&gt;
&lt;p&gt;
Previously, disabling Display targeting at the campaign level overrode the Display targeting setting at the ad group level. Managing Display targeting exclusively at the ad group level eliminates this dual-level configuration, ensuring consistent channel representation across the Google Ads API, Google Ads UI, and Google Ads Editor.
&lt;/p&gt;

&lt;hr&gt;
&lt;h3&gt;&lt;strong&gt;Overview of changes and backfill&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Default value alignment: &lt;/strong&gt;When you create new Demand Gen campaigns without explicitly specifying &lt;code&gt;target_content_network&lt;/code&gt;, the default value changes from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;. Because ad group-level channel controls default to turning off Display targeting, the overall default targeting behavior remains unchanged (targeting owned and operated inventory unless explicitly opted in).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Existing campaign backfill:&lt;/strong&gt; Existing campaigns currently set to &lt;code&gt;target_content_network = false&lt;/code&gt; will be updated to &lt;code&gt;target_content_network = true&lt;/code&gt; alongside automatic transformations applied to their ad groups: &lt;ul&gt;

 &lt;li&gt;&lt;strong&gt;No-op ad groups: &lt;/strong&gt;Where Display is opted out at both campaign and ad group levels, &lt;code&gt;target_content_network&lt;/code&gt; is updated to &lt;code&gt;true&lt;/code&gt; with no ad group changes required.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Channel strategy pushdown: &lt;/strong&gt;Ad groups using the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/DemandGenChannelStrategyEnum.DemandGenChannelStrategy#all_channels&quot;&gt;ALL_CHANNELS&lt;/a&gt;&lt;/code&gt; strategy will be updated to &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/DemandGenChannelStrategyEnum.DemandGenChannelStrategy#all_owned_and_operated_channels&quot;&gt;ALL_OWNED_AND_OPERATED_CHANNELS&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Channel control pushdown: &lt;/strong&gt;Ad groups targeting Display alongside other channels will have their &lt;code&gt;selected_channels.display&lt;/code&gt; field set explicitly to &lt;code&gt;false&lt;/code&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Unservable corner case: &lt;/strong&gt;Ad groups that only target Display (while Display was opted out at campaign level) will have their status updated to &lt;code&gt;PAUSED&lt;/code&gt;, preserving their non-serving status while leaving channel controls intact. This is because Demand Gen ad groups must target at least one channel, so turning off Display would leave them with no active channels, which is an invalid configuration.&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt; &lt;/ul&gt;

&lt;p&gt;
None of the existing campaigns being backfilled will change their serving behavior, as the impacted campaigns are already opted out of Display.
&lt;/p&gt;

&lt;hr&gt;

&lt;h3&gt;&lt;strong&gt;How to manage Display targeting in the Google Ads API&lt;/strong&gt;&lt;/h3&gt;


&lt;p&gt;
Display targeting is now controlled at the ad group level using &lt;code&gt;channel_controls.selected_channels&lt;/code&gt;. The following example shows how to configure or opt out of Display targeting during ad group creation or updates in the Google Ads API.
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Example: Manage Ad Group Channel Controls&lt;/strong&gt;&lt;/h4&gt;





&lt;pre class=&quot;prettyprint&quot;&gt;{
  &quot;adGroup&quot;: {
    &quot;resourceName&quot;: &quot;customers/1234567890/adGroups/9876543210&quot;,
    &quot;status&quot;: &quot;ENABLED&quot;,
    &quot;demandGenAdGroupSettings&quot;: {
      &quot;channelControls&quot;: {
        &quot;selectedChannels&quot;: {
          &quot;youtubeInStream&quot;: false,
          &quot;youtubeInFeed&quot;: false,
          &quot;youtubeShorts&quot;: true,
          &quot;discover&quot;: false,
          &quot;gmail&quot;: false,
          &quot;display&quot;: false
        }
      }
    }
  }
}
&lt;/pre&gt;


&lt;p&gt;
You can also set the &lt;code&gt;channel_strategy&lt;/code&gt; field to &lt;code&gt;ALL_OWNED_AND_OPERATED_CHANNELS&lt;/code&gt; as a high-level way to opt out of Display without having to explicitly enumerate every individual channel.
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Recommended actions&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Review campaign creation payloads: &lt;/strong&gt;Verify API integrations and automated workflows for campaign creation. Update your application to rely on ad group channel controls (&lt;code&gt;channel_controls.selected_channels.display&lt;/code&gt;) rather than campaign-level &lt;code&gt;network_settings.target_content_network&lt;/code&gt; flags.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit existing campaigns: &lt;/strong&gt;Check ad group channel configurations for Demand Gen campaigns to confirm that ad group channel selections accurately reflect intended channel reach:&lt;/li&gt;&lt;/ul&gt;




&lt;pre class=&quot;prettyprint&quot;&gt;SELECT
  campaign.id,
  campaign.advertising_channel_type,
  campaign.network_settings.target_content_network,
  ad_group.id,
  ad_group.status,
  ad_group.demand_gen_ad_group_settings.channel_controls.channel_config,
  ad_group.demand_gen_ad_group_settings.channel_controls.channel_strategy,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.youtube_in_feed,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.youtube_in_stream,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.youtube_shorts,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.discover,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.display,
  ad_group.demand_gen_ad_group_settings.channel_controls.selected_channels.gmail
FROM ad_group
WHERE
  campaign.advertising_channel_type = &#39;DEMAND_GEN&#39;

&lt;/pre&gt;

&lt;p&gt;
If you have any questions or want to discuss this change, please reach out to us on our &lt;a href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/11/display-targeting-changes-in-demand-gen' title='Display targeting changes in Demand Gen campaigns starting the week of December 1, 2026'/>
    <author><name>Mattia Tommasone, Google Ads API team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/11/prepare-for-cocoapods-read-only-mode</id>
    <published>2026-11-06T00:00:00Z</published>
    <updated>2026-11-06T00:00:00Z</updated>

    <title type='text'>Prepare for CocoaPods read-only mode: Migrate your iOS apps to Swift Package Manager</title>
    <content type='html'>&lt;p&gt;
On &lt;strong&gt;December 2, 2026&lt;/strong&gt;, the &lt;a href=&quot;https://blog.cocoapods.org/CocoaPods-Specs-Repo/&quot;&gt;CocoaPods Specs repository&lt;/a&gt; will permanently transition to read-only mode. As a result, we will no longer publish new versions of the Google Mobile Ads SDK or mediation adapters for iOS to CocoaPods after this date.
&lt;/p&gt;
&lt;h2&gt;What this means for your iOS apps&lt;/h2&gt;


&lt;p&gt;
If you currently use CocoaPods to install the Google Mobile Ads SDK (&lt;code&gt;&lt;a href=&quot;https://github.com/CocoaPods/Specs/tree/master/Specs/5/9/a/Google-Mobile-Ads-SDK&quot;&gt;Google-Mobile-Ads-SDK&lt;/a&gt;&lt;/code&gt;) or User Messaging Platform SDK (&lt;code&gt;&lt;a href=&quot;https://github.com/CocoaPods/Specs/tree/master/Specs/7/e/f/GoogleUserMessagingPlatform&quot;&gt;GoogleUserMessagingPlatform&lt;/a&gt;&lt;/code&gt;), keep the following in mind:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Existing builds are not affected:&lt;/strong&gt; All previously published versions of the Google Mobile Ads SDK and mediation adapters on CocoaPods will remain available in the read-only specs repository.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No future updates on CocoaPods:&lt;/strong&gt; After December 2, 2026, new SDK releases, features, and bug fixes will only be distributed through Swift Package Manager and manual downloads.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Migrate to Swift Package Manager&lt;/h2&gt;


&lt;p&gt;
To keep receiving the latest Google Mobile Ads SDK updates, we recommend migrating your iOS projects to Swift Package Manager (SPM). SPM is Apple&#39;s first-party dependency manager built directly into Xcode.
&lt;/p&gt;
&lt;p&gt;
To switch your project to Swift Package Manager, follow these steps:
&lt;/p&gt;&lt;ol&gt;

  &lt;li&gt;If you are removing CocoaPods from your project completely, run &lt;code&gt;pod deintegrate&lt;/code&gt; in your project directory.&lt;/li&gt;
&lt;li&gt;In Xcode, navigate to &lt;strong&gt;File &gt; Add Package Dependencies...&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the search bar, enter the Google Mobile Ads Swift Package GitHub repository URL: &lt;a href=&quot;https://github.com/googleads/swift-package-manager-google-mobile-ads.git&quot;&gt;https://github.com/googleads/swift-package-manager-google-mobile-ads.git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Select the version rule you want to use. We recommend &lt;strong&gt;Up to Next Major Version&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add the package to your target.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;
For full setup instructions, including how to download the frameworks manually, see the Get Started guides for &lt;a href=&quot;//developers.google.com/admob/ios/quick-start#spm&quot;&gt;AdMob&lt;/a&gt; and &lt;a href=&quot;//developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start#spm&quot;&gt;Ad Manager&lt;/a&gt;. If you use mediation, you can migrate your adapters the same way. Google Mobile Ads mediation adapters &lt;a href=&quot;//developers.google.com/ads/blog/posts/2025/09/google-mobile-ads-mediation-adapters&quot;&gt;support&lt;/a&gt; Swift Package Manager, and you can find each adapter&#39;s package URL in our &lt;a href=&quot;//developers.google.com/admob/ios/choose-networks#integrate_open-source_and_versioned_adapters&quot;&gt;mediation documentation&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/11/prepare-for-cocoapods-read-only-mode' title='Prepare for CocoaPods read-only mode: Migrate your iOS apps to Swift Package Manager'/>
    <author><name>Justin Malandruccolo, Mobile Ads Developer Relations</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/11/data-manager-api-now-supports-google</id>
    <published>2026-11-04T00:00:00Z</published>
    <updated>2026-11-04T00:00:00Z</updated>

    <title type='text'>Data Manager API now supports Google Ads call conversions and row-level diagnostics</title>
    <content type='html'>&lt;p&gt;
  The
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-changelog#2026-11-04_v19&quot;&gt;latest release&lt;/a&gt;
  of the Data Manager API adds support for Google Ads call conversions. It also
  adds row-level details to diagnostics to help you find and fix the exact
  records that had problems during processing.
&lt;/p&gt;
&lt;h2&gt;Send call conversions to Google Ads&lt;/h2&gt;

&lt;p&gt;
  You can now use the Data Manager API to
  &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/google-ads/call&quot;&gt;send call conversions to Google Ads&lt;/a&gt;. Call conversions track when your ads lead to phone calls and when those
  calls lead to valuable customer actions.
&lt;/p&gt;
&lt;p&gt;
  To send a call conversion, set the new
  &lt;code&gt;&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#callinfo&quot;&gt;call_info&lt;/a&gt;&lt;/code&gt;
  field on the event. Its &lt;code&gt;start_timestamp&lt;/code&gt; holds the time the phone
  call started. Identify the caller with a hashed phone number in
  &lt;code&gt;&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#useridentifier&quot;&gt;user_data&lt;/a&gt;&lt;/code&gt;.
&lt;/p&gt;

&lt;h2&gt;Row-level errors and warnings in diagnostics&lt;/h2&gt;

&lt;p&gt;
  A successful ingestion request doesn&#39;t guarantee that every record was
  processed. The Data Manager API now tells you which records had problems
  during processing. When you
  &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/diagnostics?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-diagnostics-guide&quot;&gt;check request status and diagnostics&lt;/a&gt;
  for a request, each
  &lt;code&gt;&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#errorcount&quot;&gt;ErrorCount&lt;/a&gt;&lt;/code&gt;
  and
  &lt;code&gt;&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#warningcount&quot;&gt;WarningCount&lt;/a&gt;&lt;/code&gt;
  now includes a &lt;code&gt;record_indices&lt;/code&gt; field. This field lists the 0-based
  positions of the affected records in your original request.
&lt;/p&gt;

&lt;p&gt;
  For example, a &lt;code&gt;record_indices&lt;/code&gt; value of &lt;code&gt;[0, 3]&lt;/code&gt; on an
  &lt;code&gt;ErrorCount&lt;/code&gt; with reason
  &lt;code&gt;PROCESSING_ERROR_REASON_CLICK_NOT_FOUND&lt;/code&gt; means the first and
  fourth events in your request failed for that reason. Use these indexes with
  the error reason to correct the failed records and resend them. Records with
  warnings weren&#39;t rejected, but some of their data was ignored, so fix the
  cause of the warning in future requests.
&lt;/p&gt;
&lt;h2&gt;Send lead IDs with your conversions&lt;/h2&gt;

&lt;p&gt;
  Use the new
  &lt;code&gt;&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#adidentifiers&quot;&gt;lead_id&lt;/a&gt;&lt;/code&gt;
  field in &lt;code&gt;ad_identifiers&lt;/code&gt; to send the Google-generated ID that&#39;s
  issued when a user submits a lead form. You can include
  &lt;code&gt;lead_id&lt;/code&gt; and the existing &lt;code&gt;match_id&lt;/code&gt; field as event
  identifiers for offline and multi-source events sent to Google Ads,
  Floodlight, and Google Analytics destinations.
&lt;/p&gt;

&lt;p&gt;
  Attribution using &lt;code&gt;lead_id&lt;/code&gt; and &lt;code&gt;match_id&lt;/code&gt; isn&#39;t
  available yet. Until it is, include other identifiers to ensure events are
  attributed.
&lt;/p&gt;
&lt;h2&gt;Get started&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    Start sending call conversions:
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/google-ads/call/send-events?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-sendcall-guide&quot;&gt;Send call conversions&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/google-ads/call/upgrade?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-callupgrade-guide&quot;&gt;Upgrade call conversions from the Google Ads API&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    See
    &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/diagnostics?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-recordindices-guide#record_indices&quot;&gt;Check affected records&lt;/a&gt;
    in the diagnostics guide to learn how to use
    &lt;code&gt;record_indices&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Review the
    &lt;a href=&quot;//developers.google.com/data-manager/api/reference?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-changelog#2026-11-04_v19&quot;&gt;release notes&lt;/a&gt;
    for the full list of changes.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;strong&gt;Building with AI coding tools?&lt;/strong&gt; Explore the
  &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/quickstart/agent-skills?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-agentskills-guide&quot;&gt;Data Manager API agent skills&lt;/a&gt;
  to get more accurate, efficient guidance directly in your AI-assisted coding
  environment.
&lt;/p&gt;
&lt;p&gt;
  If you have any questions or want to discuss this post, reach out to us on our
  &lt;a href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;Google Advertising and Measurement Community Discord server&lt;/a&gt;. You can also contact us through the
  &lt;a href=&quot;//developers.google.com/data-manager/api/support/contact?utm_campaign=adr-dm-api-r8&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=contact-support&quot;&gt;support page&lt;/a&gt;
  if you have an issue or need help with the API.
&lt;/p&gt;
&lt;p&gt;
  If you&#39;re interested in becoming a data partner, please fill out the
  &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScFEkLVqElsjYJ21h7z0mSUk8Tj1M3TEMwouFPQb7qyM-oI5w/viewform?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r8&amp;utm_content=contact-partner-interest-form&quot;&gt;Partner Interest Form&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/11/data-manager-api-now-supports-google' title='Data Manager API now supports Google Ads call conversions and row-level diagnostics'/>
    <author><name>Lindsey Volta, on behalf of the Data Manager API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/11/upcoming-changes-to-multi-party</id>
    <published>2026-11-04T00:00:00Z</published>
    <updated>2026-11-04T00:00:00Z</updated>

    <title type='text'>Upcoming changes to multi-party approvals in the Google Ads API</title>
    <content type='html'>&lt;p&gt;
Earlier this year, the &lt;a href=&quot;//developers.google.com/google-ads/api?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-guide&quot;&gt;Google Ads API&lt;/a&gt; started &lt;a href=&quot;//developers.google.com/ads/blog/posts/2026/06/multi-party-approvals-in-google-ads-api&quot;&gt;requiring multi-party approvals&lt;/a&gt; (MPA) when performing sensitive API actions. Starting the week of &lt;strong&gt;December 7, 2026&lt;/strong&gt;, we are introducing additional changes to improve the developer experience for multi-party approvals.
&lt;/p&gt;
&lt;h3&gt;What&#39;s changing?&lt;/h3&gt;


&lt;p&gt;
&lt;strong&gt;Deferred access invitation creation:&lt;/strong&gt; If a multi-party approval is required, the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/CustomerUserAccessInvitationService/MutateCustomerUserAccessInvitation?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs&quot;&gt;CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation&lt;/a&gt;&lt;/code&gt; method will defer the creation of the access invitation resource until the multi-party approval request is approved. The &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/MutateCustomerUserAccessInvitationResult?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#resource_name&quot;&gt;resource_name&lt;/a&gt;&lt;/code&gt; field is not populated in such cases. Once the pending MPA request is &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/MultiPartyAuthReviewStatusEnum.MultiPartyAuthReviewStatus?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#approved&quot;&gt;approved&lt;/a&gt;, the access invitation resource is available from the &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/ResolveMultiPartyAuthReviewResult?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#customer_user_access_invitation&quot;&gt;review results&lt;/a&gt;. Currently, this method creates the invitation and returns the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/MutateCustomerUserAccessInvitationResult?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#resource_name&quot;&gt;resource_name&lt;/a&gt;&lt;/code&gt; of the invitation, but doesn&#39;t perform additional actions like sending an invitation email until the associated MPA request is approved.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New error code for stale requests:&lt;/strong&gt; We will start returning a new &lt;code&gt;MultiPartyAuthReviewError.STALE_MULTI_PARTY_AUTH_REQUEST&lt;/code&gt; error code in the &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/ResolveMultiPartyAuthReviewResultOrError?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#partial_failure_error&quot;&gt;partial failure field&lt;/a&gt; when a pending MPA request is no longer valid because the target resource was modified or deleted after the review was created. This error code will be introduced in the upcoming v26.2 release. Older API versions (v23 through v25) will return a &lt;code&gt;MultiPartyAuthReviewError.UNKNOWN&lt;/code&gt; error, and the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/ErrorDetails?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#unpublished_error_code&quot;&gt;unpublished_error_code&lt;/a&gt;&lt;/code&gt; field in &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsError?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#details&quot;&gt;GoogleAdsError.details&lt;/a&gt;&lt;/code&gt; will be set to &lt;code&gt;MultiPartyAuthReviewError.STALE_MULTI_PARTY_AUTH_REQUEST&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Increased limits for MPA reviews:&lt;/strong&gt; You can &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/ResolveMultiPartyAuthReviewOperation?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs#new_status&quot;&gt;resolve&lt;/a&gt; up to 100 pending MPA reviews in a single call to the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/MultiPartyAuthReviewService/ResolveMultiPartyAuthReview?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-refdocs&quot;&gt;MultiPartyAuthReviewService.ResolveMultiPartyAuthReview&lt;/a&gt;&lt;/code&gt; method. Currently, this method is limited to one review per API call.
&lt;/p&gt;
&lt;h3&gt;Action required&lt;/h3&gt;

&lt;p&gt;
If you use multi-party approvals, review and update your code to reflect the new API behavior before &lt;strong&gt;December 7, 2026&lt;/strong&gt;. If you are using v26 of the Google Ads API, download the latest &lt;a href=&quot;//developers.google.com/google-ads/api/docs/client-libs?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-clientlibs&quot;&gt;client libraries&lt;/a&gt; after &lt;a href=&quot;//developers.google.com/google-ads/api/docs/sunset-dates?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-guide#timetable&quot;&gt;v26.2 is released&lt;/a&gt; to get support for the new &lt;code&gt;STALE_MULTI_PARTY_AUTH_REQUEST&lt;/code&gt; error code. Refer to our &lt;a href=&quot;//developers.google.com/google-ads/api/docs/oauth/multi-party-approvals?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-mpa-changes&amp;utm_content=learnmore-guide&quot;&gt;technical guides&lt;/a&gt; to learn more about multi-party approvals. For technical support issues, reach out to &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support&lt;/a&gt;. If you have any questions or want to discuss this post, reach out to us on our &lt;a href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;Google Advertising and Measurement Community Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/11/upcoming-changes-to-multi-party' title='Upcoming changes to multi-party approvals in the Google Ads API'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/10/announcing-beta-launch-of-display-video</id>
    <published>2026-10-22T00:00:00Z</published>
    <updated>2026-10-22T00:00:00Z</updated>

    <title type='text'>Announcing beta launch of Display &amp; Video 360 API v5</title>
    <content type='html'>&lt;p&gt;
We&#39;re pleased to announce that &lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v5?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-refdocs&quot;&gt;Display &amp; Video 360 API v5&lt;/a&gt; is available in public beta starting today.
&lt;/p&gt;
&lt;p&gt;
Here is a subset of changes introduced in v5:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;Full management of advertiser-level YouTube video and channel exclusion targeting.&lt;/li&gt;
&lt;li&gt;Support for &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/displayvideo/answer/12488167?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-hc&quot;&gt;Digital Out of Home&lt;/a&gt; &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v5/advertisers.insertionOrders?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-refdocs#InsertionOrder&quot;&gt;InsertionOrder&lt;/a&gt;&lt;/code&gt; resources.&lt;/li&gt;
&lt;li&gt;Updated Inventory Source retrieval and targeting.&lt;/li&gt;
&lt;li&gt;Refactored audience targeting for Demand Gen and YouTube &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-refdocs#AdGroup&quot;&gt;AdGroup&lt;/a&gt;&lt;/code&gt; resources.&lt;/li&gt;
&lt;li&gt;Removal of Customer Match audience management features in favor of &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/audiences/display-video/customer-match/upgrade?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-guide&quot;&gt;upgrading to use Data Manager API&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
More detailed information about this release can be found in our &lt;a href=&quot;//developers.google.com/display-video/api/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-refdocs#october_22_2026&quot;&gt;release notes&lt;/a&gt;. Follow the steps in our &lt;a href=&quot;//developers.google.com/display-video/api/v5-migration-guide?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-guide&quot;&gt;migration guide&lt;/a&gt; to migrate from v4 to v5. Be aware that breaking changes may be made to v5 while in beta, and any such changes will be listed in the &lt;a href=&quot;//developers.google.com/display-video/api/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-refdocs&quot;&gt;Display &amp; Video 360 API release notes&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Before using new features, make sure to update your &lt;a href=&quot;//developers.google.com/display-video/api/samples-libraries?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-v5-beta-launch&amp;utm_content=learnmore-guide&quot;&gt;client library&lt;/a&gt; to the latest version.
&lt;/p&gt;
&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/10/announcing-beta-launch-of-display-video' title='Announcing beta launch of Display &amp; Video 360 API v5'/>
    <author><name>Trevor Mulchay, Display &amp; Video 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/10/upcoming-changes-to-image-extraction-in</id>
    <published>2026-10-21T00:00:00Z</published>
    <updated>2026-10-21T00:00:00Z</updated>

    <title type='text'>Upcoming changes to image extraction in Performance Max campaigns starting December 4, 2026</title>
    <content type='html'>&lt;p&gt;
Starting &lt;strong&gt;December 4, 2026&lt;/strong&gt;, image extraction (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationTypeEnum.AssetAutomationType?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-image-extraction#generate_image_extraction&quot;&gt;GENERATE_IMAGE_EXTRACTION&lt;/a&gt;&lt;/code&gt;) will be &lt;strong&gt;enabled by default (&lt;code&gt;OPTED_IN&lt;/code&gt;)&lt;/strong&gt; &lt;strong&gt;for newly created&lt;/strong&gt; &lt;strong&gt;Performance Max&lt;/strong&gt; campaigns across Google Ads interfaces, including the &lt;a href=&quot;//developers.google.com/google-ads/api?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-gaa&quot;&gt;Google Ads API&lt;/a&gt;, Google Ads UI, and Google Ads Editor. Crucially, this new campaign-level default applies &lt;strong&gt;even if Dynamic Image Extensions are disabled at the account level&lt;/strong&gt; (&lt;code&gt;isImageExtractionAdExtensionEnabled&lt;/code&gt;). Previously, campaigns left unset inherited their status from this account-level setting.
&lt;/p&gt;
&lt;p&gt;
With image extraction, Google AI scans provided landing pages for high-resolution images to enrich creative assets and expand reach across Search, YouTube, Display, Discover, Gmail, and Maps. Existing Performance Max campaigns will retain their current configurations, but developers relying on account-level controls should explicitly set &lt;code&gt;OPTED_OUT&lt;/code&gt; on new campaigns if they do not want image extraction enabled.
&lt;/p&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to manage image extraction in the Google Ads API&lt;/strong&gt;&lt;/h3&gt;


&lt;p&gt;
Image extraction is managed at the campaign level through the &lt;code&gt;asset_automation_settings&lt;/code&gt; field on the&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/Campaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-campaign&quot;&gt; Campaign&lt;/a&gt; resource:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Automation Type:&lt;/strong&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationTypeEnum.AssetAutomationType?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-image-extraction&quot;&gt; AssetAutomationType.GENERATE_IMAGE_EXTRACTION&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Status:&lt;/strong&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationStatusEnum.AssetAutomationStatus?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-opted-in&quot;&gt; AssetAutomationStatus.OPTED_IN&lt;/a&gt; or&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationStatusEnum.AssetAutomationStatus?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-pmax-image-extraction-dec2026&amp;utm_content=readmore-opted-out&quot;&gt; AssetAutomationStatus.OPTED_OUT&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;&lt;strong&gt;Example: Explicitly opting out during campaign creation&lt;/strong&gt;&lt;/h4&gt;


&lt;p&gt;
If your integration or clients prefer not to extract images from landing pages on new campaigns, you can explicitly set &lt;code&gt;GENERATE_IMAGE_EXTRACTION&lt;/code&gt; to &lt;code&gt;OPTED_OUT&lt;/code&gt; in your campaign mutate request. An example of how this would look using REST JSON is as follows:
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;{
  &quot;name&quot;: &quot;My Performance Max Campaign&quot;,
  &quot;advertisingChannelType&quot;: &quot;PERFORMANCE_MAX&quot;,
  &quot;status&quot;: &quot;PAUSED&quot;,
  &quot;assetAutomationSettings&quot;: [
    {
      &quot;assetAutomationType&quot;: &quot;GENERATE_IMAGE_EXTRACTION&quot;,
      &quot;assetAutomationStatus&quot;: &quot;OPTED_OUT&quot;
    }
  ]
}
&lt;/pre&gt;


&lt;p&gt;
To change the setting on an existing campaign, send a &lt;code&gt;CampaignOperation&lt;/code&gt; update targeting &lt;code&gt;campaign.asset_automation_settings&lt;/code&gt;. Note that &lt;code&gt;asset_automation_settings&lt;/code&gt; is a repeated field. When updating a campaign, providing new settings &lt;strong&gt;replaces the entire array&lt;/strong&gt; rather than merging with existing values. Be sure to retrieve and include all other desired &lt;code&gt;AssetAutomationSetting&lt;/code&gt; entries (such as &lt;code&gt;TEXT_ASSET_AUTOMATION&lt;/code&gt;) in your update request to avoid unintentionally clearing them.
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Example: Auditing existing campaigns&lt;/strong&gt;&lt;/h4&gt;


&lt;p&gt;
To check the current automation settings across your Performance Max campaigns, you can query &lt;code&gt;asset_automation_settings&lt;/code&gt; using Google Ads Query Language (GAQL):
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;SELECT
  campaign.id,
  campaign.name,
  campaign.asset_automation_settings
FROM campaign
WHERE campaign.advertising_channel_type = &#39;PERFORMANCE_MAX&#39;
&lt;/pre&gt;


&lt;p&gt;
If a campaign does not have an entry for &lt;code&gt;GENERATE_IMAGE_EXTRACTION&lt;/code&gt;, it is currently relying on the inherited account-level setting. You can check or toggle the account-wide Dynamic Image Extension setting directly in the Google Ads UI:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;Navigate to &lt;strong&gt;Campaigns &gt; Assets&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click the three-dot &lt;strong&gt;More&lt;/strong&gt; menu &gt; &lt;strong&gt;Account-level automated assets&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click the three-dot menu again &gt; &lt;strong&gt;Advanced settings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Check whether &lt;strong&gt;Dynamic images&lt;/strong&gt; is turned &lt;strong&gt;On&lt;/strong&gt; or &lt;strong&gt;Off&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Recommended actions&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Review New Campaign Creation Workflows:&lt;/strong&gt; &lt;ul&gt;

 &lt;li&gt;&lt;strong&gt;If you want image extraction enabled:&lt;/strong&gt; No action is needed. New Performance Max campaigns created after December 4, 2026 will automatically have image extraction enabled by default.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;If you prefer to opt out:&lt;/strong&gt; Update your campaign creation payloads before &lt;strong&gt;December 4, 2026&lt;/strong&gt; to explicitly include &lt;code&gt;GENERATE_IMAGE_EXTRACTION&lt;/code&gt; with &lt;code&gt;asset_automation_status = OPTED_OUT&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review Landing Page Media Rights:&lt;/strong&gt; &lt;ul&gt;

 &lt;li&gt;As with all automated asset features, confirm that you own all legal rights or permissions to the images published on your landing pages and allow Google to utilize them for commercial and advertising purposes.&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a target=&quot;_blank&quot; href=&quot;https://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/10/upcoming-changes-to-image-extraction-in' title='Upcoming changes to image extraction in Performance Max campaigns starting December 4, 2026'/>
    <author><name>Dora Sun - Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/10/announcing-v26-of-google-ads-api</id>
    <published>2026-10-14T00:00:00Z</published>
    <updated>2026-10-14T00:00:00Z</updated>

    <title type='text'>Announcing v26 of the Google Ads API</title>
    <content type='html'>&lt;p&gt;
  Today we are announcing the release of v26 of the Google Ads API. To use the
  new capabilities, you must upgrade your
  &lt;a href=&quot;//developers.google.com/google-ads/api/docs/client-libs?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-clientlibs&quot;&gt;client libraries&lt;/a&gt;
  and client code. We&#39;ve published all updated client libraries and code
  examples.
&lt;/p&gt;
&lt;p&gt;
  Come join us for a live walkthrough of this release in our
  &lt;a href=&quot;https://discord.gg/8jk8kaDh?event=1558145119318704218&quot;&gt;&quot;Google Ads API Release Highlights&quot; event on Discord&lt;/a&gt;
  or our
  &lt;a href=&quot;https://www.youtube.com/watch?v=x2zBr7XEYcU&quot;&gt;Ads Developers YouTube Live&lt;/a&gt;
  tomorrow (October 15 at 10:00 AM ET). We&#39;ll also record the walkthrough and
  post it on YouTube if you can&#39;t attend live.
&lt;/p&gt;
&lt;h2&gt;New features&lt;/h2&gt;

&lt;p&gt;Here are the highlights of what&#39;s new in v26:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Streamlined EU political advertising declarations:
      &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Campaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#contains_eu_political_advertising&quot;&gt;Campaign.contains_eu_political_advertising&lt;/a&gt;&lt;/code&gt;&lt;/strong&gt;
    is now optional for campaigns and Demand Gen ad groups with upgraded
    targeting that positively target only locations outside the European Union
    and contain no proximity or location group criteria. You can check whether a
    declaration is required using the new
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstant?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#require_eu_political_advertising_declaration&quot;&gt;require_eu_political_advertising_declaration&lt;/a&gt;&lt;/code&gt;
    field on
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstant?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;GeoTargetConstant&lt;/a&gt;&lt;/code&gt;,
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;CampaignCriterion&lt;/a&gt;&lt;/code&gt;, and
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;AdGroupCriterion&lt;/a&gt;&lt;/code&gt;.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Vertical-agnostic travel bid modifiers: &lt;/strong&gt;We&#39;ve renamed
    hotel-specific
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;AdGroupBidModifier&lt;/a&gt;&lt;/code&gt;
    criteria to apply consistently across travel verticals:
    &lt;code&gt;user_set_dates&lt;/code&gt; (replacing
    &lt;code&gt;hotel_date_selection_type&lt;/code&gt;),
    &lt;code&gt;advance_booking_window&lt;/code&gt; (replacing
    &lt;code&gt;hotel_advance_booking_window&lt;/code&gt;),
    &lt;code&gt;length_of_booking&lt;/code&gt; with &lt;code&gt;min_days&lt;/code&gt; and
    &lt;code&gt;max_days&lt;/code&gt; (replacing &lt;code&gt;hotel_length_of_stay&lt;/code&gt;),
    &lt;code&gt;start_day_of_week&lt;/code&gt; (replacing &lt;code&gt;hotel_check_in_day&lt;/code&gt;),
    and &lt;code&gt;start_date_range&lt;/code&gt; (replacing
    &lt;code&gt;hotel_check_in_date_range&lt;/code&gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Search Lift measurements: &lt;/strong&gt;We&#39;ve expanded lift measurement
    capabilities with support for Search Lift studies. You can now query the new
    read-only
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/SearchLiftKeywordBundle?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;SearchLiftKeywordBundle&lt;/a&gt;&lt;/code&gt;
    resource and segment by
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#search_lift_keyword_bundle&quot;&gt;segments.search_lift_keyword_bundle&lt;/a&gt;&lt;/code&gt;
    and
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#search_property&quot;&gt;segments.search_property&lt;/a&gt;&lt;/code&gt;. You can also analyze 15 new Search Lift metrics (including
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#relative_search_lift&quot;&gt;relative_search_lift&lt;/a&gt;&lt;/code&gt;,
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#normalized_incremental_searches&quot;&gt;normalized_incremental_searches&lt;/a&gt;&lt;/code&gt;, and
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#search_lift_impressions&quot;&gt;search_lift_impressions&lt;/a&gt;&lt;/code&gt;) alongside
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Campaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#lift_measurement_config&quot;&gt;Campaign.lift_measurement_config&lt;/a&gt;&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Local Services Performance Max campaign creation: &lt;/strong&gt;You can
    now create Google Local Services Performance Max campaigns with the API by
    setting
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Campaign.PmaxCampaignSettings?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#local_services_enabled&quot;&gt;PmaxCampaignSettings.local_services_enabled&lt;/a&gt;&lt;/code&gt;
    (which is now settable on creation and immutable afterwards) and providing
    the required &lt;code&gt;country_code&lt;/code&gt; and Google Business Profile
    &lt;code&gt;listing_id&lt;/code&gt; in
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesPmaxCampaignSettings?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;LocalServicesPmaxCampaignSettings&lt;/a&gt;&lt;strong&gt;. &lt;/strong&gt;&lt;/code&gt;We&#39;ve also added support for
    &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#campaign&quot;&gt;linking leads to campaigns&lt;/a&gt;,
    &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadTypeEnum.LeadType?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#coupon&quot;&gt;coupon lead type&lt;/a&gt;, and
    &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#message_lead&quot;&gt;message lead conversion category&lt;/a&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Unified enhanced conversions configuration: &lt;/strong&gt;We have added
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Customer?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#enablement_setting&quot;&gt;Customer.enablement_setting&lt;/a&gt;&lt;/code&gt;
    and
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Customer?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#effective_enablement_setting&quot;&gt;Customer.effective_enablement_setting&lt;/a&gt;&lt;/code&gt;
    to expose the unified enhanced conversions configuration for the account,
    replacing
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Customer?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#enhanced_conversions_for_leads_enabled&quot;&gt;Customer.enhanced_conversions_for_leads_enabled&lt;/a&gt;&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Shopping and Demand Gen enhancements: &lt;/strong&gt;We&#39;ve expanded
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/Campaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#listing_type&quot;&gt;Campaign.listing_type&lt;/a&gt;&lt;/code&gt;
    support to Shopping campaigns.
    &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/CurrencyConstant?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs&quot;&gt;CurrencyConstant&lt;/a&gt;&lt;/code&gt;
    now exposes the
    &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v26/CurrencyConstant?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-refdocs#demand_gen_info.minimum_budget_per_day_micros&quot;&gt;minimum budget per day&lt;/a&gt;
    for a Demand Gen campaign in a given currency.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Reminder: changes to release cadence&lt;/h2&gt;

&lt;p&gt;
  As
  &lt;a href=&quot;//developers.google.com/ads/blog/posts/2026/10/google-ads-api-release-and-sunset&quot;&gt;announced&lt;/a&gt;
  on October 12, 2026, Google Ads API is moving to two releases per month
  starting with v26. This faster cadence gives your automated agents and
  workflows earlier access to new Google Ads features. Our release blog posts
  and YouTube live events will move to twice a quarter, covering key updates
  across several releases at once. To follow individual releases, add the&lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-releasenotes&quot;&gt;
    Google Ads API release notes&lt;/a&gt;
  to your&lt;a href=&quot;//developers.google.com/profile/help/saved-pages&quot;&gt;
    saved pages&lt;/a&gt;
  to receive notifications whenever they change.
&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;

&lt;p&gt;
  If you use our client libraries, download the latest version of your client
  library to start using these features. Review the
  &lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v26-0&amp;utm_content=learnmore-releasenotes#v26-2026-10-14&quot;&gt;official release notes&lt;/a&gt;
  for a full list of changes. If you have any questions or want to discuss this
  post, reach out to us on our
  &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;Google Advertising and Measurement Community Discord server&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
  For technical support issues, reach out to the
  &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support channel&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/10/announcing-v26-of-google-ads-api' title='Announcing v26 of the Google Ads API'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/10/google-ads-api-release-and-sunset</id>
    <published>2026-10-12T00:00:00Z</published>
    <updated>2026-10-12T00:00:00Z</updated>

    <title type='text'>Google Ads API Release and Sunset Schedules for 2026-2027</title>
    <content type='html'>&lt;p&gt;
Last year, we shifted to a &lt;a href=&quot;//developers.google.com/ads/blog/posts/2025/09/more-frequent-releases-coming-for&quot;&gt;monthly release schedule&lt;/a&gt; for the Google Ads API to provide you faster API access to Ads features available in the &lt;a target=&quot;_blank&quot; href=&quot;https://ads.google.com&quot;&gt;Google Ads UI&lt;/a&gt;. As we enter a new agentic era where speed and agility are paramount, we are thrilled to accelerate our launch timelines even further - moving to two Google Ads API releases per month starting from version v26! This faster cadence gives your automated agents and workflows near-instant access to cutting-edge features, allowing you to stay ahead of the curve, reduce time-to-market, and innovate with unprecedented efficiency.
&lt;/p&gt;
&lt;p&gt;
We will still ship four major releases per year. All other releases will be minor releases that add only new, non-breaking features. Each major release will still be available for one year after the release. Sunset schedules are also unchanged, so you will not need to migrate more often. Each minor release sunsets together with its parent major version.
&lt;/p&gt;
&lt;p&gt;
Our release blog posts and YouTube live events will move to twice a quarter, covering key updates across several releases at once. To follow individual releases, add the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-2027&amp;utm_content=learnmore-releasenotes&quot;&gt;Google Ads API release notes&lt;/a&gt; to your &lt;a href=&quot;//developers.google.com/profile/help/saved-pages&quot;&gt;saved pages&lt;/a&gt; and you will be notified whenever they change.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Release schedule for 2026-2027&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The following table shows the tentative release schedule for the rest of 2026 and for 2027. These dates are estimates and may change. We may also add or remove releases, or switch a release between major and minor.
&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; width: 100%;border: 1px solid black&quot;&gt;
  &lt;tr&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Version&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Release type&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Projected launch *&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Projected sunset *&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;v26&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;Major&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;October 2026
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v26.1&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;October 2026
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v26.2&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2026
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v26.3 **&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;December 2026
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;v27&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;Major&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;January 2027
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;February 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v27.1&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v27.2&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v27.3&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;March 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v27.4 ***&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;March 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;v28&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;Major&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;April 2027
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v28.1&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;April 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v28.2&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v28.3&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v28.4&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;June 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v28.5&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;June 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;v29&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;Major&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;July 2027
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v29.1&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;July 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v29.2&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v29.3&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v29.4&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;September 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v29.5&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;September 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;v30&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;&lt;strong&gt;Major&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;October 2027
   &lt;/td&gt;
   &lt;td style=&quot;background-color: #9abbf7;border: 1px solid black&quot;&gt;November 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v30.1&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;October 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v30.2&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2028
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v30.3 **&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;Minor
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;December 2027
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2028
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;


&lt;p&gt;
* Estimated and subject to change.
&lt;/p&gt;
&lt;p&gt;
** We may skip this release because it falls during the holiday season.
&lt;/p&gt;
&lt;p&gt;
*** v27 has fewer minor version releases because it falls during the holiday season (January)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Sunset schedule for 2027&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The following is the tentative sunset schedule for 2027. As with the release schedule, these dates are estimates and may change. The minor versions (e.g., v23.x) sunset with their parent major version (e.g. v23).
&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; width: 100%;border: 1px solid black&quot;&gt;
  &lt;tr&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Version&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;color:white;background-color: #3c78d8;border: 1px solid black&quot;&gt;&lt;strong&gt;Projected sunset*&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v23&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;February 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v24&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;May 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v25&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;August 2027
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;&lt;strong&gt;v26&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td style=&quot;border: 1px solid black&quot;&gt;November 2027
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;


&lt;p&gt;
* Estimated and subject to change.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Learn more and get help&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As always, you can find the details of individual releases at the following pages.
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-2027&amp;utm_content=learnmore-releasenotes&quot;&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/sunset-dates?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-2027&amp;utm_content=learnmore-sunsetdates&quot;&gt;Sunset dates&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
If you have any questions or want to discuss this post, join the conversation on our&lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt; &quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For technical support issues, please reach out to the &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support channel&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/10/google-ads-api-release-and-sunset' title='Google Ads API Release and Sunset Schedules for 2026-2027'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/10/launching-structured-data-files-v11</id>
    <published>2026-10-08T00:00:00Z</published>
    <updated>2026-10-08T00:00:00Z</updated>

    <title type='text'>Launching Structured Data Files v11</title>
    <content type='html'>&lt;p&gt;
Today we&#39;re announcing the general availability of &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/format?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v11-launch-announcement&amp;utm_content=learnmore-refdocs#v11&quot;&gt;Structured Data Files v11&lt;/a&gt;. All users can now use v11 when downloading and uploading SDFs in the Display &amp; Video 360 interface.
&lt;/p&gt;
&lt;p&gt;
SDF v11 includes the following changes:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;Expanded the availability of &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/displayvideo/answer/15612398?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v11-launch-announcement&amp;utm_content=learnmore-hc&quot;&gt;Lookalike audience&lt;/a&gt; inclusion and exclusion targeting to all ad groups except for those under YouTube Ad Sequence line items.&lt;/li&gt;
&lt;li&gt;Added support for Business Chain proximity targeting to the line item file format.&lt;/li&gt;
&lt;li&gt;Updated the format of four existing YouTube third-party vendor columns in the line item file format to incorporate reporting IDs and support multiple vendor assignments. The related YouTube third-party vendor reporting ID columns, now redundant, have been removed.&lt;/li&gt;
&lt;li&gt;Added new columns, column options, and column restrictions to support YouTube Instant Deal line items, their ad groups, and their ads. &lt;em&gt;Support for YouTube Instant Deals is in beta and only available to allowlisted partners. YouTube Instant Deal line items and the ad groups and ads under them will not be included in any downloaded files and can only be uploaded through the YouTube Instant Deal creation workflow of the Display &amp; Video 360 interface.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
See the &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/rel-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v11-launch-announcement&amp;utm_content=learnmore-refdocs#version_11&quot;&gt;release notes&lt;/a&gt; for the details on the changes in v11. Please be aware that if you are using a version earlier than v10, you are using a deprecated version that will sunset in January 2027. Follow the instructions in our &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/v11-migration-guide?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v11-launch-announcement&amp;utm_content=learnmore-guide&quot;&gt;migration guide&lt;/a&gt; to migrate to v11 from any available version.
&lt;/p&gt;
&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/10/launching-structured-data-files-v11' title='Launching Structured Data Files v11'/>
    <author><name>Trevor Mulchay, Display &amp; Video 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/09/announcing-v252-of-google-ads-api</id>
    <published>2026-09-23T00:00:00Z</published>
    <updated>2026-09-23T00:00:00Z</updated>

    <title type='text'>Announcing v25.2 of the Google Ads API</title>
    <content type='html'>&lt;p&gt;
Today we are announcing the release of v25.2 of the Google Ads API. To use the new capabilities, you must upgrade your &lt;a href=&quot;//developers.google.com/google-ads/api/docs/client-libs?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-clientlibs&quot;&gt;client libraries&lt;/a&gt; and client code. All the updated client libraries and code examples have been published.
&lt;/p&gt;
&lt;p&gt;
Come join us for a live walkthrough of this release in our &lt;a href=&quot;https://discord.gg/teFpK7GwH?event=1547900086065823833&quot;&gt;Google Ads API Release Highlights event on Discord&lt;/a&gt; or our &lt;a href=&quot;https://www.youtube.com/watch?v=vultEWFPISo&quot;&gt;Ads Developers YouTube Live&lt;/a&gt; tomorrow (September 24th at 10am ET). This will also be recorded and posted on YouTube for those who can&#39;t make the live events. If you have any questions or want to discuss this post, reach out to us in the &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;#ads-api channel&lt;/a&gt; on Discord.
&lt;/p&gt;
&lt;h2&gt;New Features&lt;/h2&gt;

&lt;p&gt;
Here are the highlights of what&#39;s new in v25.2:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Competitive benchmarks percentile metrics&lt;/strong&gt;: &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/BenchmarksService/GenerateBenchmarksMetrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;BenchmarksService.GenerateBenchmarksMetrics&lt;/a&gt;&lt;/code&gt; now surfaces metrics representing your competitive standing among other advertisers in percentile tier format using &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/PercentileMetrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;PercentileMetrics&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/BenchmarksCustomerPercentileTierEnum.BenchmarksCustomerPercentileTier?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;BenchmarksCustomerPercentileTier&lt;/a&gt;&lt;/code&gt;. You can request this data by adding &lt;code&gt;PERCENTILE_DATA&lt;/code&gt; to &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/GenerateBenchmarksMetricsRequest?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#supplemental_data[]&quot;&gt;supplemental_data&lt;/a&gt;&lt;/code&gt;, setting &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/GenerateBenchmarksMetricsRequest?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#benchmarks_source&quot;&gt;benchmarks_source&lt;/a&gt;&lt;/code&gt; to &lt;code&gt;ALL_ADVERTISERS&lt;/code&gt; and specifying the &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/GenerateBenchmarksMetricsRequest?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#category_filter&quot;&gt;category_filter&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generate Performance Max drafts from Smart campaigns&lt;/strong&gt;: The new &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/SmartCampaignSettingService/GeneratePMaxDraftCampaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;SmartCampaignSettingService.GeneratePMaxDraftCampaign&lt;/a&gt;&lt;/code&gt; method allows you to programmatically generate a Performance Max draft campaign directly from an existing Smart campaign, simplifying your campaign upgrade workflows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asset group URL options&lt;/strong&gt;: You can now configure tracking templates (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AssetGroup?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#tracking_url_template&quot;&gt;tracking_url_template&lt;/a&gt;&lt;/code&gt;), custom parameters (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AssetGroup?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#url_custom_parameters[]&quot;&gt;url_custom_parameters&lt;/a&gt;&lt;/code&gt;), and final URL suffixes (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AssetGroup?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#final_url_suffix&quot;&gt;final_url_suffix&lt;/a&gt;&lt;/code&gt;) directly at the asset group level on &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AssetGroup?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;AssetGroup&lt;/a&gt;&lt;/code&gt; for Performance Max campaigns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Creator insights by YouTube channel handles&lt;/strong&gt;: &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/ContentCreatorInsightsService/GenerateCreatorInsights?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs&quot;&gt;ContentCreatorInsightsService.GenerateCreatorInsights&lt;/a&gt;&lt;/code&gt; now supports searching directly by &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/GenerateCreatorInsightsRequest.YouTubeChannels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#youtube_channel_handles[]&quot;&gt;YouTube channel handles&lt;/a&gt; in addition to channel IDs, streamlining your creator discovery process.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vertical ads itinerary dimensions and price competitiveness&lt;/strong&gt;: For hotel and travel advertisers, we&#39;ve added new itinerary dimension segments (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#advance_booking_window&quot;&gt;advance_booking_window&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#length_of_booking&quot;&gt;length_of_booking&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#start_date&quot;&gt;start_date&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#start_day_of_week&quot;&gt;start_day_of_week&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#user_set_dates&quot;&gt;user_set_dates&lt;/a&gt;&lt;/code&gt;) along with new vertical ads metrics metrics and segments such as &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#vertical_ads_price_difference_percentage&quot;&gt;vertical_ads_price_difference_percentage&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#vertical_ads_price_tier&quot;&gt;vertical_ads_price_tier&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#vertical_ads_potential_impressions&quot;&gt;vertical_ads_potential_impressions&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search bid adjustment recommendations&lt;/strong&gt;: New recommendations (&lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Recommendation?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#raise_target_cpa_performance_bid_too_low_recommendation&quot;&gt;raise_target_cpa_performance_bid_too_low_recommendation&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Recommendation?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-refdocs#lower_target_roas_performance_bid_too_low_recommendation&quot;&gt;lower_target_roas_performance_bid_too_low_recommendation&lt;/a&gt;&lt;/code&gt;) notify you when Target CPA or Target ROAS bids are too low for Search campaigns to enter auctions.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Getting started&lt;/h2&gt;


&lt;p&gt;
Google Ads API v25.2 is a drop-in upgrade for v25. If you use our client libraries, download the latest version of your client library to start using these features. Review the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-2&amp;utm_content=learnmore-releasenotes#v25-2-2026-09-17&quot;&gt;official release notes&lt;/a&gt; for a full list of changes. If you have any questions or want to discuss this post, reach out to us on our &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;Google Advertising and Measurement Community Discord server&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For technical support issues, please reach out to the &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support channel&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/09/announcing-v252-of-google-ads-api' title='Announcing v25.2 of the Google Ads API'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/09/new-onboarding-experience-for-google-ads-api</id>
    <published>2026-09-10T00:00:00Z</published>
    <updated>2026-09-10T00:00:00Z</updated>

    <title type='text'>A new onboarding experience for Google Ads API developers</title>
    <content type='html'>&lt;p&gt;
To improve the developer onboarding and usage experience, we built a new homepage for the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/start?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;Google Ads API&lt;/a&gt; in the &lt;a href=&quot;https://console.cloud.google.com/&quot;&gt;Google Cloud Console&lt;/a&gt;. Basic Access applications are now automated for developers who have completed &lt;a href=&quot;//developers.google.com/identity/protocols/oauth2/production-readiness/brand-verification&quot;&gt;brand verification&lt;/a&gt;. This blog post covers several related changes that will start rolling out today. Developers should review the &lt;b&gt;action required&lt;/b&gt; section of this post to ensure a smooth transition.
&lt;/p&gt;
&lt;h3&gt;Changes to API access management&lt;/h3&gt;


&lt;p&gt;
We are updating how you sign up for and manage &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/access-levels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;Google Ads API access&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New onboarding experience for Google Ads API: &lt;/strong&gt;You can now &lt;a href=&quot;//developers.google.com/google-ads/api/docs/get-started/make-first-call?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs#console-project&quot;&gt;sign up for access to the Google Ads API&lt;/a&gt; directly in the Google Cloud Console without requiring a Google Ads manager account. We are sunsetting all the new signup and API access management functionality in the &lt;a href=&quot;https://ads.google.com/aw/apicenter&quot;&gt;API Center page&lt;/a&gt; in manager accounts and transitioning to the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt; in Google Cloud Console. You can still access the &lt;a href=&quot;https://ads.google.com/aw/apicenter&quot;&gt;API Center page&lt;/a&gt; to refer to your old developer details. This page will completely sunset in the future.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;API Access levels are associated with Google Cloud projects: &lt;/strong&gt;We are sunsetting developer tokens. Your current and active developer token access level is automatically transferred to your Google Cloud projects &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/developer-token?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs#assign-api-access-levels&quot;&gt;based on recent API activity&lt;/a&gt;. You can continue sending developer tokens in your API call headers, but this is optional and ignored by the API servers. Your existing code will continue working without any changes. Your API Access levels are now determined by the Google Cloud project you used to generate your OAuth credentials. Refer to our &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/developer-token?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;FAQ page&lt;/a&gt; to learn more about this change and troubleshoot any issues you may encounter.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New error code: &lt;/strong&gt;Version v25 of the Google Ads API will throw a &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AuthorizationErrorEnum.AuthorizationError?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-refdocs#cloud_project_not_approved_for_production&quot;&gt;CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION&lt;/a&gt;&lt;/code&gt; error if you try to use a Google Cloud project with &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/access-levels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs#test-account-access&quot;&gt;Test Account Access level&lt;/a&gt; to make calls to a production account. Older API versions will throw an &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AuthorizationErrorEnum.AuthorizationError?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-refdocs#action_not_permitted&quot;&gt;ACTION_NOT_PERMITTED&lt;/a&gt;&lt;/code&gt; error instead. If you run into this error, navigate to the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt; for your Google Cloud project and &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/access-levels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs#how_to_apply_for_explorer_access_level&quot;&gt;apply for Explorer Access&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Changes to API review process&lt;/h3&gt;


&lt;p&gt;
&lt;strong&gt;Brand verification required for Basic and Standard access&lt;/strong&gt;: For new Basic and Standard Access applications, you must complete &lt;a href=&quot;//developers.google.com/identity/protocols/oauth2/production-readiness/brand-verification?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;brand verification&lt;/a&gt; for your Google Cloud project . Existing access holders are not required to complete brand verification, though it is encouraged.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Automated Basic access approvals: &lt;/strong&gt;Basic Access applications are now automated and will be reviewed within minutes after brand verification and submission.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;One-time rejection of pending Basic access applications: &lt;/strong&gt;Due to these process updates, all the pending Basic API access applications will be closed as part of this transition. Affected applicants will receive an email with details and should reapply for API access from the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt;.
&lt;/p&gt;

&lt;h3&gt;Action required&lt;/h3&gt;

&lt;p&gt;
&lt;strong&gt;Verify your API access:&lt;/strong&gt; Check that your project&#39;s API access level correctly matches your existing developer token:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;Find your developer token&#39;s &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/access-levels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;access level&lt;/a&gt; in your Google Ads manager account&#39;s &lt;a href=&quot;https://ads.google.com/aw/apicenter&quot;&gt;API Center&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Confirm your Google Cloud project has the same access level on the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If the access levels do not match, please reapply for API access from the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt; or reach out to the &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support&lt;/a&gt; if you need help.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;
&lt;strong&gt;Update your API contact email address:&lt;/strong&gt; Visit the &lt;a href=&quot;https://console.cloud.google.com/iam-admin/iam&quot;&gt;IAM (Identity and Access Management) page&lt;/a&gt; for your Cloud project. Ensure that the list of users in the owner and editor roles are up to date. We will start sending Mandatory Service Announcements (MSAs) to these email addresses to notify you about any future changes to the Google Ads API.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Code changes: &lt;/strong&gt;We encourage you to update your application code to stop sending developer tokens as part of the API calls. We have published new versions of the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/client-libs?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;client libraries&lt;/a&gt; which allows you to make API calls without setting a developer token. We will start rejecting developer tokens in API calls in a future major version of the Google Ads API.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Reapply for API access if applicable:&lt;/strong&gt; If your pending Basic API access application was closed as part of this transition, please reapply for an API Access from the &lt;a href=&quot;https://console.cloud.google.com/google/ads-apis/overview&quot;&gt;Google Ads API Overview page&lt;/a&gt; of your Google Cloud Console.
&lt;/p&gt;
&lt;p&gt;
We have published updated documentation to help you navigate these changes. For technical support issues, refer to our &lt;a href=&quot;//developers.google.com/google-ads/api/docs/api-policy/developer-token?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-devtoken-sunset&amp;utm_content=learnmore-docs&quot;&gt;FAQ page&lt;/a&gt; or reach out to &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support&lt;/a&gt;. If you have any questions or want to discuss this post, please reach out to us on our &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;Google Advertising and Measurement Community Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/09/new-onboarding-experience-for-google-ads-api' title='A new onboarding experience for Google Ads API developers'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/09/google-ads-api-v22-sunset-reminder</id>
    <published>2026-09-02T00:00:00Z</published>
    <updated>2026-09-02T00:00:00Z</updated>

    <title type='text'>Google Ads API v22 sunset reminder</title>
    <content type='html'>&lt;p&gt;
Google Ads API v22 will &lt;a href=&quot;//developers.google.com/google-ads/api/docs/sunset-dates?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=readmore-deprecationandsunset&quot;&gt;sunset&lt;/a&gt; on October 7, 2026. Starting on this date, all v22 API requests will begin to fail. Migrate to a &lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=readmore-releasenotes&quot;&gt;newer version&lt;/a&gt; prior to October 7, 2026 to ensure your API access is unaffected.
&lt;/p&gt;
&lt;p&gt;
Here are some resources to help you with the migration:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/version-migration?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=upgrade&quot;&gt;Upgrade to the newest version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=readmore-releasenotes-2&quot;&gt;Release notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
To view a list of methods and services that your project has recently called, use the &lt;a target=&quot;_blank&quot; href=&quot;https://console.cloud.google.com?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=tryitout-cloudconsole&quot;&gt;Google Cloud Console&lt;/a&gt;:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;Open &lt;strong&gt;APIs &amp; Services&lt;/strong&gt; in the Google Cloud Console.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Google Ads API&lt;/strong&gt; in the table.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Metrics&lt;/strong&gt; subtab, your recent requests are plotted on each graph. You can see which methods you&#39;ve sent requests to in the &lt;strong&gt;Methods&lt;/strong&gt; table. The method name includes a Google Ads API version, a service, and a method name, such as &lt;code&gt;google.ads.googleads.v22.services.GoogleAdsService.Mutate&lt;/code&gt;.&lt;/li&gt;

&lt;li&gt;(Optional) Select the timeframe for which you want to view your requests.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;
If you have any questions or want to discuss this post, reach out to &lt;a href=&quot;//developers.google.com/google-ads/api/support?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-v22-sunset&amp;utm_content=support-gaapi&quot;&gt;Google Ads API support&lt;/a&gt; or start a discussion on our &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/09/google-ads-api-v22-sunset-reminder' title='Google Ads API v22 sunset reminder'/>
    <author><name>Ben Karl, on behalf of the Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/making-google-ads-more-secure-with</id>
    <published>2026-08-31T00:00:00Z</published>
    <updated>2026-08-31T00:00:00Z</updated>

    <title type='text'>Making Google Ads More Secure with Updates to Developer Policies</title>
    <content type='html'>&lt;p&gt;
We are updating our &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/adspolicy/answer/6169371&quot;&gt;Google Ads Developer Policies&lt;/a&gt; formerly the &quot;Google Ads API Policy&quot;, to support developers in building robust, high-quality integrations as new AI capabilities continue to shape the advertising industry.
&lt;/p&gt;
&lt;p&gt;
These updates establish clear frameworks for emerging technologies that are more secure and drive better outcomes for our shared customers.
&lt;/p&gt;
&lt;p&gt;
To ensure a seamless transition to these updated standards, the Ads API Compliance team is actively reviewing existing integrations. Please check if your application requires updates by reviewing the policy. We will also reach out directly to developers who will need to transition with detailed guidance, technical resources and additional details.
&lt;/p&gt;
&lt;h3&gt;Why we are introducing these updates now&lt;/h3&gt;
&lt;p&gt;As technology evolves, we periodically review our policies to make sure they reflect the current landscape. Historically, some integrations have relied on &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/18103182&quot;&gt;programmatic proxies&lt;/a&gt;, which bypass the verifiable and secure interface between end-users and Google. To help protect advertising partners against fraud and security risks, integrations now need to connect directly to Google Ads services using their own dedicated Google Cloud project.&lt;/p&gt;


&lt;p&gt;
This is critical to mitigate risks for customers, including:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Security Vulnerabilities:&lt;/strong&gt; Using unaudited proxies can provide unauthorized actors access to your account. They also introduce the risk of cross-tenant data leaks, which could expose your data more broadly than intended.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance Bottlenecks:&lt;/strong&gt; High-volume traffic routed through a single proxy can throttle throughput, cause latency across all users, and require enforcement across all users of a proxy when mitigating localized Denial of Service (DoS).&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Next steps&lt;/h3&gt;

&lt;ul&gt;

&lt;li&gt;Review your integrations to ensure they still follow Google Ads API policies. For full guidelines, visit the updated &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/adspolicy/answer/6169371&quot;&gt;Google Ads Developer Policies&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Please ensure your contact email is up to date in the API Center so our Ads API Compliance team can easily share helpful communication or direct assistance from our compliance team as we do reviews. These communications will come from the google.com domain.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
For technical support issues, please reach out to &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads Developer Support&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/making-google-ads-more-secure-with' title='Making Google Ads More Secure with Updates to Developer Policies'/>
    <author><name>Nadine Wang, Advertising and Measurement APIs Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/october-2026-changes-to-display-video</id>
    <published>2026-08-27T00:00:00Z</published>
    <updated>2026-08-27T00:00:00Z</updated>

    <title type='text'>October 2026 changes to the Display &amp; Video 360 API and Structured Data Files</title>
    <content type='html'>&lt;p&gt;
Today we&#39;re announcing three unversioned changes to the Display &amp; Video 360 API and Structured Data Files that will take effect in &lt;strong&gt;October 2026 &lt;/strong&gt;and may impact your existing integrations.
&lt;/p&gt;
&lt;p&gt;
These changes will take place on the following dates and have been fully detailed on our &lt;a href=&quot;//developers.google.com/display-video/api/deprecations?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-oct2026-changes&amp;utm_content=learnmore-refdocs&quot;&gt;Announced Deprecations&lt;/a&gt; page:
&lt;/p&gt;
&lt;p&gt;
Starting &lt;strong&gt;October 1, 2026&lt;/strong&gt;:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;You will &lt;a href=&quot;//developers.google.com/display-video/api/deprecations?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-oct2026-changes&amp;utm_content=learnmore-refdocs#features.digital_content_label_exclusion_deprecation&quot;&gt;no longer be able to exclude specific digital content labels using targeting&lt;/a&gt;, impacting available &lt;code&gt;TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION&lt;/code&gt; targeting options in the Display &amp; Video 360 API and valid values for the &lt;code&gt;Digital Content Labels - Exclude&lt;/code&gt; column in Line Item Structured Data Files.&lt;/li&gt;
&lt;li&gt;You will &lt;a href=&quot;//developers.google.com/display-video/api/deprecations?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-oct2026-changes&amp;utm_content=learnmore-refdocs#features.sensitive_category_exclusion_deprecation&quot;&gt;no longer be able to exclude the majority of sensitive categories using targeting&lt;/a&gt;, impacting available &lt;code&gt;TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION&lt;/code&gt; targeting options in the Display &amp; Video 360 API and valid values for the &lt;code&gt;Brand Safety Sensitivity Setting&lt;/code&gt; and &lt;code&gt;Brand Safety Custom Settings&lt;/code&gt; columns in Line Item Structured Data Files.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
Starting &lt;strong&gt;October 12, 2026:&lt;/strong&gt;
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;You will be &lt;a href=&quot;//developers.google.com/display-video/api/deprecations?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dv360api-oct2026-changes&amp;utm_content=learnmore-refdocs#features.business_name_logo_requirement&quot;&gt;required to provide a business name and logo when you create or update YouTube responsive ads&lt;/a&gt; if default values are not already assigned to the parent advertiser, impacting the upload of Ad Structured Data Files.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
If you believe these changes will impact your integration, follow the recommended actions in the change description.
&lt;/p&gt;
&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/october-2026-changes-to-display-video' title='October 2026 changes to the Display &amp; Video 360 API and Structured Data Files'/>
    <author><name>Trevor Mulchay, Display &amp; Video 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/google-ads-api-developer-assistant-v400</id>
    <published>2026-08-25T00:00:00Z</published>
    <updated>2026-08-25T00:00:00Z</updated>

    <title type='text'>Google Ads API Developer Assistant v4.0.0</title>
    <content type='html'>&lt;p&gt;
A major release of the &lt;strong&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant&quot;&gt;Google Ads API Developer Assistant&lt;/a&gt;&lt;/strong&gt; is now available. This release transitions the assistant from a standalone project setup to a unified plugin architecture designed to bring specialized Google Ads API capabilities directly into AI agent workflows.
&lt;/p&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;What is it?&lt;/h2&gt;


&lt;p&gt;
The Google Ads API Developer Assistant brings deep Google Ads domain expertise into AI coding environments like Antigravity and Claude Code. It equips your AI assistant with specialized tools and guardrails. Functions include:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Generate idiomatic code&lt;/strong&gt;: Create tested, best-practice integration code across Python, Java, PHP, .NET, and Ruby.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validate GAQL queries&lt;/strong&gt;: Automatically verifies syntax, field compatibility, date segmentation, and zero-impression rules before running queries.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inspect Protobuf schemas&lt;/strong&gt;: On demand discovery of resource fields, data types, and enum definitions for any active Google Ads API version to ensure that GAQL query fields are valid.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Troubleshoot API issues&lt;/strong&gt;: Diagnose offline conversion upload failures, navigate manager account hierarchies, and construct Performance Max listing filters. You can pose natural language questions like &quot;Show me all the ads in my account with problems and recommend how to fix them.&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Answer API questions&lt;/strong&gt;: The assistant answers questions by combining embedded Google Ads API architectural rules with dynamic, local Protobuf schema inspection to deliver version-accurate guidance and verified code snippets. It grounds its responses directly in official API definitions and client library source code rather than relying solely on general model training. An example question might be, &quot;What is a shared set and how do I use it?&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adhoc reporting&lt;/strong&gt;: You can ask for performance data in plain English, and the assistant instantly constructs, validates, and runs the required GAQL queries directly against your Google Ads account. It streams live results back into your chat as clean, formatted tables, making ad hoc reporting and metric investigations effortless. If you want to save the results, ask it to &quot;Save results as a CSV file in &amp;lt;your directory&gt;&quot; and you can load it into a spreadsheet for analysis.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;Support for Antigravity and Claude Code&lt;/h2&gt;


&lt;p&gt;
This release introduces dual-platform support:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://antigravity.google.com/&quot;&gt;Antigravity&lt;/a&gt;&lt;/strong&gt;: Native support for Antigravity developer environments with global and workspace plugin registration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;: Full integration with the Claude Code CLI plugin system, including custom slash commands (such as &lt;code&gt;/validate-gaql&lt;/code&gt;, &lt;code&gt;/inspect-object&lt;/code&gt;, &lt;code&gt;/troubleshoot-conversions&lt;/code&gt;, and &lt;code&gt;/get-cids&lt;/code&gt;).&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
Unified installation scripts are available for &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/install.sh&quot;&gt;Linux&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/install.sh&quot;&gt;macOS&lt;/a&gt; (bash), and &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/install.ps1&quot;&gt;Windows&lt;/a&gt; (PowerShell) to provide consistent lifecycle management across all three platforms.
&lt;/p&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;Improved performance&lt;/h2&gt;

&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Reduced token consumption&lt;/strong&gt;: Progressive disclosure of rules and schemas loads only the context needed for a given task, reducing prompt token overhead.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Faster response times&lt;/strong&gt;: On-demand skill execution and targeted command routing deliver faster end-to-end task completion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower CPU utilization&lt;/strong&gt;: Streamlined execution pipelines eliminate background process overhead during development sessions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced disk I/O: &lt;/strong&gt;Reducing the number of unneeded files in the plugin tree prevents file watchers, linters, and IDE indexers from scanning tens of thousands of unused protobuf/SDK files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower memory (RAM) footprint &amp; zero daemon overhead: &lt;/strong&gt;Skills and commands now run ephemerally as fast child processes only when called, dropping system resource usage to zero when idle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cached API version and Protobuf schema resolution&lt;/strong&gt;: The assistant avoids making repetitive remote metadata or reflection API calls when inspecting standard fields, resources, and enums.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deterministic command execution versus multi-turn LLM reasoning&lt;/strong&gt;: Instead of the LLM guessing or iteratively debugging GAQL syntax across 3–4 round-trips, the local validator checks fields, resources, zero-impression metrics, and date clauses in a single step.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;A major release built on a modern plugin architecture&lt;/h2&gt;


&lt;p&gt;
This is a major release that is &lt;strong&gt;not compatible with prior releases&lt;/strong&gt;. Earlier versions relied on a local workspace project structure. This version is built on a standardized &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/anthropics/knowledge-work-plugins&quot;&gt;plugin architecture&lt;/a&gt; that is installed to be globally available.
&lt;/p&gt;
&lt;p&gt;
Modularizing rules, skills, and diagnostic commands into a self-contained plugin bundle allows developers to install, update, and manage the assistant across multiple environments and projects.
&lt;/p&gt;
&lt;p&gt;
See the &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/README.md&quot;&gt;README.md&lt;/a&gt; for technical details on the plugin architecture.
&lt;/p&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;


&lt;p&gt;
Because of the architectural changes in this release, review the documentation before installation:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;Read &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/README_BEFORE_INSTALLATION.md&quot;&gt;README_BEFORE_INSTALLATION.md&lt;/a&gt; for prerequisites and environment preparation.&lt;/li&gt;
&lt;li&gt;Follow the installation instructions in &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/googleads/google-ads-api-developer-assistant/blob/main/README.md&quot;&gt;README.md&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;We want your feedback&lt;/h2&gt;


&lt;p&gt;
Share your feedback, report issues, and suggest capabilities using the survey form:
&lt;/p&gt;
&lt;p&gt;
👉 &lt;strong&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSejtx866_OfpKfz5ypZ-0J4LbhA70EF7uiSxWR0Uk6KciuxdQ/viewform&quot;&gt;Submit your feedback&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/google-ads-api-developer-assistant-v400' title='Google Ads API Developer Assistant v4.0.0'/>
    <author><name>Bob Hancock, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/announcing-v251-of-google-ads-api</id>
    <published>2026-08-19T00:00:00Z</published>
    <updated>2026-08-19T00:00:00Z</updated>

    <title type='text'>Announcing v25.1 of the Google Ads API</title>
    <content type='html'>&lt;p&gt;
Today we are announcing the release of v25.1 of the &lt;a href=&quot;//developers.google.com/google-ads/api?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25&amp;utm_content=learnmore-api&quot;&gt;Google Ads API&lt;/a&gt;. To use the new capabilities, you must upgrade your &lt;a href=&quot;//developers.google.com/google-ads/api/docs/client-libs?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v24_2&amp;utm_content=learnmore-clientlibs&quot;&gt;client libraries&lt;/a&gt; and client code. All the updated client libraries and code examples have been published.
&lt;/p&gt;
&lt;p&gt;
Come join us for a live walkthrough of this release in our &lt;a href=&quot;https://discord.gg/VBDqfFJjTj?event=1537386444937764955&quot;&gt;&quot;Google Ads API Release Highlights&quot; event on Discord&lt;/a&gt; or our &lt;a href=&quot;https://www.youtube.com/watch?v=O1-g8fiwbS4&quot;&gt;Ads Developers YouTube Live&lt;/a&gt; tomorrow (August 20th at 10am ET). This will also be recorded and posted on YouTube for those who can&#39;t make the live events. If you have any questions or want to discuss this post, reach out to us in the &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;#ads-api channel&lt;/a&gt; on Discord.
&lt;/p&gt;
&lt;h2&gt;New Features&lt;/h2&gt;


&lt;p&gt;
Here are the highlights of what&#39;s new in v25.1:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Conversion lift and brand lift measurement&lt;/strong&gt;: We&#39;ve added comprehensive support for lift studies in the API. Read-only resources &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementConfig?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementConfig&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementFlight?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementFlight&lt;/a&gt;&lt;/code&gt; allow you to inspect study configurations, flight dates, campaign details, and conversion goals. This release includes 24 new Conversion Lift metrics and winner score metrics for statistical analysis, as well as new Brand Lift dimension resources: &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementAgeRange?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementAgeRange&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementCampaign?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementCampaign&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementDevice?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementDevice&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementGender?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementGender&lt;/a&gt;&lt;/code&gt;, and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/LiftMeasurementVideo?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;LiftMeasurementVideo&lt;/a&gt;&lt;/code&gt;. Refer to our help center article to learn more about &lt;a href=&quot;https://support.google.com/google-ads/topic/10536866&quot;&gt;Brand lift&lt;/a&gt; and &lt;a href=&quot;https://support.google.com/google-ads/answer/12003020&quot;&gt;Conversion lift&lt;/a&gt;. Both these features are available only to allowlisted Google Ads accounts. To use these features, contact your Google account representative.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BenchmarksService category scoping and new metrics&lt;/strong&gt;: You can now scope your benchmark analysis against advertisers in specific Product &amp; Service Categories using the new &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/GenerateBenchmarksMetricsRequest?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs#category_filter&quot;&gt;category_filter&lt;/a&gt;&lt;/code&gt; parameter in &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/BenchmarksService/GenerateBenchmarksMetrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;BenchmarksService.GenerateBenchmarksMetrics&lt;/a&gt;&lt;/code&gt;. Supported categories can be discovered via &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/BenchmarksService/ListBenchmarksSources?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;ListBenchmarksSources&lt;/a&gt;&lt;/code&gt;. In addition, new customer ad metrics (aggregate cost, views) and share metrics such as &lt;code&gt;share_of_voice&lt;/code&gt; are now surfaced via &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/AggregateMetrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;AggregateMetrics&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/ShareMetrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;ShareMetrics&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Brand Sentiment Insights&lt;/strong&gt;: &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/ContentCreatorInsightsService?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;ContentCreatorInsightsService&lt;/a&gt;&lt;/code&gt; now supports brand sentiment data, allowing you to retrieve sentiment distributions and summaries for creators and brands via &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/BrandSentimentInsight?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;BrandSentimentInsight&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loyalty Program Segmentation and Conversion Value Rules&lt;/strong&gt;: You can now segment report metrics by the loyalty program tier of converting users using &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Segments?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs#loyalty_membership&quot;&gt;Segments.loyalty_membership&lt;/a&gt;&lt;/code&gt;. Additionally, the new &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs#loyalty_membership&quot;&gt;LOYALTY_MEMBERSHIP&lt;/a&gt;&lt;/code&gt; primary dimension in &lt;code&gt;ConversionValueRulePrimaryDimension&lt;/code&gt; allows you to track when a loyalty membership condition was satisfied for a conversion value rule.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Original Conversion Value Metric&lt;/strong&gt;: The new &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Metrics?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs#original_conversion_value&quot;&gt;Metrics.original_conversion_value&lt;/a&gt;&lt;/code&gt; metric surfaces the unadjusted conversion value from biddable conversions before any conversion value rules or customer lifecycle goal adjustments are applied.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parental Status Targeting in Reach Planning&lt;/strong&gt;: &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/ReachPlanService?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;ReachPlanService&lt;/a&gt;&lt;/code&gt; now supports &lt;code&gt;parental_statuses&lt;/code&gt; targeting within &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/Targeting?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;Targeting&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/v25/PlannableTargeting?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-release-v25-1&amp;utm_content=learnmore-refdocs&quot;&gt;PlannableTargeting&lt;/a&gt;&lt;/code&gt; for reach forecasting and plannable product discovery.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Getting Started&lt;/h2&gt;


&lt;p&gt;
Google Ads API v25.1 is a drop-in upgrade for v25. If you use our client libraries, download the latest version of your client library to start using these features. For a full list of changes, please review the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/release-notes#v25-1-2026-08-19&quot;&gt;official release notes&lt;/a&gt;. If you have any questions or want to discuss this post, please reach out to us on our &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For technical support issues, please reach out to the &lt;a href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;Google Ads API support channel&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/announcing-v251-of-google-ads-api' title='Announcing v25.1 of the Google Ads API'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/google-ads-language-targeting-changes</id>
    <published>2026-08-13T00:00:00Z</published>
    <updated>2026-08-13T00:00:00Z</updated>

    <title type='text'>Google Ads language targeting changes starting September 2026</title>
    <content type='html'>&lt;p&gt;
We&#39;re making changes to language targeting for Search, AI Max for Search, and Performance Max campaigns in Google Ads, simplifying campaign management while maintaining a high-quality ad experience.
&lt;/p&gt;
&lt;p&gt;
Effective&lt;strong&gt; late September 2026: &lt;/strong&gt;
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;For &lt;strong&gt;Search and AI Max for Search&lt;/strong&gt; campaigns, the campaign-level &lt;a href=&quot;https://support.google.com/google-ads/answer/1722078&quot;&gt;language targeting setting&lt;/a&gt; will be removed. Search ads will automatically match based on the language of your ads.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Performance Max&lt;/strong&gt; campaigns, the way language targeting is used will be updated: &lt;ul&gt;

 &lt;li&gt;On Google Search: The campaign-level language setting will no longer be used for ads shown on Google Search. Language matching will function the same as Search campaigns, using the language of your ads.&lt;/li&gt;
 &lt;li&gt;On other channels (like YouTube, Display, Discover, Gmail): The campaign-level language setting you select will continue to be used to guide who sees your ads.&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt; &lt;/ul&gt;

&lt;p&gt;
In cases where multiple eligible campaigns exist within your account, &lt;a href=&quot;https://support.google.com/google-ads/answer/2756257&quot;&gt;AI-based ad group prioritization&lt;/a&gt; will select the most relevant ad language.
&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;img alt=&quot;How Language Targeting Works&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;1406&quot; data-original-width=&quot;2500&quot; src=&quot;https://developers.google.com/ads/blog/images/LanguageTargeting.png&quot;/&gt;&lt;/div&gt;

&lt;p&gt;
Historically, the language criterion in the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/start?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-language-targeting-may2026&amp;utm_content=readmore-gaa&quot;&gt;Google Ads API&lt;/a&gt; allowed you to manually specify target languages for your campaigns. These language criteria will still be returned when querying even though they are not used for targeting. Any mutates to add or update Search campaign &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-language-targeting-may2026&amp;utm_content=readmore-campaign_criterion-language#language&quot;&gt;&lt;code&gt;CampaignCriterion.language&lt;/code&gt;&lt;/a&gt; will result in a &lt;a href=&quot;//developers.google.com/google-ads/api/reference/rpc/latest/ContextErrorEnum.ContextError?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-language-targeting-may2026&amp;utm_content=readmore-context-error#operation_not_permitted_for_context&quot;&gt;&lt;code&gt;ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT&lt;/code&gt;&lt;/a&gt; error. For Performance Max campaigns, there will be no error as language targeting may be used on other channels.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What should I change for the Google Ads API?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
While existing Search and AI Max for Search campaigns will continue to operate without disruption (as their language settings will not apply), we recommend the following code updates:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;&lt;strong&gt;Stop setting language criteria&lt;/strong&gt;: &lt;ul&gt;

 &lt;li&gt;&lt;strong&gt;For new Search campaigns: &lt;/strong&gt;Stop including language criteria when creating or updating Search campaigns when sending Google Ads API requests.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;For existing Search campaigns: &lt;/strong&gt;You may optionally remove existing language criteria from your Search campaigns for cleanliness, though it is not strictly required as they will not apply.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Focus on Ad and Landing Page Language:&lt;/strong&gt; Ensure your ad creatives and landing pages are clearly structured in the intended languages. Search ads will primarily use these signals, alongside user language preferences, for matching.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
&lt;strong&gt;Where can I get support?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For technical support issues, please reach out to us using the &lt;a href=&quot;//developers.google.com/google-ads/api/support/contact?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-language-targeting-may2026&amp;utm_content=goto-support&quot;&gt;support form&lt;/a&gt;. If you have any questions or want to discuss this post, please reach out to us on our &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/google-ads-language-targeting-changes' title='Google Ads language targeting changes starting September 2026'/>
    <author><name>Dora Sun - Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/query-report-data-with-campaign-manager</id>
    <published>2026-08-12T00:00:00Z</published>
    <updated>2026-08-12T00:00:00Z</updated>

    <title type='text'>Query report data with the Campaign Manager 360 API</title>
    <content type='html'>&lt;p&gt;
  You can now use the &lt;code&gt;reportData.query&lt;/code&gt; endpoint in the Campaign
  Manager 360 API to synchronously query your campaign performance data and
  retrieve structured JSON data directly in the response.
&lt;/p&gt;
&lt;p&gt;
  The new &lt;code&gt;reportData.query&lt;/code&gt; endpoint offers a simplified option for
  report data retrieval compared to the standard
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/reporting_overview?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-ref-reportsservice#reports_service&quot;&gt;reporting API workflow&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Queries run synchronously with a 60-second execution limit, making this
    endpoint ideal for real-time dashboards and ad-hoc data explorations.
  &lt;/li&gt;
  &lt;li&gt;
    Report data is returned as structured JSON directly in the HTTP response,
    which eliminates file management overhead.
  &lt;/li&gt;
  &lt;li&gt;
    You no longer need to create a preconfigured &lt;code&gt;Report&lt;/code&gt; resource to
    fetch data, as you can specify your dimensions, metrics, and filters
    directly in the request body.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  The existing
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/reporting_overview?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-ref-reportsservice#reports_service&quot;&gt;Reports service&lt;/a&gt;
  is still recommended for retrieval of large datasets, scheduled jobs, or
  applications that rely on downloadable report files (CSV or Excel). This
  service requires multiple steps: developers must
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/create_reports?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-guides-createreports&quot;&gt;create and manage Report configurations&lt;/a&gt;,
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/run_reports?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-guides-runreports&quot;&gt;trigger a run of the report&lt;/a&gt;, poll for status updates, and
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/download_reports?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-guides-downloadreports&quot;&gt;download the report file&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;Get Started&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    Review the
    &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/query_report_data?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-guides-queryreportdata&quot;&gt;Query Report Data guide&lt;/a&gt;
    to learn more about request parameters, pagination, and best practices.
  &lt;/li&gt;
  &lt;li&gt;
    Compare reporting approaches on the
    &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/reporting_overview?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-guides-reportingoverview&quot;&gt;Reporting Overview&lt;/a&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Check out the
    &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/rest/v5/reportData/query?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=learnmore-ref-reportdataquery&quot;&gt;reportData.query&lt;/a&gt;
    REST reference documentation.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  If you have any questions or need technical support, please reach out to
  &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/get-support?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-cm360-api-report-query&amp;utm_content=get-support&quot;&gt;Campaign Manager 360 API Support&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/query-report-data-with-campaign-manager' title='Query report data with the Campaign Manager 360 API'/>
    <author><name>Lindsey Volta, on behalf of the Campaign Manager 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/migrate-campaign-level-broad-match-and</id>
    <published>2026-08-12T00:00:00Z</published>
    <updated>2026-08-12T00:00:00Z</updated>

    <title type='text'>Migrate Campaign-level Broad Match and Automatically Created Assets to AI Max</title>
    <content type='html'>&lt;p&gt;
The legacy automigrations are divided into two separate phases:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Phase 1&lt;/strong&gt; (&lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/13389795&quot;&gt;Campaign-level Broad Match&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/7175034&quot;&gt;Automatically Created Assets&lt;/a&gt;), which starts September 1, 2026.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phase 2 &lt;/strong&gt;(Dynamic Search Ads), which has been &lt;a href=&quot;//developers.google.com/ads/blog/posts/2026/06/dynamic-search-ads-dsa-automigration&quot;&gt;rescheduled&lt;/a&gt; to February 2027.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;1. Campaign broad and ACA auto-migration: September 1 – September 30, 2026	&lt;/h2&gt;


&lt;p&gt;
On &lt;strong&gt;September 1, 2026&lt;/strong&gt;, Google Ads will begin automatically upgrading Search campaigns using &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/13389795&quot;&gt;Campaign-level Broad Match&lt;/a&gt; (CB) or standalone &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/7175034&quot;&gt;Automatically Created Assets&lt;/a&gt; (ACA) to AI Max. The migration job will roll out progressively throughout the month.
&lt;/p&gt;
&lt;p&gt;
To find the campaigns that have been migrated at any point during the month:
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;   SELECT
      campaign.id,
      campaign.name,
      campaign.aca_migration_date_time,
      campaign.broad_match_migration_date_time
    FROM campaign
    WHERE campaign.aca_migration_date_time &gt; &#39;1970-01-01 00:00:00&#39;
      AND campaign.broad_match_migration_date_time &gt; &#39;1970-01-01 00:00:00&#39;
&lt;/pre&gt;


&lt;h3&gt;Default migrated configurations&lt;/h3&gt;


&lt;p&gt;
To support campaign management continuity and minimize performance volatility, campaigns will be migrated in-place to equivalent AI Max settings.
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Campaign-Level Broad Match (CB):&lt;/strong&gt; &lt;ul&gt;

 &lt;li&gt;&lt;strong&gt;Text Customization (TC):&lt;/strong&gt; OPT_OUT (&lt;code&gt;OFF&lt;/code&gt;)&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Final URL Expansion (FUE):&lt;/strong&gt; OPT_OUT (&lt;code&gt;OFF&lt;/code&gt;)&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Search Term Matching (STM):&lt;/strong&gt; true (&lt;code&gt;ON&lt;/code&gt;) by default&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Brand Lists:&lt;/strong&gt; Existing brand inclusions and exclusions are preserved and moved into the new setup in-place.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standalone Automatically Created Assets (ACA):&lt;/strong&gt; &lt;ul&gt;

 &lt;li&gt;&lt;strong&gt;Text Customization (TC):&lt;/strong&gt; OPT_IN (&lt;code&gt;ON&lt;/code&gt;) by default&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Final URL Expansion (FUE):&lt;/strong&gt; OPT_OUT (&lt;code&gt;OFF&lt;/code&gt;)&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Search Term Matching (STM):&lt;/strong&gt; true (&lt;code&gt;ON&lt;/code&gt;) by default&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt; &lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;2. API creation blocks and legacy cleanup&lt;/h2&gt;


&lt;p&gt;
To prevent the creation of new legacy structures ahead of the auto-migration, strict enforcement blocks are now in place across the developer surfaces:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Legacy creation end of life (August 3, 2026):&lt;/strong&gt; Creating new Campaign-level Broad Match configurations or legacy Automatically Created Assets (ACA) is now blocked across the UI, Google Ads Editor, and all versions of the API.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;3. API versioning lifecycle and support grace period&lt;/h2&gt;


&lt;p&gt;
How you manage these features depends on the API version your integration targets:
&lt;/p&gt;
&lt;h3&gt;New API versions (post-September 1, 2026)&lt;/h3&gt;


&lt;p&gt;
Any new versions of the Google Ads API released after September 1, 2026, will &lt;strong&gt;completely remove&lt;/strong&gt; the legacy entities used to create or manage:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/13389795&quot;&gt;Campaign-level Broad Match&lt;/a&gt; settings&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/11259373?sjid=13816403130803822914-NC&quot;&gt;Automatically Created Assets&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Older API versions (grace period)&lt;/h3&gt;

&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Active support:&lt;/strong&gt; Previously released API versions that are currently active will temporarily continue to support legacy ACA and Broad Match settings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sunset timeline:&lt;/strong&gt; You can continue to edit and manage these legacy setups through older API versions until those specific versions reach their standard scheduled sunset (typically one year after their introduction, around &lt;strong&gt;September 2027&lt;/strong&gt;). At that point, all remaining legacy entities will be permanently removed.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;4. Dynamic Search Ads &lt;a href=&quot;//developers.google.com/ads/blog/posts/2026/06/dynamic-search-ads-dsa-automigration&quot;&gt;automigration February 2027&lt;/a&gt;&lt;/h2&gt;


&lt;p&gt;
Your active legacy DSA campaigns are &lt;strong&gt;excluded&lt;/strong&gt; from the September auto-migrations and will continue to serve as normal. However, prepare for the upcoming DSA timeline:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;September 2026:&lt;/strong&gt; Google will launch in-account pre-migration banners in the UI to warn unmigrated advertisers of the upcoming transition and encourage voluntary one-click upgrades by selecting &quot;Upgrade Your Dynamic Search Ads (DSAs) to AI Max&quot; under Campaign Settings | Dynamic Search Ads setting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;January 15, 2027:&lt;/strong&gt; Official MSA reminder notification will be sent to all impacted accounts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;February 1–28, 2027:&lt;/strong&gt; Automigration begins. The ability to create new DSA ad groups will be permanently removed, and unmigrated DSA campaigns will automatically upgrade to standard Search ad groups with AI Max enabled.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;
&lt;h2&gt;Developer action plan&lt;/h2&gt;

&lt;ol&gt;

&lt;li&gt;&lt;strong&gt;Audit your integration:&lt;/strong&gt; Identify any scripts, external tools, or client libraries still attempting to create or edit campaign-level broad match settings or legacy ACA.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move to standard entities:&lt;/strong&gt; Begin updating your campaign construction workflows to use standard Search campaigns with the &lt;code&gt;AI Max&lt;/code&gt; settings bundle (Uber Toggle, Text Customization, and Search Term Matching).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handle grandfathered read-only entities:&lt;/strong&gt; Be prepared to handle API error codes if your integration attempts to modify (rather than pause or delete) legacy Expanded Dynamic Search ads (eDSAs) or criteria once they transition to standard ad groups.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;

&lt;hr&gt;
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/migrate-campaign-level-broad-match-and' title='Migrate Campaign-level Broad Match and Automatically Created Assets to AI Max'/>
    <author><name>Bob Hancock, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/08/google-ads-api-pilot-secure-api-access</id>
    <published>2026-08-03T00:00:00Z</published>
    <updated>2026-08-03T00:00:00Z</updated>

    <title type='text'>Google Ads API pilot: Secure API Access to your Manager Accounts</title>
    <content type='html'>&lt;p&gt;
The &lt;a href=&quot;//developers.google.com/google-ads/api&quot;&gt;Google Ads API&lt;/a&gt; is piloting a security feature designed for securing API access to Google Ads manager accounts. We are seeking developers who would like to participate in this pilot project and provide us with feedback.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What are we offering?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The new pilot program protects accounts under a Google Ads manager hierarchy by restricting access to sensitive API methods such as account management, user management, and billing API calls to a pre-approved allowlist of Google Cloud projects. This happens in the following phases:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;You sign up for the pilot program, and share the customer ID of your top-level Google Ads manager account.&lt;/li&gt;
&lt;li&gt;Google performs an audit of the API activity of all the accounts under the Google Ads manager account to identify the list of applications and their Google Cloud project numbers.&lt;/li&gt;
&lt;li&gt;Google works with you to establish an allowlist of approved applications and projects as a new mechanism for controlling API access to sensitive methods. &lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;
After the Google Ads manager account is secured, any unapproved application that tries to make sensitive API calls to any account under the protected manager account will fail.
&lt;/p&gt;
&lt;p&gt;
This security measure provides benefits:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Enhanced Security:&lt;/strong&gt; Lowers the risk of account takeovers by malicious applications by helping to restrict access so that only verified tools can perform sensitive operations, even if your credentials are compromised.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved Visibility:&lt;/strong&gt; Provides advertisers with a clear and concise view of exactly which applications have access to their advertising data and are performing sensitive actions on their accounts.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;How do I join this program?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
To participate in this program, express your interest by &lt;a target=&quot;_blank&quot; href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScAjDPYMQi1B8sG3mDOh_CQg6ltLcoIJ0jqCp6sbfgor-fKPQ/viewform&quot;&gt;filling out the application form&lt;/a&gt;. You should provide your contact email address and the customer ID of the top-level Google Ads manager account that you want to secure. If Google selects your account for participation in the pilot program, then we will reach out to you using the email address you provided, and list the next steps required to secure the accounts under your Google Ads manager account under this pilot program.
&lt;/p&gt;
&lt;p&gt;
&lt;span id=&quot;authorize-new-applications&quot;&gt;
&lt;strong&gt;How do I authorize new applications under this program?&lt;/strong&gt;
          &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
If you are participating in this program and want to allowlist a new application to make sensitive API calls to the accounts under the protected Google Ads manager account, let us know the Google Cloud project number of the application by &lt;a target=&quot;_blank&quot; href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSe1aPHIGkTaTTe6MSUTXrW0NbEgx_pP3PAePVCJPK5_WldHBg/viewform?usp=header&quot;&gt;filling out the form&lt;/a&gt;. If you don&#39;t have these details, you can reach out to your application developer for this information. Google will make the necessary changes within 10 business days and let you know.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How do I stop participating in this program?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you are participating in this program and want to stop your participation, &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;contact Google Ads API support&lt;/a&gt; using the same email address you used when signing up for this program and let us know the reason why you are opting out of this program. Google will make the necessary changes within 10 business days and let you know.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What happens if I unlink an account from a protected top-level manager account?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you unlink an account from the hierarchy under a protected top-level manager account the account loses the API protection offered under this program.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What happens if I link a new account under a protected top-level manager account?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you link an account under the hierarchy of a protected top-level manager account, the newly linked account will inherit the protection from the top-level manager account. In addition, if a newly linked account has existing applications, but those applications are not already authorized by the manager account, they might fail and may &lt;a target=&quot;_blank&quot; href=&quot;#authorize-new-applications&quot;&gt;need to be authorized&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
If you have more questions about this pilot program, you can &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;contact support&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/08/google-ads-api-pilot-secure-api-access' title='Google Ads API pilot: Secure API Access to your Manager Accounts'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/07/data-manager-api-updates</id>
    <published>2026-07-30T00:00:00Z</published>
    <updated>2026-07-30T00:00:00Z</updated>

    <title type='text'>Data Manager API updates: RemoveAllAudienceMembers method, ingestion field warnings, expanded address data</title>
    <content type='html'>&lt;p&gt;
  The &lt;a href=&quot;//developers.google.com/data-manager/api/reference?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=learnmore-changelog#2026-07-30_v18&quot;&gt;latest release of the Data Manager API&lt;/a&gt;
  introduces features that simplify
  audience management, enhance ingestion workflows with field-level warnings,
  and enable more granular user-provided data for Google Analytics.
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Remove all audience members&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;
  Use the new
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1#google.ads.datamanager.v1.IngestionService.RemoveAllAudienceMembers&quot;&gt;RemoveAllAudienceMembers&lt;/a&gt;
  method to clear all members from specified user lists in a single operation.
  The optional &lt;code&gt;removeAsOfTime&lt;/code&gt; parameter lets you target only those
  members added before a specific timestamp.
&lt;/p&gt;
&lt;p&gt;
  This is particularly useful when you need to perform a full refresh (or
  &quot;replace all&quot;) of your audience data, allowing you to clear the existing list
  and populate it with a new set of users.
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Ingestion field warnings&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;
  Data Manager API ingestion responses now include detailed field-level warnings
  for validation issues on &lt;em&gt;optional&lt;/em&gt; fields. If the API detects
  validation issues with optional fields, your ingestion request will succeed
  and the rest of your ingestion data will still be processed. Validation
  failures for required fields will continue to fail the entire request
  following the
  &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/concepts/understand-errors?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-fastfail#fast-fail&quot;&gt;fast-fail model&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
  If any optional field you provide is invalid, the response from
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#ingesteventsrequest&quot;&gt;IngestEventsRequest&lt;/a&gt;
  or
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#ingestaudiencemembersrequest&quot;&gt;IngestAudienceMembersRequest&lt;/a&gt;
  includes a &lt;code&gt;field_warnings&lt;/code&gt; field with a list of
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#fieldwarning&quot;&gt;FieldWarning&lt;/a&gt;
  objects. Each warning provides a specific reason (&lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#warningreason&quot;&gt;WarningReason&lt;/a&gt;), a descriptive message, and the location of the field in the request where
  the issue occurred.
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Additional address data for Google Analytics events&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;
  You can now provide additional user address information when ingesting events
  to Google Analytics destinations. Along with the &lt;code&gt;given_name&lt;/code&gt;,
  &lt;code&gt;family_name&lt;/code&gt;, &lt;code&gt;region_code&lt;/code&gt;, and
  &lt;code&gt;postal_code&lt;/code&gt; fields,
  &lt;a href=&quot;//developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-refdocs#addressinfo&quot;&gt;AddressInfo&lt;/a&gt;
  resource now supports:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;address_line&lt;/code&gt; (street address)&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;city&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;administrative_area&lt;/code&gt; (state or province)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  Also, you can now use the existing user-provided data (&lt;code&gt;user_data&lt;/code&gt;)
  field to meet the
  &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/send-events#web-data-stream&quot;&gt;Identifiers requirement for multi-source events sent to &lt;b&gt;web&lt;/b&gt; data
    streams&lt;/a&gt;. This gives you another option when you don&#39;t have the
  &lt;code&gt;ad_identifiers.gclid&lt;/code&gt;, &lt;code&gt;user_id&lt;/code&gt;, or
  &lt;code&gt;client_id&lt;/code&gt; for a multi-source event.
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Get started&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    Learn how to implement the new &lt;code&gt;RemoveAllAudienceMembers&lt;/code&gt; method
    for your workflow:
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/audiences/google-ads/customer-match/remove-all-members?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=learnmore-removeall-guide&quot;&gt;Google Ads Customer Match&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/audiences/display-video/customer-match/remove-all-members?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=learnmore-removeall-guide&quot;&gt;Display &amp; Video 360 Customer Match&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    See the
    &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/concepts/understand-errors?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=learnmore-ingestionwarnings-guide#ingestion-warnings&quot;&gt;Ingestion warnings&lt;/a&gt;
    section of the
    &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/concepts/understand-errors?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=learnmore-understanderrors-guide&quot;&gt;Understand API errors&lt;/a&gt;
    guide to learn how to check your responses for warnings.
  &lt;/li&gt;
  &lt;li&gt;
    Start sending events to Google Analytics with the Data Manager API:
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/analytics/recommended-custom-events?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-sendga4events-guide&quot;&gt;Send recommended and custom events&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/devguides/events/analytics/measurement-protocol/upgrade?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-upgrademp-guide&quot;&gt;Upgrade from Measurement Protocol&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=&quot;//developers.google.com/data-manager/api/reference/analytics/recommended-events?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=learnmore-recommendedevents-ref&quot;&gt;Recommended events reference&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;strong&gt;Build faster with AI agent skills: &lt;/strong&gt;We recently introduced new
  Data Manager API agent skills to help you speed up your integrations. Explore
  the new skills in the
  &lt;a href=&quot;https://github.com/google/skills&quot;&gt;Google Skills GitHub repository&lt;/a&gt;
  to get more accurate, efficient guidance directly within your AI-assisted
  coding environment.
&lt;/p&gt;
&lt;p&gt;
  If you have any questions or want to discuss this post, please reach out to us
  on our
  &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;. You can also contact us through the
  &lt;a href=&quot;//developers.google.com/data-manager/api/support/contact?utm_campaign=adr-dm-api-r6&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_content=contact-support&quot;&gt;support page&lt;/a&gt;
  if you have an issue or need help with the API.
&lt;/p&gt;
&lt;p&gt;
  If you&#39;re interested in becoming a data partner, please fill out the
  &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScFEkLVqElsjYJ21h7z0mSUk8Tj1M3TEMwouFPQb7qyM-oI5w/viewform?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-dm-api-r6&amp;utm_content=contact-partner-interest-form&quot;&gt;Partner Interest Form&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/07/data-manager-api-updates' title='Data Manager API updates: RemoveAllAudienceMembers method, ingestion field warnings, expanded address data'/>
    <author><name>Lindsey Volta, on behalf of the Data Manager API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/07/launching-structured-data-files-v101</id>
    <published>2026-07-29T00:00:00Z</published>
    <updated>2026-07-29T00:00:00Z</updated>

    <title type='text'>Launching Structured Data Files v10.1</title>
    <content type='html'>&lt;p&gt;
Today we&#39;re announcing the general availability of &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/format?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-launch-announcment&amp;utm_content=learnmore-refdocs&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-1-launch-announcment&amp;utm_content=learnmore-refdocs#v101&quot;&gt;Structured Data Files v10.1&lt;/a&gt;. All users can now use v10.1 when downloading and uploading SDFs in the Display &amp; Video 360 interface.
&lt;/p&gt;
&lt;p&gt;
SDF v10.1 includes the following changes:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;The ability to specify whether a YouTube video asset identified in a &lt;code&gt;Video ID&lt;/code&gt; or &lt;code&gt;Related Videos&lt;/code&gt; column contains content that was created or edited with AI. Read more about &lt;a href=&quot;//developers.google.com/display-video/api/guides/concepts/structured-data-files/ai-labeling?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-1-launch-announcment&amp;utm_content=learnmore-guide&quot;&gt;AI labeling in ads using SDF&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Support for &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/displayvideo/answer/12488167?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-1-launch-announcment&amp;utm_content=learnmore-hc&quot;&gt;digital out-of-home&lt;/a&gt; Insertion Order and Line Item resources.&lt;/li&gt;
&lt;li&gt;New columns identifying the Display &amp; Video 360 creatives in use by ads and ad groups.&lt;/li&gt;
&lt;li&gt;Updated options for the &lt;code&gt;Inventory Mode&lt;/code&gt; column of Line Item files.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
See the &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/rel-notes?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-launch-announcment&amp;utm_content=learnmore-refdocs&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-1-launch-announcment&amp;utm_content=learnmore-refdocs#version_101&quot;&gt;release notes&lt;/a&gt; for the details on the changes in v10.1. If you are using a version previous to v10, it is now deprecated. Follow the instructions in our &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/v10-migration-guide?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-launch-announcment&amp;utm_content=learnmore-guide&amp;utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-sdf-v10-1-launch-announcment&amp;utm_content=learnmore-guide&quot;&gt;migration guide&lt;/a&gt; to migrate to v10 from any available version.
&lt;/p&gt;
&lt;p&gt;
If you have any questions or want to discuss this post, please reach out to us on our &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/07/launching-structured-data-files-v101' title='Launching Structured Data Files v10.1'/>
    <author><name>Trevor Mulchay, Display &amp; Video 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/07/support-for-ai-content-labeling-using</id>
    <published>2026-07-28T00:00:00Z</published>
    <updated>2026-07-28T00:00:00Z</updated>

    <title type='text'>Support for AI Content Labeling using the Campaign Manager and Display &amp; Video 360 APIs</title>
    <content type='html'>&lt;p&gt;
As the use of AI becomes more prevalent, transparency is key. In the last week, we have launched updates in both the Campaign Manager 360 API and Display &amp; Video 360 API that add new optional fields to resources in both APIs, which allow you to label a creative or creative asset as having been created or edited with AI. Labels will be applied to ads with such assets serving in regions with local AI labeling regulations. As of today, those regions are the European Union (EU), India, and New York state. Read more about AI content labeling at the &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/campaignmanager/answer/17232030?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-hc&quot;&gt;Campaign Manager 360 Help Center&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/displayvideo/answer/17233038?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-hc&quot;&gt;Display &amp; Video 360 Help Center&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In both APIs, this configuration is set using the optional &lt;code&gt;syntheticContentAttestationStatus&lt;/code&gt; field in relevant resources. Setting this field to &lt;code&gt;IS_SYNTHETIC&lt;/code&gt; applies the label in the regions listed above, while setting it to &lt;code&gt;NOT_SYNTHETIC&lt;/code&gt; confirms that the content does not require a label. You can also leave the field unset. A label will not be applied if the field is left unset. However, once the field is set for a resource, it can&#39;t be unset and may only be updated to be either &lt;code&gt;IS_SYNTHETIC&lt;/code&gt; or &lt;code&gt;NOT_SYNTHETIC&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
If you have any questions regarding the Campaign Manager API, contact &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/get-support?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-guide&quot;&gt;Campaign Manager 360 API support&lt;/a&gt;. If you have any questions regarding Display &amp; Video 360 API or Structured Data Files, or want to discuss this post, reach out to us on the &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;#display-video-360-api or #structured-data-files channels&lt;/a&gt; on Discord.
&lt;/p&gt;
&lt;h3&gt;Using Campaign Manager 360 API&lt;/h3&gt;


&lt;p&gt;
In the Campaign Manager 360 API, this configuration is set in &lt;code&gt;&lt;a href=&quot;//developers.google.com/doubleclick-advertisers/rest/v5/creatives?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs#Creative.FIELDS.synthetic_content_attestation_status&quot;&gt;Creative&lt;/a&gt;&lt;/code&gt; resources. The &lt;code&gt;syntheticContentAttestationStatus&lt;/code&gt; field can be set at resource creation using &lt;code&gt;&lt;a href=&quot;//developers.google.com/doubleclick-advertisers/rest/v5/creatives/insert?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;creatives.insert&lt;/a&gt;&lt;/code&gt; or updated for existing resources using &lt;code&gt;&lt;a href=&quot;//developers.google.com/doubleclick-advertisers/rest/v5/creatives/patch?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;creatives.patch&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/doubleclick-advertisers/rest/v5/creatives/update?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;creatives.update&lt;/a&gt;&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
For more information about how synthetic content labels work in Campaign Manager 360 API, see our &lt;a href=&quot;//developers.google.com/doubleclick-advertisers/guides/ai_content_labeling?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-guide&quot;&gt;guide page&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Using Display &amp; Video 360 API&lt;/h3&gt;


&lt;p&gt;
In the Display &amp; Video 360 API, this configuration is set in &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.creatives?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs#Creative.FIELDS.synthetic_content_attestation_status&quot;&gt;Creative&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.adAssets?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs#AdAsset.FIELDS.synthetic_content_attestation_status&quot;&gt;AdAsset&lt;/a&gt;&lt;/code&gt; resources. The &lt;code&gt;syntheticContentAttestationStatus&lt;/code&gt; field can be set at resource creation using &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.creatives/create?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.creatives.create&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.adAssets/create?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.adAssets.create&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.adAssets/bulkCreate?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.adAssets.bulkCreate&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.adAssets/upload?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.adAssets.upload&lt;/a&gt;&lt;/code&gt;. It can also be set or updated for existing resources using &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.creatives/patch?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.creatives.patch&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href=&quot;//developers.google.com/display-video/api/reference/rest/v4/advertisers.adAssets/patch?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;advertisers.adAssets.patch&lt;/a&gt;&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
For more information about how synthetic content labels work in Display &amp; Video 360 API, see our &lt;a href=&quot;//developers.google.com/display-video/api/guides/concepts/campaign-resources/ai-content-labels?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-guide&quot;&gt;guide page&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Using Display &amp; Video 360 Structured Data Files&lt;/h3&gt;


&lt;p&gt;
Starting in &lt;a href=&quot;//developers.google.com/display-video/api/structured-data-file/format?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-joint-ai-content-labeling-announcement&amp;utm_content=learnmore-refdocs&quot;&gt;Structured Data Files&lt;/a&gt; (SDF) v10.1, which is scheduled to launch in the coming weeks, you will be able to add labels when using YouTube videos as video assets in Ad files or as related videos in Line Item files. More details on this implementation will be provided in the upcoming launch announcement of SDF v10.1 and the associated reference documentation.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/07/support-for-ai-content-labeling-using' title='Support for AI Content Labeling using the Campaign Manager and Display &amp; Video 360 APIs'/>
    <author><name>Trevor Mulchay, Display &amp; Video 360 API Team</name></author>
  </entry>
  <entry>
    <id>tag:developers.google.com,2026:ads/blog/posts/2026/07/passkey-authentication-requirement-for</id>
    <published>2026-07-27T00:00:00Z</published>
    <updated>2026-07-27T00:00:00Z</updated>

    <title type='text'>Passkey authentication requirement for the Google Ads API</title>
    <content type='html'>&lt;p&gt;
As part of improving security for Google Ads accounts, the &lt;a href=&quot;//developers.google.com/google-ads/api?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-api&quot;&gt;Google Ads API&lt;/a&gt; will start requiring &lt;a href=&quot;//developers.google.com/google-ads/api/docs/oauth/security-requirements?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-apidocs-authentication#what_are_passkeys&quot;&gt;passkeys for Google Ads API users&lt;/a&gt;. This is part of a broader change in Google Ads that requires &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/16917887&quot;&gt;passkeys to authorize sensitive actions&lt;/a&gt; in your Google Ads account. These important security updates will start rolling out from &lt;strong&gt;August 5, 2026&lt;/strong&gt;, and will be enabled for all users over the next few weeks.
&lt;/p&gt;
&lt;h3&gt;What is changing?&lt;/h3&gt;


&lt;p&gt;
Once this change goes live, users following the &lt;a href=&quot;//developers.google.com/google-ads/api/docs/oauth/user-authentication?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-apidocs-authentication&quot;&gt;user authentication workflow&lt;/a&gt; to generate new OAuth 2.0 refresh tokens for Google Ads API will always be required to authenticate using a passkey. If you haven&#39;t created a passkey, you will be asked to create one, and use it to complete the authentication workflow. Other forms of authentication that use password alone, or 2-factor authentication (2FA) mechanisms such as Time-based One-Time Password (&lt;a target=&quot;_blank&quot; href=&quot;https://en.wikipedia.org/wiki/Time-based_one-time_password&quot;&gt;TOTP&lt;/a&gt;) or SMS-based codes will be disallowed.
&lt;/p&gt;

&lt;p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;600&quot; data-original-height=&quot;970&quot; data-original-width=&quot;560&quot; src=&quot;https://developers.google.com/ads/blog/images/blog_image_072726_2.png&quot;/&gt;&lt;/div&gt;

&lt;/p&gt;

&lt;h3&gt;What action do I need to take?&lt;/h3&gt;


&lt;p&gt;
You may be affected by this change, depending on the authentication workflow that your application uses.
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/oauth/service-accounts?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-apidocs-authentication&quot;&gt;Service account workflow&lt;/a&gt;&lt;/strong&gt;: Service account workflows are not affected by this change, so no action is required. We strongly recommend using service account workflow for applications that require automated or offline workflows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;//developers.google.com/google-ads/api/docs/oauth/user-authentication?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-apidocs-authentication&quot;&gt;User authentication workflow&lt;/a&gt;&lt;/strong&gt;: If your app generates OAuth 2.0 refresh tokens for users, you will be affected as follows: &lt;ul&gt;

 &lt;li&gt;Existing OAuth refresh tokens are not affected by this change. They will continue to work as usual, and you won&#39;t be prompted for reauthorization when obtaining OAuth access tokens.&lt;/li&gt;
 &lt;li&gt;New users will be challenged to authorize with a passkey. A 7-day security delay may apply before a new passkey becomes trusted and operational. To ensure it&#39;s ready for use when you need it, create your passkey at your earliest convenience.&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt; &lt;/ul&gt;

&lt;p&gt;
To set up a passkey,
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;Go to &lt;a target=&quot;_blank&quot; href=&quot;http://g.co/passkeys&quot;&gt;g.co/passkeys&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create a Passkey&lt;/strong&gt; to sign in to the Security Key Manager.&lt;/li&gt;
&lt;li&gt;Create a passkey by following the steps provided by your device.&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;What other platforms are affected by this change?&lt;/h3&gt;

&lt;p&gt;
Google products that use Google Ads API, such as &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/editor/answer/2484521&quot;&gt;Google Ads Editor&lt;/a&gt;, &lt;a href=&quot;//developers.google.com/google-ads/scripts/docs/start?utm_source=googleblog-adsdevs&amp;utm_medium=blog&amp;utm_campaign=adr-adsapi-passkeys-june2026&amp;utm_content=learnmore-scripts&quot;&gt;Google Ads scripts&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://docs.cloud.google.com/bigquery/docs/google-ads-transfer&quot;&gt;BigQuery Data Transfer Service&lt;/a&gt; or &lt;a target=&quot;_blank&quot; href=&quot;https://docs.cloud.google.com/data-studio/connect-to-google-ads&quot;&gt;Data Studio&lt;/a&gt; to manage Google Ads will also start requiring a passkey-based authentication. If you don&#39;t have passkeys enabled, you will be prompted to add one.
&lt;/p&gt;
&lt;p&gt;
To learn more about how to set up passkeys, visit the &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/answer/16917887&quot;&gt;Help Center&lt;/a&gt;. If you encounter issues, you can &lt;a target=&quot;_blank&quot; href=&quot;https://support.google.com/google-ads/contact/google_ads_api&quot;&gt;contact support&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For any questions or further discussion regarding this update, please connect with us on the &lt;a target=&quot;_blank&quot; href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;&quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;</content>

    <link rel='alternate' type='text/html' href='https://developers.google.com/ads/blog/posts/2026/07/passkey-authentication-requirement-for' title='Passkey authentication requirement for the Google Ads API'/>
    <author><name>Anash P. Oommen, Google Ads API Team</name></author>
  </entry>
</feed>
