Category Archives: Ads Developer Blog

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

New data retention policy for Google Ads

Starting November 13th, Google Ads will be implementing a new data retention policy. All account data, including performance metrics, billing information, and historical reports, will now be retained for a period of 11 years.

This means that when querying the Google Ads API using either GoogleAds.Search or GoogleAds.SearchStream you will only be able to retrieve data up to 11 years before the date of your API request and data before that will not be returned.

Required actions

If you need historical data for more than 11 years ago, we recommend you retrieve it and store it before November 13th, 2024.

Otherwise, no action is required on your end. This update will be applied automatically to your account and GoogleAds.Search and GoogleAds.SearchStream continue to work as usual.

However, be aware that you may notice differences in your reporting due to different values being returned.

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

Performance Max Campaign in Detail Placement View

The detail_placement_view can be used to query metrics aggregated by ad group and URL or YouTube video in the Google Ads API. The detail_placement_view is not intended to be used for campaigns with an advertising_channel_type of PERFORMANCE_MAX, as this view is only intended to be used with campaigns containing ad groups, and Performance Max campaigns are constructed with asset groups rather than ad groups. However, this view is currently returning impression data for Performance Max campaigns. The impression metrics returned from the ​​detail_placement_view may not be accurate and should not be relied upon for campaigns with advertising_channel_type of PERFORMANCE_MAX.

In the next release of the Google Ads API, v18, we will be adding a new resource called performance_max_placement_view, which can be used to query placement impression data for Performance Max campaigns, and in a subsequent release, we will stop returning impression data from the ​​detail_placement_view for campaigns with advertising_channel_type of PERFORMANCE_MAX. Once performance_max_placement_view is released, use the data returned from that view for Performance Max campaigns rather than the data returned from the detail_placement_view.

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

Upcoming changes to search and display campaign reporting in the Google Ads API

Starting on October 16, 2024, we will start rolling out changes to search and display reporting. As a result of this change, Google Ads Query Language (GAQL) queries for campaigns with an advertising_channel_type of SEARCH or DISPLAY will return a value of 0 for any metrics in that GAQL query when you include the fields segments.asset_interaction_target.asset or segments.asset_interaction_target.interaction_on_this_asset in the query.

We are making this change now to ensure the accuracy of reporting data in preparation for future launches. If you have any questions or need help, check out the Google Ads API support page for options.

Subscribe to the blog

If you want all new blog posts sent directly to your inbox, we have good news. The blog includes a customizable RSS feed that you can subscribe to with your favorite RSS service. Just paste the URL above into your RSS service and get the blog contents delivered in whatever way you prefer. If you're new to RSS, check out this community resource on GitHub describing how it works and providing a list of well-supported services.

If you want to filter to specific products that interest you, that's possible too. Here are some quick links to the RSS feeds for the products supported by this blog:

Targeting and pacing changes in the Display & Video 360 API and Structured Data Files

In the coming months, the following updates to the Display & Video 360 product might impact your integration with the Display & Video 360 API and Structured Data Files:

For details on how to prepare for each of these changes, read the rest of this blog post and check the Display & Video 360 API Announced Deprecations page.

Changes to content targeting for YouTube & partners line items

On September 30, 2024, the majority of Digital Content Label and Other Content Types exclusion targeting will no longer be available for YouTube & partners line items.

In Display & Video 360 API, all TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION (excluding CONTENT_RATING_TIER_FAMILIES values) and TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION AssignedTargetingOptions will be removed from YouTube & partners line items. This will impact responses from assigned targeting LIST requests and attempts to retrieve these resources using advertisers.lineItems.targetingTypes.assignedTargetingOptions.get will return a 404 error.

In Structured Data Files, Line Item files will no longer use the following values in the “TrueView Category Exclusions Targeting” column:

  • “Embedded Videos”
  • “Live Streaming”
  • “All Audiences”
  • “Younger Teens”
  • “Teens”
  • “Adults”
  • “Not Yet Rated”

Generated files will no longer populate these values in the column. Line Item file entries for YouTube & partners line items using these configurations will fail on upload.

To avoid any interruption of service, remove any impacted targeting from YouTube & partners line items using the UI or Structured Data Files upload.

Sunset of Oracle first- and third-party audiences

On September 30, 2024, first- and third-party audiences sourced from Oracle will sunset. Once sunset, these audiences will be removed from any resource targeting and combined audiences. This update will automatically pause any line items that target only sunset audiences, or negatively target any sunset audiences.

You can identify sunsetting third-party audiences in the UI as third-party audiences from providers “Bluekai”, “Datalogix”, and “AddThis”. If you have an external account link with Oracle to import audiences from their platform, check with your relevant team to identify sunsetting first-party audiences. These audiences can’t be easily identified using the Display & Video 360 API.

In the Display & Video 360 API, TARGETING_TYPE_AUDIENCE_GROUP AssignedTargetingOptions will be updated to remove sunset audiences. Requests to add sunset audiences to resource targeting will return a 400 error.

In Structured Data Files, IDs of sunset audiences will no longer be included in “Audience Targeting - Include” or “Audience Targeting - Exclude” columns in Insertion Order, Line Item, and YouTube Ad Group files, as well as the “Bid Multiplier” column in Line Item files. File entries using sunset audience IDs in these columns will fail on upload.

To avoid any interruption of service, review the audiences used in your resource targeting, identify any Oracle audiences, and remove them. If you cache audience ID, make sure to remove any of these audiences from your cache.

Ineligibility of Optimized Targeting for certain bid strategies

On September 30, 2024, line items using the following bid strategies will no longer be able to use optimized targeting:

  • Maximum views with in-view time over 10 seconds
  • Maximum completed in-view and audible views
  • Maximum viewable impressions
  • Target viewable CPM

At this time, line items that use one of these bid strategies combined with optimized targeting will be updated to turn off optimized targeting.

In the Display & Video 360 API, LineItem resources with targetingExpansion.enableOptimizedTargeting set to True and bidStrategy.maximizeSpendAutoBid.performanceGoalType set to BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA, BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN, or BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED or bidStrategy.performanceGoalAutoBid.performanceGoalType set to BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM will be updated to set targetingExpansion.enableOptimizedTargeting to False. Requests creating or updating LineItem resources with any of these sunset configurations will return a 400 error.

In Structured Data Files, Line Item file entries with either “Optimized vCPM” in the “Bid Strategy Type” column or a combination of “Maximum” in the “Bid Strategy Type” column and “CIVA”, “IVO_TEN”, or “AV_VIEWED” in the “Bid Strategy Unit” column will be updated, if needed, to set the “Optimized Targeting” column to False. Line Item file entries using the sunset configurations will fail on upload.

To avoid any interruption of service, update and verify that your line items using these bid strategies don’t have optimized targeting turned on.

Sunset of “Flight ASAP” pacing for insertion orders

On November 5, 2024, “Flight ASAP” pacing will sunset for insertion orders. All existing Insertion Orders with “Flight ASAP” pacing will be updated to “Flight Ahead” pacing.

In the Display & Video 360 API, InsertionOrder resources with a pacing.pacingPeriod of PACING_PERIOD_FLIGHT and a pacing.pacingType of PACING_TYPE_ASAP will be updated to use a pacing.pacingType of PACING_TYPE_AHEAD. Requests creating or updating InsertionOrder resources with this configuration will return a 400 error.

In Structured Data Files, Insertion Order file entries with “Flight” and “ASAP” values in “Pacing” and “Pacing Rate” columns, respectively, will be updated to an “Ahead” value in the “Pacing Rate” column. Insertion Order file entries using the sunset configuration will fail on upload.

To avoid any interruption of service, update the pacing of any existing insertion orders currently using the “Flight ASAP” configuration.

If you run into issues or have questions about these changes, please contact us using our new Display & Video 360 API Technical support contact form.

Impact of upcoming reporting changes on Bid Manager API

On October 1, 2024, the Anonymous Inventory Modeling (AIM) reporting dimension will sunset and DST/ROC (Regulatory Operating Costs) and Total Media Cost metrics will become incompatible with YouTube reports in Display & Video 360. This will impact the structure of the reports that can be created and run using the Bid Manager API.

The relevant AIM dimension is defined by Filter value FILTER_ANONYMOUS_INVENTORY_MODELING. Once sunset, queries.create and queries.run requests creating and running Query resources with this dimension will return a 400 error.

The relevant cost metrics are defined by any Metric value using the prefix METRIC_TOTAL_MEDIA_COST_ or METRIC_FEE32_. Starting October 1, queries.create and queries.run requests creating and running Query resources of ReportType YOUTUBE that use these metrics will return a 400 error. In the weeks following October 1, we will update existing YouTube queries that use these values to remove the metrics. In place of total cost metrics, we recommend the use of individual media cost metrics instead, which can be added together with other supported fees to calculate the now unavailable total media cost.

To avoid any interruption of service, review your reports to remove the AIM dimension from any existing reports and all relevant cost metrics from any existing YouTube reports.

Read more about these changes on our release notes.

If you run into issues or have questions about these changes, please contact us using our new Bid Manager API Technical support contact form.

Announcing v202408 of the Google Ad Manager API

We're pleased to announce that v202408 of the Google Ad Manager API is available starting today, August 21, 2024. This release brings support for setting contextual targeting with ContentLabelTargeting and VerticalTargeting. It also adds AdsTxtService for reading MCM supply chain diagnostics.

In reporting, the VIDEO_PLACEMENT_NAME dimension has been replaced by the VIDEO_PLCMT_NAME dimension which reflects the updated IAB definition.

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

Authorized Buyers OpenRTB migration reminder, and updates to blocked categories

The Google Real-time Bidding protocol is deprecated and will sunset on February 15th, 2025. As previously announced, Google plans to no longer send bid requests to endpoints configured to use that protocol after it is sunset.

Additionally, starting September 1st, the protocol will enter maintenance mode, and stop receiving non-critical feature and quality of service updates. If your real-time bidding integration uses the deprecated Authorized Buyers RTB protocol, Google strongly recommends that you start migrating to either our JSON or Protobuf OpenRTB implementations in order to continue accessing the latest real-time bidding features, and avoid interruptions on the sunset date.

You can use the OpenRTB migration guide as a reference while you work on your migrations.

The OpenRTB protocol uses IAB Content 1.0 taxonomy rather than Google’s product and sensitive category IDs when describing categories blocked by publishers with BidRequest.bcat. You can use the new detectedCategories field in Real-time Bidding API’s creatives resource to find the detected categories for a given creative in IAB’s taxonomy. Google recommends that you use this to reduce bid filtering by only placing bids with creatives having detected categories that aren’t blocked by the publisher. Learn more about changes related to categories.

If you have questions or feedback about how we can ease your migration, please contact us using the Authorized Buyers support forum, or [email protected].

Google Ads API v15 sunset reminder

Google Ads API v15 will sunset on September 25, 2024. After this date, all v15 API requests will begin to fail. Migrate to a newer version prior to September 25, 2024 to ensure your API access is unaffected.

Here are some resources to help you with the migration: You can view a list of methods and services your project has recently called using the Google Cloud Console:
  1. Open the Dashboard page (found under APIs & Services) in the Google Cloud Console.
  2. Click Google Ads API in the table.
  3. On the METRICS subtab, you should see your recent requests plotted on each graph. At the bottom of the page, the Methods table shows which methods you’ve sent requests to. The method name includes a Google Ads API version, a service, and a method name, such as google.ads.googleads.v15.services.GoogleAdsService.Mutate. In this way, you can see all versions that you’ve used recently.
  4. (Optional) Click the time frame at the top right of the page if you need to change it.
If you have questions while you’re upgrading, reach out to us on the forum or at [email protected].

Improvements to conversion adjustment uploads

Starting on September 9, 2024, Google Ads API users will no longer need to wait 24 hours before uploading conversion adjustments - they can be uploaded immediately after the original conversion has been uploaded or recorded by Google tags.

This means that you will no longer need to keep track of the 24-hour window before uploading conversion adjustments, and can stop checking for certain error codes and retrying those upload requests.

Specifically, the following changes will take effect:

  1. The following error codes will no longer be returned in responses from the UploadConversionAdjustments method, and will no longer be visible in diagnostic reports:
  2. Conversion adjustments that would previously be rejected with these error codes will count towards the pending_count in diagnostics until they’re processed, at which point they’ll be counted towards either the successful_count or failed_count fields. This might take up to 24 hours.

Here is how these changes will affect older Google Ads API versions v15 and v16:

  1. The following error codes will no longer be returned in responses from the UploadConversionAdjustments method, and will no longer be visible in diagnostic reports:
  2. Any conversion that would have triggered these codes will, in diagnostic reports, count towards the total_event_count metric while being processed. Once processing is completed they will be counted towards either the successful_count or failed_count. This might take up to 24 hours.

What do I need to do?

  1. Remove any logic from your application that waits before uploading adjustments, and begin uploading conversion adjustments at any time after the original conversion has been uploaded.
  2. Modify your application logic and business processes so that you are not tracking the two conversion adjustment errors that are being removed.
  3. If you rely on the successful or failed event count metrics, revisit your application logic with the understanding that some uploaded events may, at times, when using v17, be represented as pending.

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