Wednesday, June 5, 2024
Today, we're announcing the v17 release of the [Google Ads API](https://developers.google.com/google-ads/api). To use some of the v17 features, you will need to upgrade your [client libraries](https://developers.google.com/google-ads/api/docs/client-libs.md.txt) and client code. The updated client libraries and code examples will be published next week.  

<br />

[Video](https://www.youtube.com/watch?v=HnGlTkJxjrI)

Here are the highlights:

- To prepare for the [resource usage policy change](https://developers.google.com/ads/blog/posts/2024/05/google-ads-api-resource-usage-policy.md.txt) that will happen on June 17, 2024, we added two new values to [`QuotaError`](https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError), thrown for excessive resource consumption over a period of time by a query pattern for [`GoogleAdsService.Search()`](https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search) and [`GoogleAdsService.SearchStream()`](https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#searchstream) requests.
- The `page_size` field is always set to 10,000, and you can no longer pass a `page_size` to [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search). Doing so will result in a [`RequestError.PAGE_SIZE_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/latest/RequestErrorEnum.RequestError#page_size_not_supported) error.
- Added [`campaign_aggregate_asset_view`](https://developers.google.com/google-ads/api/fields/latest/campaign_aggregate_asset_view) and [`channel_aggregate_asset_view`](https://developers.google.com/google-ads/api/fields/latest/channel_aggregate_asset_view) for reporting more metrics of Performance Max and Search campaigns.
- Changes to [batch processing](https://developers.google.com/google-ads/api/docs/batch-processing/overview.md.txt):
  - Added support for setting [`MutateOperation.asset_group_operation`](https://developers.google.com/google-ads/api/reference/rpc/latest/MutateOperation#asset_group_operation) when using [`BatchJobService`](https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobService). This lets you use [batch processing](https://developers.google.com/google-ads/api/docs/batch-processing/overview.md.txt) to create and manage entire Performance Max campaigns.
  - Added the [`BatchJobError.REQUEST_TOO_LARGE`](https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobErrorEnum.BatchJobError#request_too_large) error for submitting a [`AddBatchJobOperationsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/AddBatchJobOperationsRequest) that is larger than 10,484,504 bytes. You should divide the operations into smaller groups and send them as a separate request.
- Added [`Campaign.keyword_match_type`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#keyword_match_type) to allow setting a keyword match type for all keywords in a campaign.
- Removed `AdService.getAd` to align the service with others in the Google Ads API. For recommendations on how to fetch resources, see [Retrieving objects](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects.md.txt).
- Added `primary_status` and `primary_status_reasons` to [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupCriterion) to show whether the ad group criterion is serving, or the reasons why it's not serving.
- Added a new report [`shopping_product`](https://developers.google.com/google-ads/api/fields/latest/shopping_product), which corresponds to the **Products** page of the Google Ads UI.
- Added more validations for [`ImageAdInfo.image_asset`](https://developers.google.com/google-ads/api/reference/rpc/latest/ImageAdInfo#image_asset) regarding dimensions and format, which makes it more consistent with other image validations in the Google Ads API.
- Added [`segments.sk_ad_network_redistributed_fine_conversion_value`](https://developers.google.com/google-ads/api/fields/latest/segments#segments.sk_ad_network_redistributed_fine_conversion_value), which redistributes `NULL` values to other values based on a machine learning model on recent [SkAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork/) postback data.
- Renamed **Discovery** to **Demand Gen** in all fields, enums, errors of all resources across the Google Ads API.
- You can now select only fields related to *one* [linked product](https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#linked_product) when querying [`product_link`](https://developers.google.com/google-ads/api/fields/latest/product_link). Failing to do so will throw [`QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE`](https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError#prohibited_field_combination_in_select_clause).
- Added [`UserListCustomerTypeService.MutateUserListCustomerTypes()`](https://developers.google.com/google-ads/api/reference/rpc/latest/QueryErrorEnum.QueryError#prohibited_field_combination_in_select_clause) to configure [audience customer types](https://support.google.com/google-ads/answer/14443483). This method replaces the use of `CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings`.
- Added two expiration_date_time fields [`local_services_verification_artifact`](https://developers.google.com/google-ads/api/fields/latest/local_services_verification_artifact) to allow advertisers to better monitor when their artifacts expire.

<br />

**Where can I learn more?**   

The following resources can help you get started:

- [Release Notes](https://developers.google.com/google-ads/api/docs/release-notes.md.txt)
- [Guides](https://developers.google.com/google-ads/api/docs)
- [Reference](https://developers.google.com/google-ads/api/reference/rpc)
- [Diff between v16 and v17](https://developers.google.com/google-ads/api/docs/diff)

<br />

If you have any questions or need additional help, contact us via the [forum](https://groups.google.com/forum/#!forum/adwords-api).  

![Portrait of the author](https://developers.google.com/static/ads/blog/images/photo_1.jpg) - Thanet Knack Praneenararat, on behalf of the Google Ads API Team


**Labels:**

[google-ads-api](https://developers.google.com/ads/blog/feeds/labels/google-ads-api.md.txt),

[release](https://developers.google.com/ads/blog/feeds/labels/release.md.txt)