For archival purposes, so links on this page might not work.

<br />

## v22 major and minor versions

Google Ads API v22 includes the following new features, updates, and breaking changes.

### v22.2 (2026-06-24)

The following new features and updates were added in Google Ads API v22.2. Minor
versions like v22.2 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| General |||
| [`Asset.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/latest/Asset#synthetic_content_info) [`Ad.synthetic_content_info`](https://developers.google.com/google-ads/api/reference/rpc/latest/Ad#synthetic_content_info) | New fields | Contain attestations for synthetic/AI-generated content, split into [`advertiser_attestation`](https://developers.google.com/google-ads/api/reference/rpc/latest/SyntheticContentInfo#advertiser_attestation) (declarations provided directly by the advertiser) and [`system_attestation`](https://developers.google.com/google-ads/api/reference/rpc/latest/SyntheticContentInfo#system_attestation) (attestations automatically detected or provided by Google's systems). To help you plan your upcoming integration work for v25, the interface for mutating advertiser attestation fields is being introduced early for v22 and higher. The interface is visible in these versions, but `synthetic_content_info.advertiser_attestation.status` and `synthetic_content_info.advertiser_attestation.source` will remain immutable for these versions. If you attempt a mutate request on either of these fields, one of these errors will be returned: "The field attempted to be mutated is immutable" or "Field cannot be set". These fields will become fully mutable starting in v25. We recommend using the interface now to build and test your internal logic so your system is ready for full write capabilities when v25 is launched. |
| Multi-party approvals | New features | > [!WARNING] > **Beta:** This feature is currently in beta and is subject to change in future releases. Added support for multi-party approvals (MPA) reviews: - Added the [`MultiPartyAuthReview`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReview) resource and corresponding [`MultiPartyAuthReviewService`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewService). - Added the [`MultiPartyAuthReviewStatus`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewStatusEnum.MultiPartyAuthReviewStatus) enum to track the review status. - Added [`CustomerUserAccess.pending_multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerUserAccess#pending_multi_party_auth_review) to link to a pending review. - Added [`MutateCustomerUserAccessResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerUserAccessResult#multi_party_auth_review) and [`MutateCustomerUserAccessInvitationResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerUserAccessInvitationResult#multi_party_auth_review) to return the associated review resource name. - Added [`MultiPartyAuthReviewError`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewErrorEnum.MultiPartyAuthReviewError) for validation errors. |

### v22.1 (2026-02-25)

The following new feature was added in Google Ads API v22.1. Minor versions like v22.1
don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Account management |||
| [`Customer.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/latest/Customer) | New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an [`EuPoliticalAdvertisingStatus`](https://developers.google.com/google-ads/api/reference/rpc/latest/EuPoliticalAdvertisingStatusEnum.EuPoliticalAdvertisingStatus). |
| Campaigns |||
| `Campaign.missing_eu_political_advertising_declaration` | New field | Supports querying and filtering campaigns that are missing declarations about whether they contain political advertising targeted towards the EU. |

### v22 (2025-10-15)

The following new features, updates, and breaking changes were added in Google Ads API
v22, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Demand Gen ||||
| `BudgetPerDayMinimumErrorDetails.minimum_bugdet_amount_micros` | [`minimum_budget_amount_micros`](https://developers.google.com/google-ads/api/reference/rpc/latest/BudgetPerDayMinimumErrorDetails#minimum_budget_amount_micros) | Rename / spelling fix | Rename references to use the corrected field name. |
| General ||||
| No operations limit in [`AddBatchJobOperations`](https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobService#addbatchjoboperations) | 10,000 operations limit per request | Behavioral shift | Ensure that no single `AddBatchJobOperations` request contains more than 10,000 operations. |
| Silently capped page size at 1,000 in [`ListBatchJobResultsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/ListBatchJobResultsRequest) | Returns `INVALID_PAGE_SIZE` error | Behavioral shift | Ensure `ListBatchJobResultsRequest.page_size` is set to 1,000 or less, as requesting a larger page size will now result in an error. |
| Performance Max ||||
| Asset performance labels | None | Removal | Asset performance labels support and the associated performance label enum have been removed for Performance Max campaigns. Update integrations accordingly. |
| [`Campaign.url_expansion_opt_out`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#url_expansion_opt_out) | `FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION` flag in [`AssetAutomationSetting`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#asset_automation_settings[]) | Removal / replacement | Use the final URL expansion text asset automation setting. The Campaign-level URL expansion opt-out field is removed. |
| Planning ||||
| [`views`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService#views) | [`trueview_views`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService#trueview_views) | Removal / replacement | Replace references to `views` with the new `trueview_views` field in [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService). |
| Videos ||||
| `average_cpv` `video_view_rate` `video_views` `video_view_rate_in_feed` `video_view_rate_in_stream` `video_view_rate_shorts` | [`trueview_average_cpv`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#trueview_average_cpv) [`video_trueview_view_rate`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_trueview_view_rate) [`video_trueview_views`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_trueview_views) [`video_trueview_view_rate_in_feed`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_trueview_view_rate_in_feed) [`video_trueview_view_rate_in_stream`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_trueview_view_rate_in_stream) [`video_trueview_view_rate_shorts`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_trueview_view_rate_shorts) | Renames | Update query strings and integrations to use the new metric names representing TrueView video views. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| Assets |||
| [`AssetFieldType.LANDING_PAGE_PREVIEW`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetFieldTypeEnum.AssetFieldType#landing_page_preview) | New enum value | Added as a new image asset field type. |
| [`AssetGenerationService`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGenerationService) | New service (Beta) | Allows generating text and image assets using generative AI: - [`GenerateText`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGenerationService/GenerateText): Generates text based on final URL, prompts, keywords, etc. - [`GenerateImages`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGenerationService/GenerateImages): Generates images based on final URL, prompts, or recontextualizing product images. - Errors are returned with codes from [`AssetGenerationError`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGenerationErrorEnum.AssetGenerationError). Initially available only to a limited set of closed beta participants. |
| Campaigns |||
| [`AppCampaignBiddingStrategyGoalType`](https://developers.google.com/google-ads/api/reference/rpc/latest/AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType) | New enum values | Added new goals for App campaigns for installs (ACi) to optimize without specifying a target: - `OPTIMIZE_IN_APP_CONVERSIONS_WITHOUT_TARGET_CPA`: Use with standard Maximize Conversions. - `OPTIMIZE_TOTAL_VALUE_WITHOUT_TARGET_ROAS`: Use with standard Maximize Conversion Value. |
| `BiddingStrategyType` | New feature | Added support for the fixed share of voice bidding strategy type. |
| [`Campaign.feed_types`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#feed_types[]) | New field | Shows the types of feeds attached to a campaign. For Performance Max campaigns, this can indicate the business vertical, such as `MERCHANT_CENTER_FEED` for retail. |
| Shared set targeting | New feature | Allowed attaching negative keywords shared sets to multi-channel (for App campaigns) and local campaigns. |
| Demand Gen |||
| TargetCPC bidding | New feature | Added bidding strategy to maximize clicks at target CPC: set campaign-level target CPC using [`Campaign.target_cpc`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#target_cpc) and override at ad group level using [`AdGroup.target_cpc_micros`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup#target_cpc_micros). |
| `AssetAutomationType.GENERATE_DESIGN_VERSIONS_FOR_IMAGES` | New enum value | If enabled for [`DemandGenMultiAssetAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/latest/DemandGenMultiAssetAdInfo), this adds design elements and embeds text assets into image assets to create new image assets with different aspect ratios (enabled by default). |
| `AssetAutomationType.GENERATE_VIDEOS_FROM_OTHER_ASSETS` | New enum value | If enabled for [`DemandGenMultiAssetAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/latest/DemandGenMultiAssetAdInfo), it generates videos using other assets like images and text, which can then be used to create new [`DemandGenVideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/latest/DemandGenVideoResponsiveAdInfo) instances (enabled by default). |
| General |||
| [`ListBatchJobResultsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/ListBatchJobResultsRequest) page size fallback | Behavioral change | If `page_size` is not set or is 0, it now defaults to the maximum of 1,000 (previously returned `INVALID_PAGE_SIZE`). |
| [`QuotaError`](https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError) | New enum value / error | Added `PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED` to indicate when payment profile activation rate limit is exceeded. |
| Performance Max |||
| Asset automation settings | New enum values | Added new PMax asset automation options: - `GENERATE_IMAGE_ENHANCEMENT`: Enables automatic creation of enhanced images (auto-cropping). Enabled by default. - `GENERATE_IMAGE_EXTRACTION`: Sourced images from final URLs. Defaults to account Dynamic Image Extension setting. |
| PMax reporting segments | New segments | Added new segments unique to Performance Max campaigns: - [`ad_using_product_data`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_using_product_data): Indicates if an ad uses Google Merchant Center product data. - [`ad_using_video`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_using_video): Indicates if an ad uses a video asset. |
| Planning |||
| CRM partner data lists | New feature / enum value | Added [`THIRD_PARTY_PARTNER_DATA`](https://developers.google.com/google-ads/api/reference/rpc/latest/UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType#third_party_partner_data) to CRM data sources, along with partner audience validation error codes (such as tos acceptance, Link missing, etc.). |
| Livestream creator metrics | New field | Added [`YouTubeMetrics.is_active_live_stream_creator`](https://developers.google.com/google-ads/api/reference/rpc/latest/YouTubeMetrics#is_active_live_stream_creator), returned by creator insights to indicate if a creator published a livestream in the past 90 days. |
| Plannable CRM source metadata | New message | Added [`PlannableUserListMetadata`](https://developers.google.com/google-ads/api/reference/rpc/latest/PlannableUserListMetadata) inside [`PlannableUserList`](https://developers.google.com/google-ads/api/reference/rpc/latest/PlannableUserList), returned by `ReachPlanService.ListPlannableUserLists`, to show CRM data source types. |
| Support for related videos and creators in TrendInsight | New fields | Added support for [`related_videos`](https://developers.google.com/google-ads/api/reference/rpc/latest/TrendInsight#related_videos[]) and [`related_creators`](https://developers.google.com/google-ads/api/reference/rpc/latest/TrendInsight#related_creators[]) on [`TrendInsight`](https://developers.google.com/google-ads/api/reference/rpc/latest/TrendInsight), and watch properties in [`video_properties`](https://developers.google.com/google-ads/api/reference/rpc/latest/YouTubeVideoAttributeMetadata#video_properties[]) and [`publish_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/YouTubeVideoAttributeMetadata#publish_date). |
| InsightsFinder improvements | New feature | [`GenerateInsightsFinderReport`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService#generateinsightsfinderreport) now supports [`parental_status`](https://developers.google.com/google-ads/api/reference/rpc/latest/InsightsAudience#parental_status), [`income_ranges`](https://developers.google.com/google-ads/api/reference/rpc/latest/InsightsAudience#income_ranges[]), and more complex AND/OR targeting combinations. |
| Reports |||
| New click types | New enum values | Added [`CLICK_TO_MESSAGE_THIRD_PARTY_CLICK`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#click_to_message_third_party_click) and [`CLICK_TO_MESSAGE_LANDING_PAGE_CLICK`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#click_to_message_landing_page_click). |
| AssetGroupAsset segmentation | New segments support | [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupAsset) is now segmentable by [`device`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.device), `conversion_action`, `conversion_action_name`, and [`conversion_action_category`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action_category). |
| RSAs in AdGroupAdAssetView | New feature / metrics support | [`AdGroupAdAssetView`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAdAssetView) now fully supports performance and conversion metrics for [`RESPONSIVE_SEARCH_AD`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdTypeEnum.AdType#responsive_search_ad) (previously only impressions were returned). |
| Exploration query cluster metric segmentations | New segments support | Metrics `clicks_unique_query_clusters`, `conversions_unique_query_clusters`, and `impressions_unique_query_clusters` are now segmentable by date fields. |
| TargetingExpansionView | New reporting resource | Added [`TargetingExpansionView`](https://developers.google.com/google-ads/api/reference/rpc/latest/TargetingExpansionView) to report metrics for expansions over manual targeting, such as keywordless expansion for AI Max for Search Campaigns. |
| Shopping |||
| Shopping scope fix | Bug fix | Fixed the campaign and ad group scoping of metrics in the [`ShoppingProduct`](https://developers.google.com/google-ads/api/reference/rpc/latest/ShoppingProduct) resource. |
| Unified goals |||
| Retention goals | New feature | Added support for customer retention goals to optimize for re-engaging existing customers (e.g., using [`target_option`](https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignGoalSettings.CampaignRetentionGoalSettings#target_option) with [`TARGET_SPECIFIC`](https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerLifecycleOptimizationModeEnum.CustomerLifecycleOptimizationMode#target_specific) or [`TARGET_ALL`](https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerLifecycleOptimizationModeEnum.CustomerLifecycleOptimizationMode#target_all)). |
| Videos |||
| Video watch time metrics | New fields | Added watch time duration metrics: [`video_watch_time_duration_millis`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#video_watch_time_duration_millis) (total duration) and [`average_video_watch_time_duration_millis`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#average_video_watch_time_duration_millis) (average duration per impression). |

<br />

## v21 major and minor versions

Google Ads API v21 includes the following new features, updates, and breaking changes.

### v21.2 (2026-06-24)

The following new features and updates were added in Google Ads API v21.2. Minor
versions like v21.2 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| General |||
| Multi-party approvals | New features | > [!WARNING] > **Beta:** This feature is currently in beta and is subject to change in future releases. Added support for multi-party approvals (MPA) reviews: - Added the [`MultiPartyAuthReview`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReview) resource and corresponding [`MultiPartyAuthReviewService`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewService). - Added the [`MultiPartyAuthReviewStatus`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewStatusEnum.MultiPartyAuthReviewStatus) enum to track the review status. - Added [`CustomerUserAccess.pending_multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerUserAccess#pending_multi_party_auth_review) to link to a pending review. - Added [`MutateCustomerUserAccessResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerUserAccessResult#multi_party_auth_review) and [`MutateCustomerUserAccessInvitationResult.multi_party_auth_review`](https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerUserAccessInvitationResult#multi_party_auth_review) to return the associated review resource name. - Added [`MultiPartyAuthReviewError`](https://developers.google.com/google-ads/api/reference/rpc/latest/MultiPartyAuthReviewErrorEnum.MultiPartyAuthReviewError) for validation errors. |

### v21.1 (2026-02-25)

The following new features and updates were added in Google Ads API v21.1. Minor
versions like v21.1 don't contain breaking changes.

| Features and updates | Type | Description |
|---|---|---|
| Account management |||
| [`Customer.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/latest/Customer) | New field | Retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an [`EuPoliticalAdvertisingStatusEnum`](https://developers.google.com/google-ads/api/reference/rpc/v23/EuPoliticalAdvertisingStatusEnum). |
| Campaigns |||
| `Campaign.missing_eu_political_advertising_declaration` | New field | Supports querying and filtering campaigns that are missing declarations about whether they contain political advertising targeted towards the EU. |

### v21 (2025-08-06)

<br />

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

<br />

The following new features, updates, and breaking changes were added in Google Ads API
v21, which is a major release.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

#### Breaking changes

| Initial state | New state | Change type | Implementation guidance |
|---|---|---|---|
| Campaigns ||||
| Returns [`CriterionError.INVALID_LISTING_GROUP_HIERARCHY`](https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionErrorEnum.CriterionError#invalid_listing_group_hierarchy) | Returns [`CriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionErrorEnum.CriterionError#listing_group_error_in_another_operation) | Error code change | For requests with a partial failure enabled, handle the new error code instead of the original hierarchy error code. |
| Conversions ||||
| Access to `debug_enabled` mode in [`ConversionUploadService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ConversionUploadService) | None | Removal | The `debug_enabled` field is removed. Update code referencing it to not set or query this parameter. |
| EU political advertising changes ||||
| Optional campaign self-declarations for EU political advertising | Required [`contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#contains_eu_political_advertising) field for new campaigns | Validation rule / behavioral shift | API calls to create new campaigns will fail with a [`FieldError.REQUIRED`](https://developers.google.com/google-ads/api/reference/rpc/latest/FieldErrorEnum.FieldError#required) error if this field is not set. Starting September 22, 2025, campaigns declared as `CONTAINS_EU_POLITICAL_ADVERTISING` will no longer serve in the EU. |
| Modifiable criteria without self-declaration | Fails updates with [`CriterionError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionErrorEnum.CriterionError#missing_eu_political_advertising_self_declaration) | Validation rule / behavioral shift | Set the self-declaration status before attempting to create or update campaign- or ad group-level proximity, location, or location group targeting criteria for existing campaigns. |
| Experiments without self-declaration requirements | Fails updates with [`ExperimentError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/ExperimentErrorEnum.ExperimentError#missing_eu_political_advertising_self_declaration) | Validation rule / behavioral shift | Ensure that the self-declarations have been completed on the experiment's campaigns. |
| Performance Max ||||
| [`brand_guidelines_enabled`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#brand_guidelines_enabled) defaults to `false` | Defaults to `true` | Behavioral shift | For new Performance Max campaigns, brand guidelines are enabled by default. Explicitly set the field to `false` if they should be disabled. |
| Planning ||||
| Original input argument type for [`AudienceInsightsService.GenerateTargetingSuggestionMetrics`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService/GenerateTargetingSuggestionMetrics) | Input of type [`InsightsAudience`](https://developers.google.com/google-ads/api/reference/rpc/latest/InsightsAudience) | Type change | Update implementations to pass the new input type which supports an AND-of-ORs combination of user interests, permitting potential reach metrics for custom audience definitions. |

#### Features and updates (non-breaking)

| Features and updates | Type | Description |
|---|---|---|
| AI Max for Search campaigns |||
| [`ai_max_setting.enable_ai_max`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.AiMaxSetting#enable_ai_max) in [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign) | New field | Enables AI Max to expand search term matching (respecting previous text asset automation and brand lists until toggled off). The field [`Campaign.ai_max_setting.bundling_required`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.AiMaxSetting#bundling_required) indicates if AI Max must be enabled to respect/modify those settings, and [`AdGroup.ai_max_ad_group_setting.disable_search_term_matching`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup.AiMaxAdGroupSetting#disable_search_term_matching) can disable matching at the ad group level. See [Unlock next-level performance with AI Max for Search campaigns](https://blog.google/products/ads-commerce/google-ai-max-for-search-campaigns/). |
| [`CampaignError.AI_MAX_MUST_BE_ENABLED`](https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignErrorEnum.CampaignError#ai_max_must_be_enabled) | New enum value / error | Thrown when opting in to URL expansion text asset automation in Search campaigns without enabling AI Max. |
| Ad group level targeting | New feature | Support added in AI Max for Search campaigns for brand lists, locations, and webpages (URL rules) at the ad group level. |
| [`ai_max_search_term_ad_combination_view`](https://developers.google.com/google-ads/api/fields/v26/ai_max_search_term_ad_combination_view) | New reporting resource | Reports performance on combinations of search terms, headlines, and landing pages. |
| [`search_term_match_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.search_term_match_type) segment | New enum value | Added `AI_MAX` as a search term match type option. |
| Assets |||
| [`PromotionAsset`](https://developers.google.com/google-ads/api/reference/rpc/latest/PromotionAsset) | New fields | Added `terms_and_conditions_text`, `terms_and_conditions_uri`, and oneof `promotion_trigger` options (`promotion_barcode_info`, `promotion_qr_code_info`). See [About promotion assets](https://support.google.com/google-ads/answer/7367521). |
| [`AssetAutomationType.FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationTypeEnum.AssetAutomationType#final_url_expansion_text_asset_automation) | New enum value | Added to [`AssetAutomationType`](https://developers.google.com/google-ads/api/reference/rpc/latest/AssetAutomationTypeEnum.AssetAutomationType) to control automated text and landing page generation from final URLs in Search campaigns. |
| [`AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset`](https://developers.google.com/google-ads/api/reference/rpc/latest/AutomaticallyCreatedAssetRemovalService/RemoveCampaignAutomaticallyCreatedAsset) | New service / method | Allows removing automatically created final URL expansion assets from campaigns. |
| [`ServedAssetFieldType.DESCRIPTION_PREFIX`](https://developers.google.com/google-ads/api/reference/rpc/v23/ServedAssetFieldTypeEnum.ServedAssetFieldType) | New enum value | Added to correct a reporting issue where the type was returned as `UNKNOWN` in [`ad_group_ad_asset_combination_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_combination_view). |
| Campaigns |||
| [`CampaignPrimaryStatusReason.MISSING_LOCATION_TARGETING`](https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignPrimaryStatusReasonEnum.CampaignPrimaryStatusReason) | New enum value | Returned when location-restricted campaigns lack location targeting (which now throws [`LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionErrorEnum.CriterionError#location_targeting_not_eligible_for_restricted_campaign) if targeted outside the allowed area). |
| Third-party app analytics integration | New fields | Added support for [`VideoCustomer.third_party_integration_partners`](https://developers.google.com/google-ads/api/reference/rpc/latest/VideoCustomer#third_party_integration_partners) and [`Campaign.third_party_integration_partners`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#third_party_integration_partners). See [Track app conversions with third-party app analytics](https://support.google.com/google-ads/answer/7382633). |
| [`Campaign.advertising_partner_ids`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#third_party_integration_partners) | New field support | The field can now be set for existing campaigns (remains immutable after being set). |
| Manager-level negative placements | New feature | Allows exclusions of placement lists across individual advertiser accounts using `CustomerNegativeCriterion`. |
| Tolerance configurations in target ROAS strategies | New fields | Added support for [`TargetRoas.target_roas_tolerance_percent_millis`](https://developers.google.com/google-ads/api/reference/rpc/latest/TargetRoas#target_roas_tolerance_percent_millis) (for Search campaign portfolio strategies) in [`MaximizeConversionValue`](https://developers.google.com/google-ads/api/reference/rpc/latest/MaximizeConversionValue) and [`TargetRoas`](https://developers.google.com/google-ads/api/reference/rpc/latest/TargetRoas). |
| [`LocationInterestView`](https://developers.google.com/google-ads/api/reference/rpc/latest/LocationInterestView) | New reporting resource | Summarizes performance of ad group location interest criteria. |
| Conversions |||
| [`conversion_attribution_event_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_attribution_event_type) segment | New enum value | Added `ENGAGED_VIEW` to conversion attribution type options. |
| Demand Gen |||
| [`CampaignBudgetError.BUDGET_BELOW_DAILY_MINIMUM`](https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignBudgetErrorEnum.CampaignBudgetError#budget_below_per_day_minimum) | New enum value / error | Added in preparation for enforcing minimum daily budgets for Demand Gen campaigns. Details are exposed using [`budgetDailyMinimumErrorDetails`](https://developers.google.com/google-ads/api/reference/rpc/latest/BudgetPerDayMinimumErrorDetails). |
| Performance Max |||
| [`campaign_search_term_view`](https://developers.google.com/google-ads/api/fields/v26/campaign_search_term_view) | New reporting resource | Aggregates search terms metrics at the campaign level, enabling search term analysis and reporting for Performance Max. |
| Planning |||
| [`ReachPlanService.ListPlannableUserInterests`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService/ListPlannableUserInterests) | New method | Allows discovering plannable affinities and in-market interests for [`generateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService/GenerateReachForecast). |
| [`AdditionalApplicationInfo`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdditionalApplicationInfo) | New field | Added as an optional input in [`ReachPlanService.ListPlannableUserLists`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService/ListPlannableUserLists). |
| AudienceInsights attributes listing | New feature | [`AudienceInsightsService.ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService/ListAudienceInsightsAttributes) now fetches available 1P user lists. |
| AudienceCompositionInsights targeting CRM lists | New feature | [`AudienceInsightsService.GenerateAudienceCompositionInsights`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService/GenerateAudienceCompositionInsights) now returns user list index details for [`AudienceInsightsDimension`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsDimensionEnum.AudienceInsightsDimension) dimensions: `AGE_RANGE`, `GENDER`, `AFFINITY_USER_INTEREST`, and `IN_MARKET_USER_INTEREST`. |
| [`TrendInsightMetrics`](https://developers.google.com/google-ads/api/reference/rpc/latest/TrendInsightMetrics) audience share | New field | Represents the share of an audience for a trend. |
| [`KnowledgeGraphAttributeMetadata`](https://developers.google.com/google-ads/api/reference/rpc/latest/KnowledgeGraphAttributeMetadata) categories | New fields | Filters Knowledge Graph attributes by matching categories. |
| Reports |||
| Asset views metrics | New features / metrics | Added multiple new metrics to [`AssetGroupAsset`](https://developers.google.com/google-ads/api/fields/v26/asset_group_asset), [`ChannelAggregateAssetView`](https://developers.google.com/google-ads/api/fields/v26/channel_aggregate_asset_view), and [`CampaignAggregateAssetView`](https://developers.google.com/google-ads/api/fields/v26/campaign_aggregate_asset_view). PMax campaigns also now report true values for `impressions`. |
| Selector extensions | New feature | Made [`AssetSet`](https://developers.google.com/google-ads/api/fields/v26/asset_set) and [`CampaignAssetSet`](https://developers.google.com/google-ads/api/fields/v26/campaign_asset_set) queryable together inside [`ChangeStatus`](https://developers.google.com/google-ads/api/fields/v26/change_status). |
| [`search_term_targeting_status`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.search_term_targeting_status) | New segment | Selectable segment in the campaign search term view. |
| [`final_url_expansion_asset_view`](https://developers.google.com/google-ads/api/fields/v26/final_url_expansion_asset_view) | New reporting resource | Reports final URL expansion asset performance details. |
| AssetGroup value adjustments | New fields | Added support for `value_adjustment` and `all_value_adjustment` metrics in the `AssetGroup` report. |
| [`landing_page_source`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.landing_page_source) | New segment | Provides a landing page source segment in [`landing_page_view`](https://developers.google.com/google-ads/api/fields/v26/landing_page_view). |
| [`search_term_match_source`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.search_term_match_source) | New segment | Selectable segment in the search term and campaign search term views. |
| [`match_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.match_type) | New segment | Selectable segment key in the keyword view. |
| Unique query intent clusters reporting | New fields | Added [`clicks_unique_query_clusters`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.clicks_unique_query_clusters), [`conversions_unique_query_clusters`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.conversions_unique_query_clusters), and [`impressions_unique_query_clusters`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.impressions_unique_query_clusters) to report unique query intent clusters. |
| [`ClickType.VEHICLE_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#vehicle_assets) | New enum value | Track and report clicks related specifically to vehicle ad formats in the `click_view` report. |
| Smart Bidding Exploration |||
| tolerance configurations in Search strategies | New fields / settings | Allows enabling Smart Bidding Exploration on Search campaigns by setting `target_roas_tolerance_percent_millis` between 10,000 (10%) and 30,000 (30%) inclusive (Maximize Conversions requires `target_roas` setting). See our blog post on [Smart Bidding Exploration](https://blog.google/products/ads-commerce/smart-bidding-exploration-ai/) and help center [article](https://support.google.com/google-ads/answer/15489627). |
| diversity reporting compatibility | New feature | Aggregated [diversity reporting](https://support.google.com/google-ads/answer/16294226) is now supported for the following metrics for unique query intent clusters. A time segmented view is available in the Google Ads UI: - `clicks_unique_query_clusters` - `conversions_unique_query_clusters` - `impressions_unique_query_clusters` |
| Videos |||
| [`YouTubeVideoListAsset`](https://developers.google.com/google-ads/api/reference/rpc/latest/YouTubeVideoListAsset) | New resource / field | Allows establishing links between campaigns and video list assets using [`Asset.youtube_video_list_asset`](https://developers.google.com/google-ads/api/reference/rpc/latest/Asset#youtube_video_list_asset). See [Use related videos](https://support.google.com/google-ads/answer/10464812). |
| Insights metadata extensions | New fields | Added new metadata to [`YouTubeChannelInsights`](https://developers.google.com/google-ads/api/reference/rpc/v23/YouTubeChannelInsights) and [`YouTubeVideoAttributeMetadata`](https://developers.google.com/google-ads/api/reference/rpc/latest/YouTubeVideoAttributeMetadata). |
| Interactive click types | New enum values | Added click types: [`VIDEO_RELATED_VIDEOS_CLICK`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#video_related_videos_click), [`VIDEO_CHANNEL_CLICK`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#video_channel_click), and [`PRODUCT_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#product_assets). |
| [`VideoAdInventoryControl.allow_non_skippable_in_stream`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.VideoCampaignSettings.VideoAdInventoryControl) | New field | Lets Video Responsive ads serve as non-skippable in-stream ads for campaigns mixing skip and non-skip formats. |
| Video sequencing settings | New fields | Added read-only sequencing configurations: [`Campaign.VideoCampaignSettings.video_ad_sequence`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.VideoCampaignSettings#video_ad_sequence) and [`VideoAdSequenceStepSetting`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup.VideoAdGroupSettings.VideoAdSequenceStepSetting). See [About video ad sequencing](https://support.google.com/google-ads/answer/9161595). |
| Video lineup targeting | New criterion type / field | Added `VIDEO_LINEUP` criterion type and corresponding field in [`CampaignCriterion`](https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion) and [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v23/AdGroupCriterion). This feature is only available to accounts on the allowlist. |
| Content suitability placements views | New reporting resources | Added a Content Suitability report for both detail ([`detail_content_suitability_placement_view`](https://developers.google.com/google-ads/api/fields/v26/detail_content_suitability_placement_view)) and group ([`group_content_suitability_placement_view`](https://developers.google.com/google-ads/api/fields/v26/group_content_suitability_placement_view)) levels. See [About the 'Content suitability' report](https://support.google.com/google-ads/answer/16105206). |

## v20.2 (2026-02-25)

The following new feature was added in v20.2.

### Account management

- Added the `contains_eu_political_advertising` field to the [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/latest/Customer) resource. This field retrieves the account-level declaration status of whether it contains political advertising targeted towards the EU, and returns an [`EuPoliticalAdvertisingStatusEnum`](https://developers.google.com/google-ads/api/reference/rpc/v23/EuPoliticalAdvertisingStatusEnum).

### Campaigns

- Added `Campaign.missing_eu_political_advertising_declaration` to support querying and filtering campaigns that are missing declarations about whether they contain political advertising targeted towards the EU.

## v20.1 (2025-08-06)

These EU political advertising changes have also been made in the [v19.2](https://developers.google.com/google-ads/api/docs/archived-release-notes#v192_2025-08-06)
and [v21](https://developers.google.com/google-ads/api/docs/archived-release-notes#v21_2025-08-06) releases.

### EU political advertising changes

- Added [`Campaign.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#contains_eu_political_advertising). This field
  indicates whether your campaign contains political advertising content
  targeted towards the European Union. If this field is set to
  `CONTAINS_EU_POLITICAL_ADVERTISING`, the campaign will no longer serve in
  the EU starting September 22, 2025.

  For any existing campaigns, you should set the
  `contains_eu_political_advertising` field before attempting to change
  proximity, location, or location group targeting either at the campaign or
  ad group levels. The API calls to create or update these campaign or ad
  group criteria for existing campaigns will fail with a
  [`CriterionError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionErrorEnum.CriterionError#missing_eu_political_advertising_self_declaration)
  error if the campaign hasn't completed the self-declaration.

  For versions v19.x and 20.x, the requirement to set this field is not yet
  enforced, but will be in the future. This change will be announced in
  advance.
- Trials and Experiments will throw an
  [`ExperimentError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/latest/ExperimentErrorEnum.ExperimentError#missing_eu_political_advertising_self_declaration)
  if the experiment's campaigns haven't self-declared whether they contain
  political advertising that targets the European Union.

## v20 (2025-06-04)

The following new features and updates were added in v20.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

### Assets

Added several new metrics and segment columns for the [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group)
report.

**Metrics columns**

- [`new_customer_lifetime_value`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#new_customer_lifetime_value)
- [`all_new_customer_lifetime_value`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#all_new_customer_lifetime_value)
- [`conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#conversions_by_conversion_date)
- [`all_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#all_conversions_by_conversion_date)
- [`conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#conversions_value_by_conversion_date)
- [`all_conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#all_conversions_value_by_conversion_date)
- [`value_per_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#value_per_conversions_by_conversion_date)
- [`value_per_all_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#value_per_all_conversions_by_conversion_date)

**Segment columns**

- [`ad_network_type`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#ad_network_type)
- [`conversion_action`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_action)
- [`conversion_action_name`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_action_name)
- [`conversion_action_category`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_action_category)
- [`external_conversion_source`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#external_conversion_source)
- [`conversion_attribution_event_type`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_attribution_event_type)
- [`conversion_adjustment`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_adjustment)
- [`conversion_lag_bucket`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_lag_bucket)
- [`conversion_or_adjustment_lag_bucket`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#conversion_or_adjustment_lag_bucket)
- [`new_versus_returning_customers`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#new_versus_returning_customers)
- [`device`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#device)
- [`slot`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#slot)

### Campaigns

- Added support for adding and updating [campaign-level negative keywords](https://support.google.com/google-ads/answer/15726455) for Performance Max campaigns.

### Conversions

- You can now update the [`google_ads_conversion_customer`](https://developers.google.com/google-ads/api/reference/rpc/latest/ConversionTrackingSetting#google_ads_conversion_customer) field on an
  existing customer to opt in to cross-account conversion tracking, or to
  change its existing conversion tracking parent to a different manager
  account.

  > [!NOTE]
  > **Note:** This feature is behind a closed allowlist. To use it, contact your account manager.

- Added the [`ClickConversion.user_ip_address`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickConversion#user_ip_address) field. Google Ads does not
  support IP address matching for end users in the European Economic Area
  (EEA), United Kingdom (UK), or Switzerland (CH).
  Please add logic to conditionally exclude
  sharing IP addresses from users from these regions. Make sure that you
  provide users with clear and comprehensive information about the data you
  collect on your sites, apps, and other properties and get consent where
  required by law or any applicable Google policies. See the [About offline
  conversion imports](https://support.google.com/google-ads/answer/2998031) page for more details.

### Demand Gen

- Added new values to the [`ad_network_type`](https://developers.google.com/google-ads/api/reference/rpc/latest/Segments#ad_network_type) segment that allow segmenting Demand Gen campaigns by channel:
  - `MAPS`
  - `GMAIL`
  - `DISCOVER`
- Added metrics for platform-comparable conversions:
  - [`platform_comparable_conversions_from_interactions_rate`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_from_interactions_rate)
  - [`platform_comparable_conversions`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions)
  - [`platform_comparable_conversions_value`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_value)
  - [`platform_comparable_conversions_value_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_value_per_cost)
  - [`platform_comparable_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_by_conversion_date)
  - [`platform_comparable_conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_value_by_conversion_date)
  - [`platform_comparable_conversions_from_interactions_value_per_interaction`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#platform_comparable_conversions_from_interactions_value_per_interaction)
    - [`cost_per_platform_comparable_conversion`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#cost_per_platform_comparable_conversion)
  - [`value_per_platform_comparable_conversion`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#value_per_platform_comparable_conversion)
  - [`value_per_platform_comparable_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#value_per_platform_comparable_conversions_by_conversion_date)
  - [`cost_converted_currency_per_platform_comparable_conversion`](https://developers.google.com/google-ads/api/reference/rpc/latest/Metrics#cost_converted_currency_per_platform_comparable_conversion)

### Recommendations

- Added support for `ShoppingSetting` during campaign construction when using [`GenerateRecommendationsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateRecommendationsRequest).
  - Added the `merchant_center_account_id` field to [`GenerateRecommendationsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateRecommendationsRequest) to indicate when recommendations should be generated for retail, rather than the standard Performance Max campaigns.

### Planning

- Added [`AudienceInsightsDimension.YOUTUBE_LINEUP`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsDimensionEnum.AudienceInsightsDimension#youtube_lineup) to replace `AudienceInsightsDimension.YOUTUBE_DYNAMIC_LINEUP` in [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService) and [`ContentCreatorInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ContentCreatorInsightsService). This new dimension lets you retrieve insights and metadata for YouTube Select (YTS) Lineups. Replaced objects associated with `YOUTUBE_DYNAMIC_LINEUP` such as `DynamicLineupAttributeMetadata` and the `AudienceInsightsDynamicLineup` to align with the broader removal of Dynamic Lineups across Google Ads. [This feature](https://developers.google.com/google-ads/api/docs/insights/audience-insights) is only available to accounts on an allowlist.
- Added `AdditionalApplicationInfo` and `ApplicationInstance` in the [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService), [`ContentCreatorInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ContentCreatorInsightsService), and [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService). This feature is only available to accounts on an allowlist.
- Updated [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsService) and [`ContentCreatorInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ContentCreatorInsightsService) to provide more detailed insights. You can now segment content creator data by device using the new [`AudienceInsightsDimension.DEVICE`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsDimensionEnum.AudienceInsightsDimension#device) and [`AudienceInsightsAttribute.device`](https://developers.google.com/google-ads/api/reference/rpc/latest/AudienceInsightsAttribute#device) in both services. [This feature](https://developers.google.com/google-ads/api/docs/insights/audience-insights) is only available to accounts on an allowlist.
- Added additional aggregated video metrics to [`GenerateCreatorInsightsResponse`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateCreatorInsightsResponse) for more comprehensive content creator analysis: `engagement_rate`, `average_views_per_video`, `average_likes_per_video`, `average_shares_per_video`, `average_comments_per_video`, `shorts_views_count`, `shorts_video_count`, and `is_brand_connect_creator`. [This feature](https://developers.google.com/google-ads/api/docs/insights/creator-insights) is only available to accounts on an allowlist.
- Added [`sub_country_locations`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateCreatorInsightsRequest#sub_country_locations%5B%5D) to [`GenerateCreatorInsightsRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateCreatorInsightsRequest) for the [`ContentCreatorInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/latest/ContentCreatorInsightsService). This allows specifying sub-country geographic locations to refine searches for creator insights. The `sub_country_locations` field is only supported when using the `search_attributes` oneof in the `criteria` field. If `sub_country_locations` are provided with other criteria types, the request will be invalid. This enables more granular geographical targeting and analysis for content creator insights. [This feature](https://developers.google.com/google-ads/api/docs/insights/creator-insights) is only available to accounts on an allowlist.
- Added [`ReachPlanService.ListPlannableUserLists`](https://developers.google.com/google-ads/api/reference/rpc/latest/ReachPlanService/ListPlannableUserLists), which returns first-party user lists owned by a customer, and added `UserListInfo` to the audience targeting options in [`GenerateReachForecastRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateReachForecastRequest). This lets you retrieve plannable user lists for a given customer and then generate reach forecasts for campaigns targeting those specific audiences. These enhancements improve tailored reach planning by incorporating your first-party audience data directly into forecasting. [Reach forecasting](https://developers.google.com/google-ads/api/docs/%7B#%7D%0A/google-ads/api/docs/reach-forecasting) is available to allowlisted accounts only.

### Videos

- Added [`AdFormatType.PAUSE`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdFormatTypeEnum.AdFormatType#pause) ads served on organic YouTube videos on TV screens, which is included in reporting. These ads are displayed directly next to the static video frame on the pause screen. This does not include Demand Gen video ads displayed on the ad panel below or on top of a paused organic video, which are reported under [`AdFormatType.INFEED`](https://developers.google.com/google-ads/api/reference/rpc/latest/AdFormatTypeEnum.AdFormatType#infeed).

## v19.2 (2025-08-06)

These EU political advertising changes have also been made in the
[v20.1](https://developers.google.com/google-ads/api/docs/archived-release-notes#v201-2025-08-06) and [v21](https://developers.google.com/google-ads/api/docs/archived-release-notes#v21_2025-08-06) releases.

### EU political advertising changes

- Added [`Campaign.contains_eu_political_advertising`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#contains_eu_political_advertising).
  This field indicates whether your campaign contains political advertising
  content targeted towards the European Union. If this field is set to
  `CONTAINS_EU_POLITICAL_ADVERTISING`, the campaign will no longer serve in
  the EU starting September 22, 2025.

  For any existing campaigns, you should set the
  `contains_eu_political_advertising` field before attempting to change
  proximity, location, or location group targeting either at the campaign or
  ad group levels. The API calls to create or update these campaign or
  ad group criteria for existing campaigns will fail with a
  [`CriterionError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#missing_eu_political_advertising_self_declaration)
  error if the campaign hasn't completed the self-declaration.

  For versions v19.x and 20.x, the requirement to set this field is not yet
  enforced, but will be in the future. Wait for the announcement of this
  change.
- Trials and Experiments will throw an
  [`ExperimentError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentErrorEnum.ExperimentError#missing_eu_political_advertising_self_declaration)
  if the experiment's campaigns haven't self-declared whether they contain political
  advertising that targets the European Union.

## v19.1 (2025-04-16)

The following features and changes were added in v19.1.

### Assets

- Added an [`asset_coverage`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#asset_coverage) field for [`AssetGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup) that returns information about [gaps in your asset group](https://support.google.com/google-ads/answer/15610884).
  - Contains a subfield [`ad_strength_action_items`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetCoverage#ad_strength_action_items%5B%5D) which returns a list of actions that an advertiser can take to improve the ad strength of an asset group.

### Campaigns

- You can now rate or provide feedback for leads in [Local Service Campaigns](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns). As part of this change, v19.1
  - Added a new service named [`LocalServicesLeadService`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService). You can use the [`ProvideLeadFeedback`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService/ProvideLeadFeedback) method to upload rating and feedback for leads.
  - Added a new field named [`lead_feedback_submitted`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead#lead_feedback_submitted) to [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead) to help determine if feedback was submitted to a lead.
- Added a new metric column [`biddable_cohort_app_post_install_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#biddable_cohort_app_post_install_conversions) for App campaigns.

### Demand Gen

- Additional methods were introduced in the [Planning services](https://developers.google.com/google-ads/api/docs/archived-release-notes#planning_services) to support Demand Gen.
- Added support for AdGroup-level
  [Channel Controls for Demand Gen campaigns](https://support.google.com/google-ads/answer/15973205).
  You can select a predefined general grouping of channels, or a subset of
  channels using the
  [`demand_gen_ad_group_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#demand_gen_ad_group_settings)
  field. The following
  [channels are supported](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup.DemandGenAdGroupSettings.DemandGenChannelControls.DemandGenSelectedChannels)
  in the current release:

  - YouTube In-Stream
  - YouTube In-Feed
  - YouTube Shorts
  - Discover
  - Gmail
  - Display
- Exposed a new asset type for
  [`TALL_PORTRAIT_MARKETING_IMAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#tall_portrait_marketing_image).
  This asset type relates to the
  [`tall_portrait_marketing_images`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenMultiAssetAdInfo#tall_portrait_marketing_images%5B%5D)
  field of the
  [Demand Gen Multi Asset Ad format](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#demand_gen_multi_asset_ad).

### Change history

- Added support for three more resource types into [ChangeStatusResourceType](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum.ChangeStatusResourceType):
  - `CAMPAIGN_BUDGET`
  - `ASSET_SET`
  - `CAMPAIGN_ASSET_SET`
- You can retrieve these three finer-grained types from the [`change_status`](https://developers.google.com/google-ads/api/fields/v26/change_status) report.

### Conversions

- You can now set the
  [`google_ads_conversion_customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#google_ads_conversion_customer)
  field while
  [creating a new customer](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService/CreateCustomerClient)
  using the Google Ads API. This was previously a read-only field.

  **NOTE:** This feature is behind a closed allowlist. To use it, contact your
  account manager.

  > [!NOTE]
  > **Note:** This feature is behind a closed allowlist. To use it, contact your account manager.

- You can now specify the
  [type of the customer](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#customer_type) associated
  with the conversion when uploading offline conversions.

- A new [`session_attributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#session_attributes)
  field was introduced for [`ClickConversion`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion).

### Local Services Ads

- Added a new RPC [`ProvideLeadFeedback`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService/ProvideLeadFeedback) to [`LocalServicesLeadService`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService) to provide feedback on the quality of [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead).
- Added a new field `lead_feedback_submitted` to the `LocalServicesLead` resource that confirms if feedback was provided for a specific resource.

### Planning services

- Added support for Target frequency monthly forecasts in [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/GenerateReachForecast).
  - Developers can set [`TargetFrequencyTimeUnit.MONTHLY`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetFrequencyTimeUnitEnum.TargetFrequencyTimeUnit) in [`TargetFrequencySettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetFrequencySettings) when using the `TARGET_FREQUENCY` plannable product code to generate a Target frequency monthly reach forecast.
- Added a new method [`ReachPlanService.GenerateConversionRates`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/GenerateConversionRates), which allows advertisers to request suggested conversion rates for supported plannable products.
- Demand Gen forecasting in [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/GenerateReachForecast):
  - Developers can now request reach forecasts for Demand Gen campaigns. Developers can use the new `DEMAND_GEN_MAX_CONVERSIONS` plannable product code to generate Demand Gen reach forecasts.
  - Added a new [`conversion_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProduct#conversion_rate) field that allows developers requesting Demand Gen reach forecasts to provide a conversion rate. Suggested conversion rates can be retrieved using the new [`ReachPlanService.GenerateConversionRates`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService/GenerateConversionRates) method. This field is required for Demand Gen forecasting requests. It is not supported for other plannable products.
  - Added a new [`conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#conversions) field to returned forecasts. This field contains the number of conversions at a given point on the reach curve. Conversions are only supported for the `DEMAND_GEN_MAX_CONVERSIONS` plannable product.

### Recommendations

- The new [`ad_strength`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ImprovePerformanceMaxAdStrengthRecommendation#ad_strength)
  field is available for
  [`ImprovePerformanceMaxAdStrengthRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ImprovePerformanceMaxAdStrengthRecommendation),
  which returns the current ad strength score of the asset group associated with
  the recommendation.

  <br />

  ### Shopping

- You can now override brand exclusions for Shopping ads in Performance Max
  campaigns. This is exposed through a new
  [`pmax_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#pmax_campaign_settings) field
  at the campaign level, and it works only for
  [PMax campaigns for Retail](https://developers.google.com/google-ads/api/performance-max/retail).
  A new
  [`CampaignError.BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#brand_targeting_overrides_not_supported)
  error will be thrown if you attempt to set this field for an incompatible
  campaign type.

### Videos

- Added read-only support for Audio Ads. See [Google Ads Help Center](https://support.google.com/google-ads/answer/10227746) to learn about this feature. This change exposes:
  - A new `AdvertisingChannelSubType` named [`YOUTUBE_AUDIO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType#youtube_audio).
  - A new `AdGroupType` named [`YOUTUBE_AUDIO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#youtube_audio).
  - A new ad format enumeration named [`YOUTUBE_AUDIO_AD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#youtube_audio_ad), and its corresponding [`YouTubeAudioAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoAdInfo#audio) fields.
- Added new metrics and segments to [query reach metrics](https://support.google.com/google-ads/answer/2472714) with demo adjustment. As part of these changes,
  - Two new metrics columns named [`coviewed_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#coviewed_impressions) and [`primary_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#primary_impressions) were introduced.
  - Two new segments named [`adjusted_age_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#adjusted_age_range) and [`adjusted_gender`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#adjusted_gender) were introduced.
  - If either of the two new segments are selected alongside a reach metric field (`coviewed_impressions`, `primary_impressions`, `unique_users`, or `average_impression_frequency_per_user`), the other segment must be selected as well to retrieve valid stats for these columns.
  - This feature is currently available only for allowlisted customers.

## v19 (2025-02-26)

The following features and changes were added in v19.

See [Upgrade to the latest version](https://developers.google.com/google-ads/api/docs/upgrade) for guidance.

### Account management

- Added the following values to [`CustomerError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerErrorEnum.CustomerError) to account for upcoming changes:
  - `CREATION_DENIED_FOR_POLICY_VIOLATION`
  - `CREATION_DENIED_INELIGIBLE_MCC`

### Ads

- Added [`DemandGenMultiAssetAdInfo.tall_portrait_marketing_images`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenMultiAssetAdInfo#tall_portrait_marketing_images%5B%5D) to support portrait image assets with aspect ratio 9:16 in Demand Gen ads.

### Assets

- (For allowlisted accounts only) Added support for [message assets](https://support.google.com/google-ads/answer/14888522) through [`Asset.business_message_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#business_message_asset), [`BusinessMessageAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageAsset) and the following enums and errors.
  - Enums:
    - [`AssetFieldType.BUSINESS_MESSAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_message)
    - [`AssetType.BUSINESS_MESSAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType#business_message)
    - [`BusinessMessageCallToActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageCallToActionTypeEnum.BusinessMessageCallToActionType)
    - [`BusinessMessageProvider`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessMessageProviderEnum.BusinessMessageProvider)

  <!-- -->

  - Errors:
    - [`AssetError.CUSTOMER_NOT_ON_ALLOWLIST_FOR_WHATSAPP_MESSAGE_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError#customer_not_on_allowlist_for_whatsapp_message_assets)
    - [`ResourceLimitType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType)
      - [`BUSINESS_MESSAGE_ASSET_LINKS_PER_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType#business_message_asset_links_per_customer)
      - [`WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType#whatsapp_business_message_asset_links_per_campaign)
      - [`WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_AD_GROUP`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType#whatsapp_business_message_asset_links_per_ad_group)
- Added [`AssetAutomationType.GENERATE_LANDING_PAGE_PREVIEW`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType#generate_landing_page_preview) to support automatically generating a landing page preview.
- [`AssetAutomationType.GENERATE_SHORTER_YOUTUBE_VIDEOS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType#generate_shorter_youtube_videos) is now opted-in by default for [Demand Gen video responsive ads](https://developers.google.com/google-ads/api/docs/demand-gen/create-campaign#create_assets_and_ads).
- (For allowlisted accounts only; allowlist is currently closed) Added [`Asset.app_deep_link_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#app_deep_link_asset) and [`AppDeepLinkAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AppDeepLinkAsset).

### Conversions

- Conversion goals
  - [`LifecycleGoalValueSettings.high_lifetime_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/LifecycleGoalValueSettings#high_lifetime_value) is out of beta and now mutable.
  - Added [`CustomerLifecycleGoal.owner_customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleGoal#owner_customer) to show the resource name of the customer which owns the customer lifecycle goal.
- Deprecated `ConversionActionType.SALESFORCE`.

### Feeds

- Removed all feed-related entities, such as `Feed`, `FeedMapping`, `FeedService`, `AdGroupFeed`, `feed_placeholder_view`, etc. Users should now use [`assets`](https://developers.google.com/google-ads/api/docs/assets/overview) to achieve the same purpose.

### Hotel and travel

- Made `min_days` and `max_days` of [`ValueRuleItineraryAdvanceBookingWindow`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRule.ValueRuleItineraryAdvanceBookingWindow) an [`optional`](https://protobuf.dev/programming-guides/proto3/#field-labels) field to allow specifying 0 as a value. This supports targeting for travel searches that happen today.

### Performance Max

- (For allowlisted accounts only) Brand guidelines
  - Made [`Campaign.brand_guidelines_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#brand_guidelines_enabled) mutable only when creating a Performance Max campaign.
  - This is *incompatible* with [Performance Max for travel goals](https://developers.google.com/google-ads/api/performance-max/travel-goals).
  - To enable brand guidelines for existing Performance Max campaigns, use a newly added [`CampaignService.EnablePMaxBrandGuidelines`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService/EnablePMaxBrandGuidelines). Disabling brand guidelines is not supported.
  - Added [`Campaign.brand_guidelines`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#brand_guidelines) and [`BrandGuidelines`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.BrandGuidelines) to allow setting the brand's colors and font family.
  - New error values:
    - [`BatchJobError.CAMPAIGN_AND_CAMPAIGN_ASSET_TRANSACTION_FAILURE`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobErrorEnum.BatchJobError#campaign_and_campaign_asset_transaction_failure)
    - [`BrandGuidelinesMigrationError`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandGuidelinesMigrationErrorEnum.BrandGuidelinesMigrationError)
      - `BRAND_GUIDELINES_ALREADY_ENABLED`
      - `CANNOT_ENABLE_BRAND_GUIDELINES_FOR_REMOVED_CAMPAIGN`
      - `BRAND_GUIDELINES_LOGO_LIMIT_EXCEEDED`
      - `CANNOT_AUTO_POPULATE_BRAND_ASSETS_WHEN_BRAND_ASSETS_PROVIDED`
      - `AUTO_POPULATE_BRAND_ASSETS_REQUIRED_WHEN_BRAND_ASSETS_OMITTED`
      - `TOO_MANY_ENABLE_OPERATIONS`
  - [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError)
  - `BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN`
  - `BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED`
  - `BRAND_GUIDELINES_COLOR_INVALID_FORMAT`
  - `BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY`
  - `BRAND_GUIDELINES_UNSUPPORTED_CHANNEL`
  - `CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS`
  - `CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES`
- Added [`AssetAutomationType.GENERATE_ENHANCED_YOUTUBE_VIDEOS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType#generate_enhanced_youtube_videos) to support automatically generating *enhanced* video assets for Performance Max campaigns.

### Planning

- (For allowlisted accounts only) Added [`ContentCreatorInsightsService.GenerateTrendingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentCreatorInsightsService/GenerateTrendingInsights) which allows users to see trending content topics on YouTube for given audience definitions.
- Added [`GenerateCreatorInsightsRequest.country_locations[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateCreatorInsightsRequest#country_locations%5B%5D) to specify countries to search for the given criteria
- Added [`GenerateCreatorInsightsRequest.search_brand`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateCreatorInsightsRequest#search_brand) to specify a brand to search for creators
- Added new fields to [`YouTubeChannelInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeChannelInsights) to provide additional channel information for [`search_channels`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateCreatorInsightsRequest#search_channels) requests:
  - `channel_url`
  - `channel_description`
  - `top_videos`
- Added new metadata fields to [`AudienceInsightsAttributeMetadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsAttributeMetadata):
  - `youtube_video_metadata`
  - `user_interest_attribute_metadata`
  - `knowledge_graph_attribute_metadata`

### Videos

- Following the release of [`DataLinkService.CreateDataLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/DataLinkService/CreateDataLink), we added the following methods to allow for mutating previously created data links:
  - [`RemoveDataLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/DataLinkService/RemoveDataLink) for removing data links in a Google Ads account
  - [`UpdateDataLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/DataLinkService/UpdateDataLink) for accepting, rejecting and revoking data links in a Google Ads account
- Removed support for `VIDEO_OUTSTREAM` from the following enums:
  - [`AdType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType)
  - [`AdvertisingChannelSubType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType)
  - [`AdGroupType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType)

## v18 (2024-10-16)

The following new features and updates were added in v18.

### Account Management

:

- (For allowlisted accounts only) Added [`DataLinkService.CreateDataLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/DataLinkService/CreateDataLink), which allows linking a Google Ads account to creator videos hosted on the creator's YouTube channel. Video linking enables the Google Ads account to run [partnership ads](https://support.google.com/google-ads/answer/15223349) using creator videos.

### Ad Groups

- Added [`AdGroup.exclude_demographic_expansion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#exclude_demographic_expansion), which lets you exclude demographics from being expanded when [`optimized_targeting_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#optimized_targeting_enabled) is `true`, a feature that was previously only supported for Demand Gen.

### Ads

- Added [`AdGroupAd.ad_group_ad_asset_automation_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd#ad_group_ad_asset_automation_settings%5B%5D), which allows opting ads into or out of automatic asset generation.
- Added the following values to [`AssetAutomationType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetAutomationTypeEnum.AssetAutomationType):
  - `GENERATE_VERTICAL_YOUTUBE_VIDEOS`
  - `GENERATE_SHORTER_YOUTUBE_VIDEOS`
- Added [`AdNetworkType.GOOGLE_OWNED_CHANNELS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdNetworkTypeEnum.AdNetworkType#google_owned_channels), which is used by ads that serve on Google-owned channels such as YouTube, Gmail, and the Discover feed.

### Assets

- Renamed `AssetType.DISCOVERY_CAROUSEL_CARD` to [`AssetType.DEMAND_GEN_CAROUSEL_CARD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType#demand_gen_carousel_card).

### Campaigns

- Added [`metrics.store_visits_last_click_model_attributed_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.store_visits_last_click_model_attributed_conversions), which returns the number of store visits attributed by the last click model of a campaign.
- Added the following video view-related metrics for a campaign:
  - [`metrics.video_view_rate_in_feed`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.video_view_rate_in_feed)
  - [`metrics.video_view_rate_in_stream`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.video_view_rate_in_stream)
  - [`metrics.video_view_rate_shorts`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.video_view_rate_shorts)
- Added [`metrics.results_conversions_purchase`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.results_conversions_purchase), which returns conversion purchases for the unified goals results of a campaign.
- Changed the default value of [`DemandGenCampaignSettings.upgraded_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.DemandGenCampaignSettings#upgraded_targeting) from `false` to `true`.

### Criterion

- Added [`content_criterion_view`](https://developers.google.com/google-ads/api/fields/v26/content_criterion_view), which returns performance metrics of [targeted contents](https://support.google.com/google-ads/answer/1704368#Content-Targeting), such as keywords, placements and topics, for Display, Demand Gen and Video campaigns.

### Hotel \& Travel

- Support for [Travel Feeds in Search Ads](https://support.google.com/google-ads/answer/15265488)
  - Added [`ClickType.TRAVEL_ASSETS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickTypeEnum.ClickType#travel_assets) to allow segmentation of metrics of [Travel Feeds in Search Ads](https://support.google.com/google-ads/answer/15265488).
  - Added [`AssetSetType.TRAVEL_FEED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetTypeEnum.AssetSetType#travel_feed) which can be used to opt-in and opt-out of using [Travel Feed in Search Ads](https://support.google.com/google-ads/answer/15265488).
- (For allowlisted accounts only) Added travel itinerary as a new [conversion value rule](https://developers.google.com/google-ads/api/docs/conversions/conversion-value-rules) with the following new fields and values:
  - [`ConversionValueRule.itinerary_condition`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRule#itinerary_condition) with [`ValueRuleItineraryCondition`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRule.ValueRuleItineraryCondition), which allows for specifying an advance booking window, an itinerary length, and a travel start days of week
  - [`ConversionValueRulePrimaryDimensionEnum.ITINERARY`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension#itinerary)
  - [`ValueRuleSetDimension.ITINERARY`](https://developers.google.com/google-ads/api/reference/rpc/v26/ValueRuleSetDimensionEnum.ValueRuleSetDimension#itinerary)
- Added the following segments for [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) and [`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group) reports to allow for segmenting performance data based on specific destinations (cities, countries and regions) for Hotel and Search campaigns:
  - [`segments.travel_destination_city`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.travel_destination_city)
  - [`segments.travel_destination_country`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.travel_destination_country)
  - [`segments.travel_destination_region`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.travel_destination_region)

### Local Services

- [`PhoneCallDetails.call_recording_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/PhoneCallDetails#call_recording_url) will be empty, instead of providing an invalid URL if the call recording doesn't exist for the given Local Services lead conversation.
- Added [`CategoryBid.target_cpa_bid_micro`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.CategoryBid#target_cpa_bid_micros) which allows for setting target CPA for a category through [`Campaign.local_services_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#local_services_campaign_settings).

### Performance Max

- Support for brand guidelines
  - Added [`Campaign.brand_guidelines_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#brand_guidelines_enabled), which shows whether [brand guidelines](https://support.google.com/google-ads/answer/14934472) are enabled for a given Performance Max campaign. If enabled, assets with [`field_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset#field_type) set to [`BUSINESS_NAME`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_name), [`LOGO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#logo), [`LANDSCAPE_LOGO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#landscape_logo) must be linked as [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) resources instead of [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAsset) resources.
  - Added [`CampaignError.REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#required_business_name_asset_not_linked) and [`CampaignError.REQUIRED_LOGO_ASSET_NOT_LINKED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#required_logo_asset_not_linked) errors, which indicate that Performance Max campaigns with brand guidelines enabled don't have the required [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) resources linked to the campaign.
  - When brand guidelines are enabled, at least one asset with [`field_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset#field_type) set to [`BUSINESS_NAME`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_name) and at least one with [`LOGO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#logo) must be linked to the campaign as [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) resources. Performance Max campaigns for online sales with a product feed must meet this requirement only when there are assets that are linked to the campaign's asset groups.
  - Added the following values to [`AssetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError):
  - [`BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError#brand_assets_not_linked_at_asset_group_level), which is thrown when attempting to link brand assets to campaigns as [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) resources instead of [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAsset) resources in Performance Max campaigns with brand guidelines **not enabled**.
  - [`BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError#brand_assets_not_linked_at_campaign_level) error, which is thrown when attempting to link brand assets to campaigns as [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAsset) resources instead of [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) resources in Performance Max campaigns with brand guidelines **enabled**.
- Added [`performance_max_placement_view`](https://developers.google.com/google-ads/api/fields/v26/performance_max_placement_view), which returns impressions of the placements where Performance Max ads served.
- Added [`AssetGroupListingGroupFilterError.TREE_WAS_INVALID_BEFORE_MUTATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterError#tree_was_invalid_before_mutation)

### Planning

- (For allowlisted accounts only) Added a new service with the method [`ContentCreatorInsightsService.GenerateCreatorInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentCreatorInsightsService/GenerateCreatorInsights), which allows users to explore insights about top YouTube Creators. This allows customers to search for creators given an audience targeting and content targeting combination or creator insights given a list of YouTube Channel IDs.
- Updates to [`AudienceInsightsService.GenerateSuggestedTargetingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService/GenerateSuggestedTargetingInsights):
  - Moved `audience`, `baseline_audience` and `data_month` into [`audience_definition`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateSuggestedTargetingInsightsRequest#audience_definition).
  - Added [`audience_description`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateSuggestedTargetingInsightsRequest#audience_description) to generate targeting suggestions from a free form text description using generative AI.
- Added [`AudienceInsightsService.GenerateTargetingSuggestionMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService/GenerateTargetingSuggestionMetrics), which returns potential reach metrics for given audience targeting combinations.

### Recommendations

- [`RecommendationService.GenerateRecommendations`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationService/GenerateRecommendations) can now be used to generate recommendations about optimized budget suggestions during campaign construction, by including the [`CAMPAIGN_BUDGET`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#campaign_budget) recommendation type in [`GenerateRecommendationsRequest.recommendation_types[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateRecommendationsRequest#recommendation_types%5B%5D). This works for Performance Max and Search campaigns.

### Reporting

- Replaced the `summary_row_setting` and `return_total_results_count` fields of [`SearchGoogleAdsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchGoogleAdsRequest) with the [`search_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchGoogleAdsRequest#search_settings) field, whose type is [`SearchSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchSettings) with the following fields:
  - `omit_results`
  - `return_summary_row`
  - `return_total_results_count`
- Added the following new metrics about general invalid clicks, such as those generated by bots or crawlers, those having irregular patterns. They can be queried with the [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) report.
  - [`metrics.general_invalid_clicks`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.general_invalid_clicks)
  - [`metrics.general_invalid_click_rate`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.general_invalid_click_rate)
- Added the following values to [`QuotaError`](https://developers.google.com/google-ads/api/reference/rpc/v26/QuotaErrorEnum.QuotaError):
  - `EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION`

## v17.1.0 (2024-08-07)

The following new features and updates were added in v17_1.

### Assets

- [`AdGroupAdService.RemoveAutomaticallyCreatedAssets()`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService#removeautomaticallycreatedassets) lets you remove specified [automatically created assets](https://developers.google.com/google-ads/api/docs/assets/overview#automatically_created_assets) linked to [Responsive Search Ads](https://developers.google.com/google-ads/api/docs/responsive-search-ads/overview).

### Audiences

- New enum values in [`UserListCustomerTypeCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListCustomerTypeCategoryEnum.UserListCustomerTypeCategory):
  - `LOYALTY_TIER_1_MEMBERS`
  - `LOYALTY_TIER_2_MEMBERS`
  - `LOYALTY_TIER_3_MEMBERS`
  - `LOYALTY_TIER_4_MEMBERS`
  - `LOYALTY_TIER_5_MEMBERS`
  - `LOYALTY_TIER_6_MEMBERS`
  - `LOYALTY_TIER_7_MEMBERS`

### Campaigns

- [`ShareablePreviewService.GenerateShareablePreviews()`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShareablePreviewService#generateshareablepreviews) generates the URLs [`shareable_preview_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShareablePreviewResult#shareable_preview_url) in the response for shareable ad previews for enabled and paused [asset groups](https://developers.google.com/google-ads/api/performance-max/asset-groups).
  - The [`expiration_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShareablePreviewResult#expiration_date_time) field indicates the expiration date of the URLs in the response.
  - If an error occurs, the method will return [`partial_failure_error`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShareablePreviewOrError#partial_failure_error) instead of the URLs.

### Change History

- New change status resource type: [`ASSET_GROUP`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum.ChangeStatusResourceType#asset_group).

### Conversions

- New segment field for [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork/) version: [`segments.sk_ad_network_version`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_version)
- [`offline_conversion_upload_conversion_action_summary`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_conversion_action_summary), which exposes conversion upload diagnostics *at the conversion action level*.
- The following metrics are added to the [offline diagnostics reports](https://developers.google.com/google-ads/api/docs/conversions/upload-summaries) to convey the number of uploaded conversions that are still being processed:
  - [`offline_conversion_upload_client_summary`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_client_summary)
  - [`pending_event_count`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_client_summary#offline_conversion_upload_client_summary.pending_event_count)
  - [`pending_rate`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_client_summary#offline_conversion_upload_client_summary.pending_rate)
  - [`offline_conversion_upload_conversion_action_summary`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_conversion_action_summary):
  - [`pending_count`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineConversionSummary#pending_count)

### Planning

- [`AudienceInsights.GenerateAudienceOverlapInsights()`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generateaudienceoverlapinsights), which accepts an input primary attribute and a collection of audience attributes, and returns the estimates of the overlap of potential YouTube reach between the primary attribute and the audience attributes.

### Reporting

- Support for segmenting [`per_store_view`](https://developers.google.com/google-ads/api/fields/v26/per_store_view) based on [`segments.date`](https://developers.google.com/google-ads/api/fields/v26/per_store_view#segments.date)

### Videos

- Support for retrieving information related to the following [standard bidding strategies](https://developers.google.com/google-ads/api/docs/campaigns/bidding/assign-strategies#standard_bidding_strategies) for video campaigns using reports, such as, [`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group), [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign):
  - [`Campaign.fixed_cpm`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#fixed_cpm) (Fixed CPM (cost per thousand impression))
  - [`Campaign.target_cpv`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#target_cpv) (Target CPV (cost per view))
- [`Campaign.video_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#video_campaign_settings) which lets you determine on which inventories the video ads can be shown, using the following report fields:
  - [`campaign.video_campaign_settings.video_ad_inventory_control.allow_in_feed`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.video_campaign_settings.video_ad_inventory_control.allow_in_feed)
  - [`campaign.video_campaign_settings.video_ad_inventory_control.allow_in_stream`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.video_campaign_settings.video_ad_inventory_control.allow_in_stream)
  - [`campaign.video_campaign_settings.video_ad_inventory_control.allow_shorts`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.video_campaign_settings.video_ad_inventory_control.allow_shorts)
- [`segments.ad_format_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.ad_format_type) which lets you segment the following reports based on the video ad format type:
  - [`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group)
  - [`ad_group_ad`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad)
  - [`ad_group_ad_asset_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view)
  - [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign)
  - [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer)

## v17 (2024-06-05)

The following features and changes were added in v17.

### Ads

- Removed `AdService.getAd`. This brings the [`AdService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdService) in line with other services in the Google Ads API. See [Retrieving objects](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects) for the recommended way to fetch ads and other resource types.
- Added more validations for [`ImageAdInfo.image_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageAdInfo#image_asset) regarding dimensions and format. The following errors may be thrown if the image is invalid:
  - [`ImageError.UNEXPECTED_SIZE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageErrorEnum.ImageError#unexpected_size)
  - [`ImageError.FORMAT_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageErrorEnum.ImageError#format_not_allowed)

### Assets

- Added new enum: [`ClickType.AD_IMAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickTypeEnum.ClickType#ad_image)
- Added the following new reports with new metrics for Performance Max and Search campaigns:
  - [`campaign_aggregate_asset_view`](https://developers.google.com/google-ads/api/fields/v26/campaign_aggregate_asset_view)
  - [`channel_aggregate_asset_view`](https://developers.google.com/google-ads/api/fields/v26/channel_aggregate_asset_view)

### Audiences

- Added [`OfflineUserDataJobError.OPERATION_LEVEL_CONSENT_PROVIDED`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError#operation_level_consent_provided)

### Batch Jobs

- Added [`BatchJobError.REQUEST_TOO_LARGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobErrorEnum.BatchJobError#request_too_large), which will be thrown when the submitted [`AddBatchJobOperationsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/AddBatchJobOperationsRequest) is larger than 10484504 bytes.
- Added support for setting [`MutateOperation.asset_group_operation`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateOperation#asset_group_operation) when using [`BatchJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobService). This lets you use [batch processing](https://developers.google.com/google-ads/api/docs/batch-processing/overview) to create and manage entire Performance Max campaigns. See our new [dedicated guide](https://developers.google.com/google-ads/api/performance-max/batch-processing).

### Campaigns

- Renamed Discovery to Demand Gen in all fields, enums, errors of all resources across the Google Ads API, such as campaigns, ads, and assets. For example, `AdvertisingChannelType.DISCOVERY` is now [`AdvertisingChannelType.DEMAND_GEN`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType#demand_gen).
- Added [`Campaign.keyword_match_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#keyword_match_type) to let you set keyword match type for all keywords in a campaign.

### Conversions

- For [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork/) conversions,
  - Renamed `segments.sk_ad_network_conversion_value` to [`segments.sk_ad_network_fine_conversion_value`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_fine_conversion_value).
  - Added [`segments.sk_ad_network_redistributed_fine_conversion_value`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_redistributed_fine_conversion_value).
- The following metrics are now returned with the response even when they are zero. This makes them consistent with other metrics.
  - [`metrics.all_conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_conversions_value_by_conversion_date)
  - [`metrics.all_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_conversions_by_conversion_date)
  - [`metrics.conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.conversions_value_by_conversion_date)
  - [`metrics.conversions_by_conversion_date`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.conversions_by_conversion_date)

### Criteria

- Added to following fields to [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion) to show whether the ad group criterion is serving or the reasons why it's not serving:
  - `primary_status`
  - `primary_status_reasons`
- Added support for [`metrics.search_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_impression_share) for [`gender_view`](https://developers.google.com/google-ads/api/fields/v26/gender_view)
- Added support for [`metrics.phone_calls`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.phone_calls) for [`keyword_view`](https://developers.google.com/google-ads/api/fields/v26/keyword_view)

### Local Services

- Added [`LocalServicesLeadService.AppendLeadConversation()`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService#appendleadconversation) used to append a new [`LocalServicesLeadConversation`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadConversation) to [`LocalServicesLead`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead), which sends the messages to users through appropriate channels like SMS depending on how the lead was created.
  - The size of [`AppendLeadConversationRequest.conversations`](https://developers.google.com/google-ads/api/reference/rpc/v26/AppendLeadConversationRequest#conversations%5B%5D) is limited to 1,000.
  - Only `LocalServicesLead` with [`lead_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLead#lead_type) set to [`LeadType.MESSAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadTypeEnum.LeadType#message) can be specified in [`Conversation.local_services_lead`](https://developers.google.com/google-ads/api/reference/rpc/v26/Conversation#local_services_lead).
- Added new enum values to [`ConversationType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadConversationTypeEnum.ConversationType):
  - `WHATSAPP` to represent a conversation introduced through WhatsApp.
  - `ADS_API` to represent a conversation introduced using the new [`LocalServicesLeadService.AppendLeadConversation()`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadService#appendleadconversation) method.
- Added the following new fields to [`local_services_verification_artifact`](https://developers.google.com/google-ads/api/fields/v26/local_services_verification_artifact):
  - `local_services_verification_artifact.insurance_verification_artifact.expiration_date_time`
  - `local_services_verification_artifact.license_verification_artifact.expiration_date_time`

### Reporting

- You can now select only fields related to **one** [linked product](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLink#linked_product) when querying [`product_link`](https://developers.google.com/google-ads/api/fields/v26/product_link). Selecting multiple fields of several linked products will throw [`QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE`](https://developers.google.com/google-ads/api/reference/rpc/v26/QueryErrorEnum.QueryError#prohibited_field_combination_in_select_clause). For example, [`product_link.advertising_partner.customer`](https://developers.google.com/google-ads/api/fields/v26/product_link#product_link.advertising_partner.customer) and [`product_link.data_partner.data_partner_id`](https://developers.google.com/google-ads/api/fields/v26/product_link#product_link.data_partner.data_partner_id) cannot be selected in the same query.
- Passing a `page_size` to [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) will result in a [`RequestError.PAGE_SIZE_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/RequestErrorEnum.RequestError#page_size_not_supported) error.

### Shopping

- Added a new report [`shopping_product`](https://developers.google.com/google-ads/api/fields/v26/shopping_product), which corresponds to the **Products** page of the Google Ads UI. It supports returning data related to the current state of products from Google Merchant Center accounts linked to a Google Ads account.
  - You can filter metrics from the [`shopping_product`](https://developers.google.com/google-ads/api/fields/v26/shopping_product) report using [`segments.date`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.date) when using [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) or [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream). Segmentation by date is not permitted and will return a [`ShoppingProductError.UNSUPPORTED_DATE_SEGMENTATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShoppingProductErrorEnum.ShoppingProductError#unsupported_date_segmentation) error.

### Unified Goals

- Added [`UserListCustomerTypeService.MutateUserListCustomerTypes()`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListCustomerTypeService) to configure [audience customer
  types](https://support.google.com/google-ads/answer/14443483).
- Removed `CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings`. To configure audience settings of customer lifecycle goals, use `UserListCustomerTypeService.MutateUserListCustomerTypes()` instead.
  - Attach or un-attach a user list by setting [`UserListCustomerType.customer_type_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListCustomerType#customer_type_category) to [`UserListCustomerTypeCategory.PURCHASERS`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListCustomerTypeCategoryEnum.UserListCustomerTypeCategory#purchasers) to include it into or exclude it from an existing customer definition for customer lifecycle goals, respectively. Visit [segment your
    audiences](https://developers.google.com/google-ads/api/docs/conversions/goals/lifecycle-goals#segment_your_audiences) for more details.

### Videos

- Added the following values to [`ContentLabelType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentLabelTypeEnum.ContentLabelType). You can exclude these `ContentLabelTypes` at the customer level:
  - `BRAND_SUITABILITY_CONTENT_FOR_FAMILIES`
  - `BRAND_SUITABILITY_GAMES_FIGHTING`
  - `BRAND_SUITABILITY_GAMES_MATURE`
  - `BRAND_SUITABILITY_HEALTH_SENSITIVE`
  - `BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED`
  - `BRAND_SUITABILITY_NEWS_RECENT`
  - `BRAND_SUITABILITY_NEWS_SENSITIVE`
  - `BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED`
  - `BRAND_SUITABILITY_POLITICS`
  - `BRAND_SUITABILITY_RELIGION`
- Added [`AdVideoAsset.ad_video_asset_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdVideoAsset#ad_video_asset_info) to support inventory preferences for video assets when creating [`DemandGenVideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenVideoResponsiveAdInfo).
- (Allowlisted accounts only) Made [`Campaign.video_brand_safety_suitability`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#video_brand_safety_suitability) mutable.

## v16.1.0 (2024-04-24)

The following features and changes were added in v16.1.

### Account Management

- [`CustomerNegativeCriterion.ip_block`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerNegativeCriterion#ip_block) which supports adding an IP as a negative criterion at the customer level.
- New enum value: [`ProductLinkError.LINK_EXISTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkErrorEnum.ProductLinkError#link_exists).
- New enum value: [`ProductLinkInvitationError.CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitationErrorEnum.ProductLinkInvitationError#customer_not_permitted_to_create_invitation).

### Assets

- Support for assets related to [Demand Gen](https://developers.google.com/google-ads/api/docs/demand-gen/overview) to [`ad_group_ad_asset_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view) and [`asset_field_type_view`](https://developers.google.com/google-ads/api/fields/v26/asset_field_type_view).
- New enum value: [`AssetFieldType.DISCOVERY_CAROUSEL_CARD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#discovery_carousel_card).

### Audiences

- New enum value: [`ResourceLimitType.LOOKALIKE_USER_LISTS_PER_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType#lookalike_user_lists_per_customer) which limits the number of lookalike user lists a customer can have to 1000.

### Campaigns

- Support for returning [Target
  ROAS](https://developers.google.com/google-ads/api/docs/campaigns/bidding/strategy-types) campaign bid simulations for [App campaigns](https://developers.google.com/google-ads/api/docs/app-campaigns/overview) using the [`campaign_simulation`](https://developers.google.com/google-ads/api/fields/v26/campaign_simulation) report.
- New enum value: [`CampaignError.DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#dynamic_text_asset_cannot_opt_out_with_final_url_expansion_opt_in).
- New enum value: [`AdGroupPrimaryStatusReason.AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupPrimaryStatusReasonEnum.AdGroupPrimaryStatusReason#ad_group_paused_due_to_low_activity).
- New enum value: [`CampaignCriterionError.CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionErrorEnum.CampaignCriterionError#cannot_remove_all_locations_due_to_too_many_country_exclusions).

### Conversions

- [`SkAdNetworkConversionValueSchema.postback_mappings`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerSkAdNetworkConversionValueSchema.SkAdNetworkConversionValueSchema#postback_mappings%5B%5D) which supports [SKAdNetwork
  4.0](https://developer.apple.com/documentation/storekit/skadnetwork/skadnetwork_release_notes/skadnetwork_4_release_notes) features.
- Added support for warnings for [`CustomerSkAdNetworkConversionValueSchemaService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerSkAdNetworkConversionValueSchemaService) as [`MutateCustomerSkAdNetworkConversionValueSchemaRequest.enable_warnings`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateCustomerSkAdNetworkConversionValueSchemaRequest#enable_warnings). When set to `true`, any non-blocking errors pertaining to operation failures will be returned as [`MutateCustomerSkAdNetworkConversionValueSchemaResponse.warning`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateCustomerSkAdNetworkConversionValueSchemaResponse#warning).
- New enum values in [`CustomerSkAdNetworkConversionValueSchemaError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerSkAdNetworkConversionValueSchemaErrorEnum.CustomerSkAdNetworkConversionValueSchemaError):
  - `INVALID_EVENT_COUNTER`
  - `INVALID_EVENT_NAME`

### Criteria

- New fields in [`BrandInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandInfo):
  - `display_name`
  - `primary_url`
  - `rejection_reason`
  - `status`
- New enum: [`BrandRequestRejectionReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandRequestRejectionReasonEnum.BrandRequestRejectionReason).
- New enum value: [`CriterionType.LIFE_EVENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#life_event).

### Experiments

- New enum value: [`ExperimentError.INVALID_DURATION_FOR_AN_EXPERIMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentErrorEnum.ExperimentError#invalid_duration_for_an_experiment).

### Local Services

- [`local_services_lead.credit_details.credit_state`](https://developers.google.com/google-ads/api/fields/v26/local_services_lead#local_services_lead.credit_details.credit_state) and [`local_services_lead.credit_details.credit_state_last_update_date_time`](https://developers.google.com/google-ads/api/fields/v26/local_services_lead#local_services_lead.credit_details.credit_state_last_update_date_time) which returns the state of credit and the timestamp when the credit state was updated, respectively.
- [`local_services_lead_conversation.message_details.attachment_urls`](https://developers.google.com/google-ads/api/fields/v26/local_services_lead_conversation#local_services_lead_conversation.message_details.attachment_urls) which returns the URLs that can be used to download the contents of the attachment.

### Videos

- [`customer.video_brand_safety_suitability`](https://developers.google.com/google-ads/api/fields/v26/customer#customer.video_brand_safety_suitability) and [`BrandSafetySuitability`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandSafetySuitabilityEnum.BrandSafetySuitability) which support retrieving video brand safety suitability at the customer level.
- New enum value: [`VideoCampaignError.MUTATE_REQUIRES_RESERVATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoCampaignErrorEnum.VideoCampaignError#mutate_requires_reservation).

## v16 (2024-02-21)

The following features and changes were added in v16.

### Account Management

- Migrated `advertising_partner` from [`AccountLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink) to [`ProductLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLink#advertising_partner) and [`ProductLinkInvitation`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitation#advertising_partner).
- Removed `data_partner` and `google_ads` from [`AccountLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink).
- Added [`IdentityVerificationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationService) to manage advertiser verification.
  - [`StartIdentityVerification()`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationService#startidentityverification) is used to start a verification session using the provided [`verification_program`](https://developers.google.com/google-ads/api/reference/rpc/v26/StartIdentityVerificationRequest#verification_program). It creates a new verification session and returns an empty response for a successfully created verification.
    - Added [`IdentityVerificationProgram.ADVERTISER_IDENTITY_VERIFICATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationProgramEnum.IdentityVerificationProgram#advertiser_identity_verification).
  - [`GetIdentityVerification()`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationService#getidentityverification) can be used for retrieving verification information, which returns several objects of [`IdentityVerification`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerification). Each `IdentityVerification` includes:
    - [`verification_program`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerification#verification_program) which is the identity verification program type
    - [`identity_verification_requirement`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerification#identity_verification_requirement) that contains details related to the deadline by which the advertiser should finish verification
    - [`verification_progress`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerification#verification_progress) that contains details related to the verification session including:
      - `program_status` represents the current status of this verification session
      - `action_url` directs the customer to a URL to complete the verification.
      - `invitation_link_expiration_time` represents the expiration date for the `action_url`
  - Enums:
    - [`IdentityVerificationProgram`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationProgramEnum.IdentityVerificationProgram)
    - [`IdentityVerificationProgramStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationProgramStatusEnum.IdentityVerificationProgramStatus)
  - Errors:
    - [`IdentityVerificationError`](https://developers.google.com/google-ads/api/reference/rpc/v26/IdentityVerificationErrorEnum.IdentityVerificationError)
- Added [`AuthorizationError.ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT`](https://developers.google.com/google-ads/api/reference/rpc/v26/AuthorizationErrorEnum.AuthorizationError#action_not_permitted_for_suspended_account).

### Assets

- Changes to [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group):
  - Added support for time-related segments, such as [`segments.year`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.year) and [`segments.month`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.month).
  - Made [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) an attributed resource instead of segmenting resource.

### Campaigns

- Changes to Demand Gen campaigns:
  - Added support for setting [`Campaign.shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting) to an existing Demand Gen campaign.
  - Added [`ShoppingSetting.disable_product_feed`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#disable_product_feed) to disable the optional product feed of Demand Gen campaigns.
  - Added [`Ad.demand_gen_product_ad`](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#demand_gen_product_ad) and the corresponding [`DemandGenProductAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/DemandGenProductAdInfo), available to Demand Gen campaigns with a non-null [`Campaign.shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting).
- Added to following fields to [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup) to show whether the ad group is serving or the reasons why it's not serving:
  - `primary_status`
  - `primary_status_reasons`
- Added to following fields to [`AdGroupAd`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd) to show whether the ad group ad is serving or the reasons why it's not serving:
  - `primary_status`
  - `primary_status_reasons`
- Added the following values to [`AdGroupError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupErrorEnum.AdGroupError):
  - `CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE`
  - `INVALID_STATUS`

### Experiment

- Added [`Experiment.sync_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/Experiment#sync_enabled) to specify if sync should be enabled in the experiment. With [sync
  enabled](https://support.google.com/google-ads/answer/10575537), changes made to the original campaign while your experiment is running, are automatically copied to the experiment campaign.
- Added [`ExperimentError.CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentErrorEnum.ExperimentError#cannot_enable_sync_for_unsupported_experiment_type).
- Added [`CampaignError.CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#cannot_modify_text_asset_automation_with_enabled_trial).

### Hotel \& Travel

- Added the following fields to [`ListingDimensionInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo) for a Things to do ad to enable creating listing groups based on the state and city where the travel activity is available:
  - [`activity_state`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo#activity_state)
  - [`activity_city`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo#activity_city)
- Added support for the following segments to [`travel_activity_performance_view`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_performance_view):
  - [`segments.activity_city`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_performance_view#segments.activity_city)
  - [`segments.activity_country`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_performance_view#segments.activity_country)
  - [`segments.activity_state`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_performance_view#segments.activity_state)

### Local Services

- Added [`LocalServicesVerificationArtifact.business_registration_check_verification_artifact`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesVerificationArtifact#business_registration_check_verification_artifact) and [`BusinessRegistrationCheckArtifact`](https://developers.google.com/google-ads/api/reference/rpc/v26/BusinessRegistrationCheckVerificationArtifact) to allow advertisers to monitor the progress of the business registration verification process.
- Added a new resource [`local_services_employee`](https://developers.google.com/google-ads/api/fields/v26/local_services_employee) to allow advertisers to retrieve the employee information they've added.

### Planning

- Removed `score` from [`AudienceInsightsAttributeMetadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsAttributeMetadata).

### Recommendations

- Added [`RecommendationService.GenerateRecommendations()`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationService#generaterecommendations) which returns recommendations based on the specified settings, such as recommendation types and advertising channel types. This is particularly helpful during campaign construction.
- Added [`RecommendationMetrics.conversions_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RecommendationMetrics#conversions_value).
- Recommended keywords with unset keyword match type now have [`recommended_match_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.KeywordMatchTypeRecommendation#recommended_match_type) set to `UNSPECIFIED` instead of `UNKNOWN`.
- Added the following types of recommendations:
  - [`MAXIMIZE_CONVERSION_VALUE_OPT_IN`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#maximize_conversion_value_opt_in) which recommends opting in to the Maximize conversion value bidding strategy
  - [`IMPROVE_GOOGLE_TAG_COVERAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#improve_google_tag_coverage) which recommends deploying Google Tag on more pages
  - [`PERFORMANCE_MAX_FINAL_URL_OPT_IN`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#performance_max_final_url_opt_in) which recommends turning on final URL expansion for your Performance Max campaigns
  - [`REFRESH_CUSTOMER_MATCH_LIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#refresh_customer_match_list) which recommends updating a customer list that hasn't been updated in the last 90 days
  - [`CUSTOM_AUDIENCE_OPT_IN`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#custom_audience_opt_in) which recommends creating a custom audience
  - [`LEAD_FORM_ASSET`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#lead_form_asset) which recommends adding lead form assets at the campaign or customer level
  - [`IMPROVE_DEMAND_GEN_AD_STRENGTH`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#improve_demand_gen_ad_strength) which recommends improving ad strength on Demand Gen campaigns

### Shopping

- Added [`CampaignError.CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#cannot_link_to_comparison_shopping_service_account) and [`CampaignError.CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#cannot_target_network_for_comparison_shopping_service_linked_accounts) in order to provide more detailed errors for Shopping campaigns linked to a [Comparison Shopping Service Center
  account](https://support.google.com/css-center/answer/9773265).
- Added the following values to [`AssetGroupListingGroupFilterError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterError):
  - `DIMENSION_TYPE_NOT_ALLOWED`
  - `DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP`
  - `FILTER_EXCLUSION_NOT_ALLOWED`
  - `LISTING_SOURCE_NOT_ALLOWED`
  - `MULTIPLE_LISTING_SOURCES`
  - `MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED`
  - `MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP`
  - `PAGE_FEED_FILTER_HAS_PARENT`

### Lifecycle Goals

- Added `update` to [`CustomerLifecycleGoalOperation`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleGoalOperation#update) and [`CampaignLifecycleGoalOperation`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignLifecycleGoalOperation#update) to make these operation types consistent with other operation types in the API.

## v15 (2023-10-18)

The following new features and updates were introduced in v15.

### Account Management

- If your account is suspended because of [unauthorized account
  activity](https://support.google.com/google-ads/answer/9841640#Why_we_suspend_accounts), [`customer.status`](https://developers.google.com/google-ads/api/fields/v26/customer#customer.status) and [`customer_client.status`](https://developers.google.com/google-ads/api/fields/v26/customer_client#customer_client.status) are now returned as [`SUSPENDED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerStatusEnum.CustomerStatus#suspended). Previously, they were returned as [`ENABLED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerStatusEnum.CustomerStatus#enabled).
- Added support for adding and removing a link between a Google Ads account and a Merchant Center account:
  - Added [`ProductLink.merchant_center`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLink#merchant_center) and [`MerchantCenterIdentifier`](https://developers.google.com/google-ads/api/reference/rpc/v26/MerchantCenterIdentifier).
  - Added [`LinkedProductType.MERCHANT_CENTER`](https://developers.google.com/google-ads/api/reference/rpc/v26/LinkedProductTypeEnum.LinkedProductType#merchant_center).
- Added [`ProductLinkInvitationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitationService) and [`ProductLinkInvitation`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitation) to support updating a link invitation sent from other products, available for [Hotel
  Center](https://hotelcenter.google.com/) and [Merchant
  Center](https://merchants.google.com/) accounts.
- Removed `MerchantCenterLinkService`.
  - To link Google Ads accounts with Merchant Center accounts, use [`ProductLinkInvitationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitationService) and [`ProductLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkService).
- Removed `AccountLink.hotel_center` and support for updating link invitations from Hotel Center accounts using [`AccountLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkService).
  - To update a link invitation from a Hotel Center account, use [`ProductLinkInvitationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkInvitationService).

### Assets

- Replaced `ImageAdInfo.media_file` with [`ImageAdInfo.image_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageAdInfo#image_asset) to support adding and removing images using the assets. As a result, we also removed `MediaFileService`, which is no longer needed.
- Added [`ListingGroupFilterDimension.webpage`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingGroupFilterDimension#webage) to support creating a listing group filter based on custom labels and URL substrings.
  - Also replaced `AssetGroupListingGroupFilter.vertical` with [`AssetGroupListingGroupFilter.listing_source`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilter#listing_source) and [`ListingGroupFilterListingSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingGroupFilterListingSourceEnum.ListingGroupFilterListingSource)
- Added [`asset_group_asset.source`](https://developers.google.com/google-ads/api/fields/v26/asset_group_asset#source) to show the source of the asset group asset.
- Added [`ad_group_ad_asset_view.source`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view#source) to show the source of ad group ad asset.

### Audiences

- For Customer Match, added [`CustomerMatchUserListMetadata.consent`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerMatchUserListMetadata#consent) to support providing a consent. Starting on **March 6, 2024** if consent is missing for EEA users, then the consent value is determined as not consented. Data from unconsented EEA users won't be processed and cannot be used for ad personalization using Customer Match. Check out our [Customer Match guide](https://developers.google.com/google-ads/api/docs/remarketing/audience-segments/customer-match/get-started#usage-flow) for more details.
- For Store Sales, added [`UserData.consent`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserData#consent) to support providing a consent. Check out our [Store Sales guide](https://developers.google.com/google-ads/api/docs/conversions/upload-store-sales-transactions) for more details. If you are using Customer Match with store sales, review the [FAQ](https://support.google.com/google-ads/answer/14310715) for additional information.
- Added [`UserList.lookalike_user_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserList#lookalike_user_list) to support creating a [Lookalike
  segment](https://support.google.com/google-ads/answer/13541369), an audience created based on the provided existing seed audience. Lookalike segments can be used in a [Demand Gen campaign](https://support.google.com/google-ads/answer/13695389) only.

### Campaigns

- Updates to Performance Max campaigns:

  - [`AssetGroupSignal`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignal) now supports for two signal types that can be attached to an asset group for enhanced targeting:
    - [`AssetGroupSignal.audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignal#audience)
      - Added [`Audience.scope`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience#scope) and [`Audience.asset_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience#asset_group) to limit audience usage to a specific asset group. [`Audience.asset_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience#asset_group) must be set if and only if [`Audience.scope`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience#scope) is `ASSET_GROUP`.
    - [`AssetGroupSignal.search_theme`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignal#search_theme)
      - Added [`CriterionType.SEARCH_THEME`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#search_theme) to support this new criterion type. This new criterion type can only be used in Performance Max campaigns to create an `AssetGroupSignal` by populating the [`AssetGroupSignal.search_theme`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignal#search_theme) with a [`SearchThemeInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchThemeInfo) criterion.
  - Added [`AssetGroupSignalOperation.exempt_policy_violation_keys`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignalOperation#exempt_policy_violation_keys) to support requesting exemption when adding asset group signals.
  - Added a new [`asset_group_top_combination_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_top_combination_view) to report the top performing assets at the asset group level.
  - [`asset_group`](https://developers.google.com/google-ads/api/fields/v26/asset_group) can now be queried with metric fields to support retrieving the performance of a Performance Max campaign.
  - In [`PerformanceMaxUpgradeStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/PerformanceMaxUpgradeStatusEnum.PerformanceMaxUpgradeStatus), renamed `UPGRADE_ELIGIBLE` to `UPGRADE_ELIGIBLE`.
- For Demand Gen and
  [Discovery](https://developers.google.com/google-ads/api/docs/discovery/overview)
  Target CPA campaigns, the campaign-level Target CPA bid simulations
  ([`campaign_simulation.target_cpa_point_list.points`](https://developers.google.com/google-ads/api/fields/v26/campaign_simulation#campaign_simulation.target_cpa_point_list.points))
  now returns
  [`TargetCpaSimulationPoint.interactions`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetCpaSimulationPoint#interactions)
  instead of
  [`TargetCpaSimulationPoint.clicks`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetCpaSimulationPoint#clicks).

- Added [`BrandSuggestionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BrandSuggestionService) that can
  suggest brands based on the provided brand prefix and the excluded list of
  brands. These brands can be used to create a
  [`BRAND`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#BRAND) criterion, added
  to a [`BRANDS`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedSetTypeEnum.SharedSetType#brands) shared set,
  and then attached to a campaign by creating a
  [`CampaignCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion) with
  [`brand_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#brand_list) set to the shared set.
  The campaign criteria can be targeted in Search campaigns and excluded in
  Performance Max campaigns, respectively.

  - Fields:
    - [`SharedCriterion.brand`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedCriterion#brand)
    - [`CampaignCriterion.brand_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#brand_list)
  - Enums:
    - [`SharedSetType.BRANDS`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedSetTypeEnum.SharedSetType#brands)
    - [`CriterionType.BRAND_LIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#brand_list)
- Added
  [`Campaign.asset_automation_settings[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#asset_automation_settings%5B%5D)
  to show the automation status of each asset type.

- Added the following values to the
  [`CampaignPrimaryStatusReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignPrimaryStatusReasonEnum.CampaignPrimaryStatusReason)
  enum:

  - `NO_ASSET_GROUPS`
  - `ASSET_GROUPS_PAUSED`

### Conversions

- Added [`CallConversion.consent`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallConversion#consent) and [`ClickConversion.consent`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#consent) to support providing a consent. Check out our [call conversions guide](https://developers.google.com/google-ads/api/docs/conversions/upload-calls) and [click conversions guide](https://developers.google.com/google-ads/api/docs/conversions/upload-clicks) for more details.
- Added the following fields related to [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) conversions, available when querying them with [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer) or [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign):
  - Segments:
    - [`segments.sk_ad_network_coarse_conversion_value`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_coarse_conversion_value)
    - [`segments.sk_ad_network_source_domain`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_source_domain)
    - [`segments.sk_ad_network_source_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_source_type)
    - [`segments.sk_ad_network_postback_sequence_index`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_postback_sequence_index)
  - Metrics:
    - [`metrics.sk_ad_network_total_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_total_conversions)
    - [`metrics.sk_ad_network_installs`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_installs)
- Replaced `metrics.sk_ad_network_conversions` with [`metrics.sk_ad_network_installs`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_installs).
- Added support for diagnosing offline conversion upload
  - Moved the [`offline_conversion_upload_client_summary`](https://developers.google.com/google-ads/api/fields/v26/offline_conversion_upload_client_summary) from a field on the `customer` resource to a top-level report. Use this report to obtain useful details of the conversion upload status such as the successful events count, success rate, and error percentage.
    - **Caveat** : A conversion that is uploaded but results in a [`ConversionUploadError.CLICK_NOT_FOUND`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#click_not_found) error is still counted as successful, but it's also flagged as an [`OfflineConversionAlert`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineConversionAlert).
  - Added `job_id` as an optional parameter for the following request types so you can logically group multiple upload requests into a single conceptual job:
    - [`UploadConversionAdjustmentsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/UploadConversionAdjustmentsRequest)
    - [`UploadClickConversionsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/UploadClickConversionsRequest)
  - Added `INVALID_JOB_ID` to the following errors:
    - [`ConversionAdjustmentUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError)
    - [`ConversionUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError)
  - Replaced `INVALID_CONVERSION_ACTION` with `NO_CONVERSION_ACTION_FOUND` and `INVALID_CONVERSION_ACTION_TYPE` in the following errors:
    - [`ConversionAdjustmentUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError)
    - [`ConversionUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError)
- Added three reports to support [Android Privacy Sandbox Cross-network
  attribution without
  redirects](https://developer.android.com/design-for-safety/privacy-sandbox/attribution#cross-network-attrib-without-redirects):
  - `android_privacy_shared_key_google_campaign` which contains `shared_campaign_key` and some fields that help encode the key.
  - `android_privacy_shared_key_google_ad_group` which contains `shared_ad_group_key` and some fields that help encode the key.
  - `android_privacy_shared_key_google_network_type` which contains `shared_network_type_key` and some fields that help encode the key.
- Added [`ConversionActionError.CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionErrorEnum.ConversionActionError#cannot_set_rule_based_attribution_models). A [`ConversionActionOperation`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionOperation) that attempts to use one of the [deprecated rule-based attribution
  models](https://ads-developers.googleblog.com/2023/04/first-click-linear-time-decay-and.html) now fails with this error. Previously, the operation would fail with an `UNKNOWN` error.

### Hotel \& Travel

- Added support for the following fields in [`travel_activity_group_view`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_group_view) and [`travel_activity_performance_view`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_performance_view):
  - Segments:
    - [`segments.activity_account_id`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.activity_account_id)
    - [`segments.activity_rating`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.activity_rating)
    - [`segments.external_activity_id`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.external_activity_id)
  - Metrics:
    - [`metrics.search_absolute_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_absolute_top_impression_share)
    - [`metrics.search_budget_lost_absolute_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_budget_lost_absolute_top_impression_share)
    - [`metrics.search_budget_lost_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_budget_lost_impression_share)
    - [`metrics.search_budget_lost_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_budget_lost_top_impression_share)
    - [`metrics.search_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_impression_share)
    - [`metrics.search_rank_lost_absolute_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_rank_lost_absolute_top_impression_share)
    - [`metrics.search_rank_lost_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_rank_lost_impression_share)
    - [`metrics.search_rank_lost_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_rank_lost_top_impression_share)
    - [`metrics.search_top_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_top_impression_share)

### Local Services Ads

- Added [`LocalServicesSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesSettings) and its fields to the [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer) report for returning a Local Services advertiser's granular license and insurance statuses.
- Added the following new reports for [Local
  Services](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns):
  - [`local_services_lead`](https://developers.google.com/google-ads/api/fields/v26/local_services_lead) contains all the details pertaining to [Local Services
    Ads](https://ads.google.com/local-services-ads) leads such as `lead_charged`, `lead_type`, `lead_status`.
    - Enums:
      - [`LeadStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadStatusEnum.LeadStatus)
      - [`LeadType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLeadTypeEnum.LeadType)
  - [`local_services_lead_conversation`](https://developers.google.com/google-ads/api/fields/v26/local_services_lead_conversation) contains message and phone conversation details such as `conversation_channel`, `call_duration_millis`, `call_recording_url`.
    - Phone call recording URL is authenticated against the target customer account and its manager accounts.
  - [`local_services_verification_artifact`](https://developers.google.com/google-ads/api/fields/v26/local_services_verification_artifact) returns a Local Services advertiser's artifacts such as background check, business licenses, and business insurance data. Any documents associated with license and insurance can be accessed through a URL.
    - Enums:
      - [`LocalServicesVerificationArtifactStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesVerificationArtifactStatusEnum.LocalServicesVerificationArtifactStatus)
      - [`LocalServicesVerificationArtifactType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesVerificationArtifactTypeEnum.LocalServicesVerificationArtifactType)
      - [`LocalServicesInsuranceRejectionReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesInsuranceRejectionReasonEnum.LocalServicesInsuranceRejectionReason)
      - [`LocalServicesLicenseRejectionReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServicesLicenseRejectionReasonEnum.LocalServicesLicenseRejectionReason)

### Planning

- Added support to return [`Forecast.views`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#views) and [`PlannedProductForecast.views`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#views) for [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService#generatereachforecast) for applicable product types.
- Added support to return [`PlannableTargeting.surface_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannableTargeting#surface_targeting) for [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService#listplannableproducts), which describes the available surfaces for a product.
- Added a new [`ReachPlanSurface`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanSurfaceEnum.ReachPlanSurface) enum.
- Added support for targeting [Target
  frequency](https://support.google.com/google-ads/answer/12400225) using [`AdvancedProductTargeting.target_frequency_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvancedProductTargeting#target_frequency_settings), which returns [`PlannedProductForecast.average_frequency`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#average_frequency).
- Added [`AudienceInsightsService.GenerateSuggestedTargetingInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generatesuggestedtargetinginsights) to return suggested targetable audiences.
- Added the following values to [`ReachPlanError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanErrorEnum.ReachPlanError):
  - `NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY`
  - `NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED`

### Recommendations

- Added [`RecommendationSubscriptionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationSubscriptionService) which manages recommendation subscriptions:
  - Resource: [`RecommendationSubscription`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationSubscription)
  - Field: [`MutateOperation.recommendation_subscription_operation`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateOperation#recommendation_subscription_operation)
  - Enum: [`ChangeClientType.GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeClientTypeEnum.ChangeClientType#google_ads_recommendations_subscription)
  - Errors:
    - [`RecommendationSubscriptionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationSubscriptionErrorEnum.RecommendationSubscriptionError)
    - [`RecommendationSubscriptionStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationSubscriptionStatusEnum.RecommendationSubscriptionStatus)
- Added the following types of recommendations:
  - [`FORECASTING_SET_TARGET_CPA`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#forecasting_set_target_cpa) which recommends setting a target CPA for campaigns that don't have one specified, in advance of a seasonal event that is forecasted to increase traffic.
  - [`SET_TARGET_CPA`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#set_target_cpa) which recommends setting a target CPA for campaigns that don't have one specified.
  - [`SET_TARGET_ROAS`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#set_target_roas) which recommends setting a target ROAS for campaigns that don't have one specified.

### Reporting

- Added the following new metrics, which can be queried with [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign) (available for Display, Video, Discovery, and App campaigns) and [`segments.device`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.device):
  - [`metrics.unique_users`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.unique_users)
  - [`metrics.average_impression_frequency_per_user`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_impression_frequency_per_user)

### Shopping

- Removed `ShoppingSetting.sales_country`, whose values are now returned as [`ShoppingSetting.feed_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#feed_label).
  - You can continue to use a specific [Merchant Center
    feed](https://support.google.com/merchants/answer/7439882) for a campaign by using the [`ShoppingSetting.feed_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#feed_label) field. It should be set to the feed label value or the two-letter country code previously used for `ShoppingSetting.sales_country`. For more details, see the support article for [feed
    labels](https://support.google.com/merchants/answer/12453549).
- Removed the dependency of product categories on a country code in reporting. The set of supported category IDs has not changed.
  - Replaced the following fields used in [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view):
    - `segments.product_bidding_category_level1` with [`segments.product_category_level1`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_category_level1)
    - `segments.product_bidding_category_level2` with [`segments.product_category_level2`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_category_level2)
    - `segments.product_bidding_category_level3` with [`segments.product_category_level3`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_category_level3)
    - `segments.product_bidding_category_level4` with [`segments.product_category_level4`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_category_level4)
    - `segments.product_bidding_category_level5` with [`segments.product_category_level5`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_category_level5)
  - Replaced `product_bidding_category_constant` with [`product_category_constant`](https://developers.google.com/google-ads/api/fields/v26/product_category_constant), which returns all available localizations of a category in a repeated field.
  - Replaced `ListingDimensionInfo.product_bidding_category` with [`ListingDimensionInfo.product_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo#product_category).
  - Replaced `ListingGroupFilterDimension.product_bidding_category` with [`ListingGroupFilterDimension.product_category`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingGroupFilterDimension#product_category).
- Removed support for adding [`Campaign.shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting) to Search campaigns. Trying to create a Search campaign with [`Campaign.shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting) or add [`Campaign.shopping_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#shopping_setting) to an existing Search campaign now results in [`OPERATION_NOT_PERMITTED_FOR_CONTEXT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContextErrorEnum.ContextError#operation_not_permitted_for_context).
- Removed support for adding [`CampaignCriterion.listing_scope`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#listing_scope) to Search campaigns. Trying to add [`CampaignCriterion.listing_scope`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#listing_scope) to an existing Search campaign now results in [`OPERATION_NOT_PERMITTED_FOR_CONTEXT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContextErrorEnum.ContextError#operation_not_permitted_for_context).
- Added following [conversions with cart
  data](https://support.google.com/google-ads/answer/9028254) metrics:
  - [`metrics.orders`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.orders)
  - [`metrics.average_order_value_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_order_value_micros)
  - [`metrics.average_cart_size`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_cart_size)
  - [`metrics.cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cost_of_goods_sold_micros)
  - [`metrics.gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.gross_profit_micros)
  - [`metrics.gross_profit_margin`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.gross_profit_margin)
  - [`metrics.revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.revenue_micros)
  - [`metrics.units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.units_sold)
  - [`metrics.cross_sell_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cross_sell_cost_of_goods_sold_micros)
  - [`metrics.cross_sell_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cross_sell_gross_profit_micros)
  - [`metrics.cross_sell_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cross_sell_revenue_micros)
  - [`metrics.cross_sell_units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cross_sell_units_sold)
  - [`metrics.lead_cost_of_goods_sold_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.lead_cost_of_goods_sold_micros)
  - [`metrics.lead_gross_profit_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.lead_gross_profit_micros)
  - [`metrics.lead_revenue_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.lead_revenue_micros)
  - [`metrics.lead_units_sold`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.lead_units_sold)
  - All these metrics are selectable with following reports:
    - [`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group)
    - [`ad_group_ad`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad)
    - [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view)
    - [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign)
    - [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer)
    - [`keyword_view`](https://developers.google.com/google-ads/api/fields/v26/keyword_view)
    - [`product_group_view`](https://developers.google.com/google-ads/api/fields/v26/product_group_view)
    - [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view)

### Unified Goals

- Added [`CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerLifecycleGoalService#configurecustomerlifecyclegoals) for configuring customer acquisition goals at the customer level.
  - Report: [`customer_lifecycle_goal`](https://developers.google.com/google-ads/api/fields/v26/customer_lifecycle_goal)
- Added [`CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignLifecycleGoalService#configurecampaignlifecyclegoals) for configuring customer acquisition goals at the campaign level.
  - Report: [`campaign_lifecycle_goal`](https://developers.google.com/google-ads/api/fields/v26/campaign_lifecycle_goal)
- Added [`CampaignConversionGoalError.CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignConversionGoalErrorEnum.CampaignConversionGoalError#cannot_use_store_sale_goal_for_performance_max_campaign).
- Added the following values to [`ConversionGoalCampaignConfigError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigError):
  - `EMPTY_CONVERSION_GOALS`
  - `STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED`
  - `PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES`

### Videos

- Added support for targeting Google TV at the campaign level:
  - Added [`NetworkSettings.target_google_tv_network`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.NetworkSettings#target_google_tv_network)
  - Added [`AdNetworkType.GOOGLE_TV`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdNetworkTypeEnum.AdNetworkType#google_tv).
- Added support for targeting YouTube at the campaign level:
  - Added [`NetworkSettings.target_youtube`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.NetworkSettings#target_youtube)
  - In [`AdNetworkType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdNetworkTypeEnum.AdNetworkType), merged `YOUTUBE_WATCH` and `YOUTUBE_SEARCH` into `YOUTUBE`.
  - Added [`CampaignError.CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#cannot_target_display_network_without_youtube). ## v14.1.0 (2023-08-09)

The following new features and updates were introduced in v14.1.

### Account Management

- [`Customer.customer_agreement_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#customer_agreement_setting) which shows if the customer has accepted the lead form term of service

### Assets

- New fields in [`AssetGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup) to show whether the asset group is serving or the reasons why it's not serving:
  - `primary_status`
  - `primary_status_reasons`
- New fields in [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAsset) to show whether the asset group asset is serving or the reasons why it's not serving:
  - `primary_status`
  - `primary_status_details`
  - `primary_status_reasons`
- New values in the [`CallToActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallToActionTypeEnum.CallToActionType) enum:
  - `BUY_NOW`
  - `DONATE_NOW`
  - `ORDER_NOW`
  - `PLAY_NOW`
  - `SEE_MORE`
  - `START_NOW`
  - `VISIT_SITE`
  - `WATCH_NOW`
- New values in the [`AssetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError) enum:
  - `CUSTOMER_NOT_VERIFIED`
  - `UNSUPPORTED_CALL_TO_ACTION`
  - `PAGE_FEED_INVALID_LABEL_TEXT`

### Billing

- New fields in [`Invoice`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice) and [`AccountSummary`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice.AccountSummary):
  - `export_charge_subtotal_amount_micros`
  - `export_charge_tax_amount_micros`
  - `export_charge_total_amount_micros`

### Campaigns

- New values in the
  [`CampaignPrimaryStatusReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignPrimaryStatusReasonEnum.CampaignPrimaryStatusReason)
  enum:

  - `HAS_ASSET_GROUPS_DISAPPROVED`
  - `HAS_ASSET_GROUPS_LIMITED_BY_POLICY`
  - `MOST_ASSET_GROUPS_UNDER_REVIEW`
- (Allowlisted accounts only)
  [`DiscoveryCampaignSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.DiscoveryCampaignSettings)
  with
  [`upgraded_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.DiscoveryCampaignSettings#upgraded_targeting):

  - When `upgraded_targeting` is set to `true`, you can add a location and a language as an ad group criterion

### Criteria

- New enum value:
  [`CriterionError.INVALID_DETAILED_DEMOGRAPHIC`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#invalid_detailed_demographic)

- (Allowlisted accounts only)
  Support for adding [`LanguageInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LanguageInfo) and
  [`LocationInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocationInfo) as an
  [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion):

  - This is available only for a [Discovery](https://developers.google.com/google-ads/api/docs/discovery/overview) campaign with upgraded targeting enabled

### Experiments

- New values in the [`ExperimentError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentErrorEnum.ExperimentError) enum:
  - `DUPLICATE_EXPERIMENT_CAMPAIGN_NAME`
  - `CANNOT_REMOVE_IN_CREATION_EXPERIMENT`
  - `CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES`

### Recommendations

- New types of recommendations:
  - [`PerformanceMaxOptInRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.PerformanceMaxOptInRecommendation) which recommends creating the first Performance Max campaign in the account
  - [`ImprovePerformanceMaxAdStrengthRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ImprovePerformanceMaxAdStrengthRecommendation) which recommends improving the asset group's strength of a Performance Max campaign
  - [`MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation) which recommends migrating a Dynamic Search Ad campaign to Performance Max

### Reporting

- New metrics and segments about new versus returning customers:
  - [`metrics.new_customer_lifetime_value`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.new_customer_lifetime_value)
  - [`metrics.all_new_customer_lifetime_value`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_new_customer_lifetime_value)
  - [`segments.new_versus_returning_customers`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.new_versus_returning_customers)
- New [`customer_search_term_insight`](https://developers.google.com/google-ads/api/fields/v26/customer_search_term_insight) and [`campaign_search_term_insight`](https://developers.google.com/google-ads/api/fields/v26/campaign_search_term_insight) views:
  - [`metrics.search_volume`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.search_volume) shows the volume range for a search term insight category

### Shopping

- New fields for listing groups:
  - [`ListingGroupInfo.path`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingGroupInfo#path)
  - [`AssetGroupListingGroupFilter.path`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilter#path)
- New field: [`ShoppingSetting.advertising_partner_ids`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#advertising_partner_ids%5B%5D)
- New values in the [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError) enum:
  - `NOT_LINKED_ADVERTISING_PARTNER`
  - `INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS`

### Videos

- (Allowlisted accounts only) [`AdType.DISCOVERY_VIDEO_RESPONSIVE_AD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#discovery_video_responsive_ad) and its corresponding [`DiscoveryVideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/DiscoveryVideoResponsiveAdInfo)

## v14 (2023-06-07)

The following new features and updates were introduced in v14.

### Campaigns

- Added [`CampaignBudgetError.BUDGET_AMOUNT_MUST_BE_UNSET_FOR_CUSTOM_BUDGET_PERIOD`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudgetErrorEnum.CampaignBudgetError#budget_amount_must_be_unset_for_custom_budget_period)

### Conversions

- Added support for identifying Google Analytics conversions and determining
  whether a conversion is imported from a Universal Analytics or GA4 property:

  - Added the following values to [`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType):
    - `UNIVERSAL_ANALYTICS_GOAL`
    - `UNIVERSAL_ANALYTICS_TRANSACTION`
    - `GOOGLE_ANALYTICS_4_CUSTOM`
    - `GOOGLE_ANALYTICS_4_PURCHASE`
  - Added [`ConversionAction.google_analytics_4_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#google_analytics_4_settings)
- Added [`Customer.offline_conversion_client_summaries`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#offline_conversion_client_summaries%5B%5D), which summarizes
  the status and diagnostic information of the customer's offline conversion
  uploads and adjustments.

  - Enums
    - [`OfflineEventUploadClient`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineEventUploadClientEnum.OfflineEventUploadClient):
      - `GOOGLE_ADS_API`
      - `GOOGLE_ADS_WEB_CLIENT`
      - `ADS_DATA_CONNECTOR`
    - [`OfflineConversionDiagnosticStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineConversionDiagnosticStatusEnum.OfflineConversionDiagnosticStatus):
      - `EXCELLENT`
      - `GOOD`
      - `NEEDS_ATTENTION`
      - `NO_RECENT_UPLOAD`
- Added `job_id` to the responses returned by
  [`ConversionAdjustmentUploadService.UploadConversionAdjustments`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadService#uploadconversionadjustments) and
  [`ConversionUploadService.UploadClickConversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadService#uploadclickconversions) for associating a
  response to an [`OfflineConversionUploadSummary.job_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineConversionUploadSummary#job_id).

### Criteria

- Added support for retrieving, creating and updating [account-level negative
  keywords](https://support.google.com/google-ads/answer/11396330):

  - Fields:
    - [`CustomerNegativeCriterion.negative_keyword_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerNegativeCriterion#negative_keyword_list)
  - Enums:
    - [`CriterionType.NEGATIVE_KEYWORD_LIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#negative_keyword_list)
    - [`SharedSetType.ACCOUNT_LEVEL_NEGATIVE_KEYWORDS`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedSetTypeEnum.SharedSetType#account_level_negative_keywords)
    - [`ResourceLimitType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType)
      - `SHARED_SETS_PER_ACCOUNT_FOR_ACCOUNT_LEVEL_NEGATIVE_KEYWORDS`
      - `ACCOUNT_LEVEL_NEGATIVE_KEYWORDS_PER_SHARED_SET`
  - Errors:
    - [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError)
      - `NEGATIVE_KEYWORD_SHARED_SET_DOES_NOT_EXIST`
      - `CANNOT_ADD_REMOVED_NEGATIVE_KEYWORD_SHARED_SET`
      - `CANNOT_HAVE_MULTIPLE_NEGATIVE_KEYWORD_LIST_PER_ACCOUNT`
      - `CUSTOMER_CANNOT_ADD_CRITERION_OF_THIS_TYPE`
- Added [`CriterionError.CANNOT_TARGET_SIMILAR_USER_LIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#cannot_target_similar_user_list)

### Hotel Ads

- Renamed `SuggestTravelAssetsRequest.place_id` to [`SuggestTravelAssetsRequest.place_ids`](https://developers.google.com/google-ads/api/reference/rpc/v26/SuggestTravelAssetsRequest#place_ids%5B%5D)

### Planning

- Removed the following methods from [`KeywordPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService):
  - `GenerateForecastCurve`
  - `GenerateForecastMetrics`
  - `GenerateForecastTimeSeries`
  - `GenerateHistoricalMetrics`
- Added [`KeywordPlanIdeaService.GenerateKeywordForecastMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService#generatekeywordforecastmetrics) to support generating keyword campaign forecast metrics without the need of creating a keyword plan first.
- Removed support for retrieving the `campaign_criterion_simulation` report
- Added support for [`YOUTUBE_DYNAMIC_LINEUP`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsDimensionEnum.AudienceInsightsDimension#youtube_dynamic_lineup) as a dimension in [`AudienceInsightsService.ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#listaudienceinsightsattributes).
- Added [`DynamicLineupAttributeMetadata.sample_channels`](https://developers.google.com/google-ads/api/reference/rpc/v26/DynamicLineupAttributeMetadata#sample_channels%5B%5D), used in [`GenerateAudienceCompositionInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generateaudiencecompositioninsights) responses to provide sample channels within lineups.

### Recommendations

- Added [`DynamicImageExtensionOptInRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.DynamicImageExtensionOptInRecommendation) which recommends enabling dynamic image extensions on the account
- Added [`LowerTargetRoasRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.LowerTargetRoasRecommendation) which recommends lowering target ROAS
- Added [`RaiseTargetCpaRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RaiseTargetCpaRecommendation) which recommends raising target CPA
- Added [`ResponsiveSearchAdAssetRecommendation.current_ad`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ResponsiveSearchAdAssetRecommendation#current_ad)

### Reporting

- Added the following values to [`ServedAssetFieldType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ServedAssetFieldTypeEnum.ServedAssetFieldType), which are available from [`ad_group_ad_asset_view.pinned_field`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view#ad_group_ad_asset_view.pinned_field):
  - `SITELINK`
  - `CALL`
  - `MOBILE_APP`
  - `CALLOUT`
  - `STRUCTURED_SNIPPET`
  - `PRICE`
  - `PROMOTION`
  - `AD_IMAGE`
  - `LEAD_FORM`
  - `BUSINESS_LOGO`

## v13.1.0 (2023-04-26)

The following new features and updates were introduced in v13.1.

### Assets

- [`LeadFormField.has_location_answer`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormField#has_location_answer)
  supports displaying locations from the location assets associated with
  campaigns or a customer with a lead form.

  Accompanying errors:
  - [`AssetError.LEAD_FORM_LOCATION_ANSWER_TYPE_DISALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError#lead_form_location_answer_type_disallowed)
  - [`AssetLinkError.CANNOT_LINK_LOCATION_LEAD_FORM_WITHOUT_LOCATION_ASSET`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError#cannot_link_location_lead_form_without_location_asset)
- New values in the [`AssetGroupError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupErrorEnum.AssetGroupError) enum:

  - `PATH1_REQUIRED_WHEN_PATH2_IS_SET`
  - `SHORT_DESCRIPTION_REQUIRED`
  - `FINAL_URL_REQUIRED`
  - `FINAL_URL_CONTAINS_INVALID_DOMAIN_NAME`
  - `AD_CUSTOMIZER_NOT_SUPPORTED`
  - `CANNOT_MUTATE_ASSET_GROUP_FOR_REMOVED_CAMPAIGN`

### Audiences

- New values in the [`UserListError`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListErrorEnum.UserListError) enum:
  - `APP_ID_NOT_ALLOWED`
  - `CANNOT_MUTATE_SYSTEM_LIST`
  - `MOBILE_APP_IS_SENSITIVE`

### Campaigns

- Support for returning campaign-level bid simulations for [Performance
  Max](https://developers.google.com/google-ads/api/docs/performance-max/overview) using [`campaign_simulation`](https://developers.google.com/google-ads/api/fields/v26/campaign_simulation).
- (Allowlisted accounts only) [`Campaign.listing_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#listing_type) and [`ListingType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingTypeEnum.ListingType) for [Performance
  Max](https://developers.google.com/google-ads/api/docs/performance-max/overview) campaigns. This field is replacing [`ShoppingSetting.use_vehicles_inventory`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#use_vehicle_inventory), which will be used only for Smart Shopping campaigns.

### Conversions

- [`CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerSkAdNetworkConversionValueSchemaService#mutatecustomerskadnetworkconversionvalueschema) enables advertisers to define [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) conversion value schemas for iOS app campaigns.
- New enum value: [`CustomConversionGoalError.NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomConversionGoalErrorEnum.CustomConversionGoalError#non_biddable_conversion_action_not_eligible_for_custom_goal)

### Planning

- New fields in the following request and response objects of [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService):
  - [`GenerateAudienceCompositionInsightsRequest.baseline_audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateAudienceCompositionInsightsRequest#baseline_audience) supports specifying the baseline audience to which the audience of interest is being compared.
  - [`ListInsightsEligibleDatesResponse.last_thirty_days`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListInsightsEligibleDatesResponse#last_thirty_days) supports retrieving the current default date range used in [`GenerateAudienceCompositionInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generateaudiencecompositioninsights) requests.

### Recommendations

- New types of [`recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#recommendation) for Shopping campaigns and [Google Merchant
  Center](https://developers.google.com/google-ads/api/docs/shopping-ads/merchant-center):
  - [`shopping_add_age_group_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_age_group_recommendation)
  - [`shopping_add_color_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_color_recommendation)
  - [`shopping_add_gender_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_gender_recommendation)
  - [`shopping_add_gtin_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_gtin_recommendation)
  - [`shopping_add_more_identifiers_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_more_identifiers_recommendation)
  - [`shopping_add_size_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_size_recommendation)
  - [`shopping_add_products_to_campaign_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_products_to_campaign_recommendation)
  - [`shopping_fix_disapproved_products_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_add_products_to_campaign_recommendation)
  - [`shopping_target_all_offers_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_target_all_offers_recommendation)
  - [`shopping_fix_suspended_merchant_center_account_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_fix_suspended_merchant_center_account_recommendation)
  - [`shopping_fix_merchant_center_account_suspension_warning_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_fix_merchant_center_account_suspension_warning_recommendation)
  - [`shopping_migrate_regular_shopping_campaign_offers_to_performance_max_recommendation`](https://developers.google.com/google-ads/api/fields/v26/recommendation#recommendation.shopping_migrate_regular_shopping_campaign_offers_to_performance_max_recommendation)

### Reporting

- New metrics:
  - [`metrics.average_target_cpa_micros`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_target_cpa_micros) to show the average target CPA.
  - [`metrics.average_target_roas`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.average_target_roas) to show the average target ROAS.

## v13 (2023-02-15)

The following new features and updates were introduced in v13.

### Account Management

- Added [`ProductLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLinkService) to support adding and removing a link between a Google Ads account and another product. This is similar to the [Linked
  accounts](https://support.google.com/google-ads/answer/11320486) view in the Google Ads UI. In this version, only Customer Match data partner linking is supported.

### Assets

- Added the following fields to [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer) to track
  the migration status of location and image assets:

  - `location_asset_auto_migration_done`
  - `image_asset_auto_migration_done`
  - `location_asset_auto_migration_done_time`
  - `image_asset_auto_migration_done_time`
- Added the following fields to
  [`CustomerAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAsset),
  [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset),
  [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset):

  - `primary_status`
  - `primary_status_details`
  - `primary_status_reasons`
- Added
  [`Asset.field_type_policy_summaries`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#field_type_policy_summaries%5B%5D)
  to return information about policy summaries for each field type.

- Asset field types

  - Added [`AssetFieldType.BUSINESS_LOGO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_logo).
  - Added support for setting [`CampaignAsset.field_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset#field_type) to the following values:
    - [`AssetFieldType.BUSINESS_NAME`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_name)
    - [`AssetFieldType.BUSINESS_LOGO`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#business_logo)
- Added `INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE` to

  - [`AdGroupError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupErrorEnum.AdGroupError#invalid_excluded_parent_asset_set_type)
  - [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#invalid_excluded_parent_asset_set_type)
- Added the following fields to
  [`AssetSetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetErrorEnum.AssetSetError):

  - `OAUTH_INFO_INVALID`
  - `OAUTH_INFO_MISSING`
  - `CANNOT_DELETE_AS_ENABLED_LINKAGES_EXIST`

### Audiences

- Removed `CombinedRuleUserListInfo` and `ExpressionRuleUserListInfo` and their references from `RuleBasedUserListInfo`. Use [`FlexibleUserListInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/FlexibleRuleUserListInfo) instead.
- Added [`QualifyingQuestion`](https://developers.google.com/google-ads/api/reference/rpc/v26/QualifyingQuestion) and [`qualifying_question`](https://developers.google.com/google-ads/api/fields/v26/qualifying_question) to support returning details about qualifying questions of [lead form
  assets](https://support.google.com/google-ads/answer/9423234). When advertisers suggest a qualifying question, it'll be reviewed and approved before being used in the lead forms.

### Batch Jobs

- Added [`BatchJobMetadata.execution_limit_seconds`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJob.BatchJobMetadata#execution_limit_seconds) to return the limit of execution in seconds. Batch jobs will be canceled if their execution time is longer than specified in this field.

### Billing

- Added [`InvalidActivitySummary`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice.InvalidActivitySummary) to allow for returning more details about the invalid activity for the invoice.
- Added [`AccountBudgetProposalError.CANCELED_BILLING_SETUP`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalErrorEnum.AccountBudgetProposalError#canceled_billing_setup).

### Campaigns

- Added [`SmartCampaignSettingService.GetSmartCampaignStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSettingService#getsmartcampaignstatus) for retrieving a more aggregated view of assets belonging to the Smart campaign. This should be preferred over other status fields---for example, [`Campaign.primary_status`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#primary_status) or [`Campaign.primary_status_reasons`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#primary_status_reasons%5B%5D) for Smart campaigns.
- Replaced `AdGroup.explorer_auto_optimizer_setting` with [`AdGroup.optimized_targeting_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#optimized_targeting_enabled) to support [optimized
  targeting](https://support.google.com/google-ads/answer/10537509). This is for the following [`AdvertisingChannelType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType): `DISPLAY`, `VIDEO`, `DISCOVERY`. This field is for allowlisted customers only.
- Added several new enum values to [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError):
  - `AVERAGE_DAILY_SPEND_TOO_HIGH`
  - `CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP`
  - `CANNOT_ATTACH_TO_BIDDING_STRATEGY`
  - `CANNOT_CHANGE_BUDGET_PERIOD`
  - `CANNOT_CREATE_DRAFT_CAMPAIGN`
  - `CANNOT_CREATE_MORE_THAN_ONE_DRAFT_CAMPAIGN`
  - `NOT_ENOUGH_CONVERSIONS`
  - `CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION`
  - `NOT_COMPATIBLE_WITH_BUDGET_TYPE`
  - `NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION`
  - `TRIAL_MUST_USE_SAME_BUDGET_AS_BASE`
  - `INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE`

### Conversions

- [`ConversionUploadError.CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#customer_not_accepted_customer_data_terms) will be returned if you upload a [`ClickConversion`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion) with [`user_identifiers`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#user_identifiers%5B%5D) set using [`ConversionUploadService.UploadClickConversion`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadService#uploadclickconversions), but have not accepted the [customer data
  terms](https://support.google.com/adspolicy/answer/7475709).
- [`ConversionUploadError.CLICK_CONVERSION_ALREADY_EXISTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#click_conversion_already_exists) will be returned if you try to upload the same combination of `gbraid`, `conversion_action`, and `conversion_date_time` on different days.
- [`ConversionUploadError.CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#customer_not_enabled_enhanced_conversions_for_leads) will be returned if you haven't followed the setup instructions before using [enhanced conversions for
  leads](https://developers.google.com/google-ads/api/docs/conversions/upload-identifiers).
- Added [`ConversionActionType.WEBPAGE_CODELESS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#webpage_codeless) to represent conversions created from website events.

### Criteria

- Added [`CampaignCriterion.local_service_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#local_service_id) and [`LocalServiceIdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocalServiceIdInfo) to allow for adding and removing services an advertiser serves to a [Local Services
  Campaign](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns).
  - [`CampaignCriterionError.AT_LEAST_ONE_LOCAL_SERVICE_ID_CRITERION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionErrorEnum.CampaignCriterionError#at_least_one_local_service_id_criterion_required_for_local_services_campaign) will be returned if you attempt to remove the *last* campaign criterion that contains [`local_service_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#local_service_id) from a Local Services Campaign.
  - [`CampaignCriterionError.LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionErrorEnum.CampaignCriterionError#local_service_id_not_found_for_category) will be returned if you attempt to add a campaign criterion that contains [`local_service_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion#local_service_id) that is invalid for the category of your Local Service campaign. You can get information about the category by fetching [`campaign.local_services_campaign_settings.category_bids`](https://developers.google.com/google-ads/api/fields/v26/campaign#campaign.local_services_campaign_settings.category_bids).

### Errors

- Starting in v13, the error codes returned for some invalid operations have changed for the following fields.

  | Previous error | New error |
  |---|---|
  | `BiddingError.INVALID_BID` | `https://developers.google.com/google-ads/api/reference/rpc/v26/FieldErrorEnum.FieldError#field_cannot_be_cleared` |
  | `BiddingError.CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN` | `https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#cannot_attach_to_bidding_strategy` |
  | `DistinctError.DUPLICATE_ELEMENT` | `https://developers.google.com/google-ads/api/reference/rpc/v26/MutateErrorEnum.MutateError#id_exists_in_multiple_mutates` |
  | `OperationAccessDeniedError.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE` | `https://developers.google.com/google-ads/api/reference/rpc/v26/ContextErrorEnum.ContextError#operation_not_permitted_for_context` |
  | `BiddingError.BID_TOO_SMALL` | `https://developers.google.com/google-ads/api/reference/rpc/v26/RangeErrorEnum.RangeError#too_low` |
  | `OperationAccessDeniedError.CREATE_OPERATION_NOT_PERMITTED` | `https://developers.google.com/google-ads/api/reference/rpc/v26/ContextErrorEnum.ContextError#operation_not_permitted_for_context` |
  | `CampaignError.MISSING_SHOPPING_SETTING` | `https://developers.google.com/google-ads/api/reference/rpc/v26/FieldErrorEnum.FieldError#required` |
  | `OperationAccessDeniedError.MUTATE_NOT_PERMITTED_FOR_CUSTOMER` | `https://developers.google.com/google-ads/api/reference/rpc/v26/MutateErrorEnum.MutateError#mutate_not_allowed` |

### Hotel \& Travel

- Added support for Performance Max for travel goals with the following new fields, resources, and enums:
  - Fields
    - [`Campaign.hotel_property_asset_set`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#hotel_property_asset_set)
    - [`AssetSet.hotel_property_data`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet#hotel_property_data) and [`HotelPropertyData`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet.HotelPropertyData)
    - [`Asset.hotel_property_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#hotel_property_asset) and [`HotelPropertyAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPropertyAsset)
  - Enums
    - Added `HOTEL_PROPERTY` to:
      - [`AssetSetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetTypeEnum.AssetSetType#hotel_property)
      - [`AssetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType#hotel_property)
      - [`AssetFieldType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#hotel_property)
    - [`AssetGroupAssetError.HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAssetErrorEnum.AssetGroupAssetError#hotel_property_asset_not_linked_to_campaign)
    - [`CampaignError.ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#asset_set_not_a_hotel_property_asset_set)
    - [`CampaignError.HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#hotel_property_asset_set_only_for_performance_max_for_travel_goals)
- Added [`TravelAssetSuggestionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/TravelAssetSuggestionService) to suggest required images and text assets (such as headlines, descriptions, long descriptions) to be used to create asset groups in Performance Max for travel goal campaigns.
- **Allowlisted customers only:** Added support for [Things to do ads
  campaigns](https://support.google.com/google-ads/answer/10723637) by adding the following new fields, resources, and enums:
  - Fields
    - [`Campaign.travel_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#travel_campaign_settings) and [`TravelCampaignSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.TravelCampaignSettings)
    - [`Ad.travel_ad`](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#travel_ad) and [`TravelAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/TravelAdInfo)
    - [`ListingDimensionInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo)
      - `activity_id` and [`ActivityIdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ActivityIdInfo)
      - `activity_rating` and [`ActivityRatingInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ActivityRatingInfo)
      - `activity_country` and [`ActivityCountryInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ActivityCountryInfo)
  - Enums
    - For campaign creation
      - [`AdvertisingChannelType.TRAVEL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType#travel)
      - [`AdvertisingChannelSubType.TRAVEL_ACTIVITIES`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType#travel_activities)
    - For ad group creation
      - [`AdGroupType.TRAVEL_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#travel_ads)
    - For ad creation
      - [`AdType.TRAVEL_AD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#travel_ad)
    - Errors
      - [`CampaignError.MISSING_TRAVEL_CUSTOMER_LINK`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#missing_travel_customer_link)
      - [`CampaignError.INVALID_TRAVEL_CUSTOMER_LINK`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#invalid_travel_customer_link)
  - Reports
    - [`travel_performance_view`](https://developers.google.com/google-ads/api/fields/v26/travel_performance_view)
    - [`travel_activity_group_view`](https://developers.google.com/google-ads/api/fields/v26/travel_activity_group_view)

### Recommendations

- The following feed-based recommendations are replaced with asset-based recommendations:
  - `Recommendation.call_extension_recommendation` replaced by [`Recommendation.call_asset_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#call_asset_recommendation)
  - `Recommendation.callout_extension_recommendation` replaced by [`Recommendation.callout_asset_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#callout_asset_recommendation)
  - `Recommendation.sitelink_extension_recommendation` replaced by [`Recommendation.sitelink_asset_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#sitelink_asset_recommendation)
- Added [`Recommendation.campaigns`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation#campaigns%5B%5D) to show the campaigns targeted by the recommendation.
- Removed `ResponsiveSearchAdAssetRecommendation.current_ad`.

### Shopping

- Removed `ProductBiddingCategoryInfo.country_code`.
- Added support for [`segments.product_feed_label`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.product_feed_label) in [`shopping_performance_view`](https://developers.google.com/google-ads/api/fields/v26/shopping_performance_view).

### Video

- Removed `PreferredContentInfo` and its reference from [`AdGroupBidModifier`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier).
- Added call-to-action fields for video bumper ads:
  - [`VideoBumperInStreamAdInfo.action_button_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoBumperInStreamAdInfo#action_button_label)
  - [`VideoBumperInStreamAdInfo.action_headline`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoBumperInStreamAdInfo#action_headline)
- Added [`TargetCpm.target_frequency_goal`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetCpm#target_frequency_goal) and [`TargetCpmTargetFrequencyGoal`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetCpmTargetFrequencyGoal) to support providing additional details about the goal of the Target CPM bidding strategy.
- Added [`AdvertisingChannelSubType.VIDEO_REACH_TARGET_FREQUENCY`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType#video_reach_target_frequency).
- Added [`PlacementType.GOOGLE_PRODUCTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlacementTypeEnum.PlacementType#google_products).

## 12.0.0 (2022-10-26)

The features and changes below were added in v12.

### Account Management

- Added a new account link type, [`ADVERTISING_PARTNER`](https://developers.google.com/google-ads/api/reference/rpc/v26/LinkedAccountTypeEnum.LinkedAccountType#advertising_partner) for linking a customer account to another one. This is preparation for an upcoming feature in a following release.
- Added [`AccountLinkError.PERMISSION_DENIED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkErrorEnum.AccountLinkError#permission_denied) for the case where a non-admin user tries to create an account link.

### Ads

- Removed support for creating a new [Gmail
  ad](https://support.google.com/adspolicy/answer/6376747). Use [Discovery
  campaigns](https://developers.google.com/google-ads/api/docs/discovery/overview) instead.

### Assets

- Added support for retrieving [`CustomLeadFormSubmissionField`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomLeadFormSubmissionField) through [`LeadFormSubmissionData`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormSubmissionData) using [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream) or [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
- Added support for adding, updating, and removing
  [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) and
  [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset) with the `field_type` as
  [`AD_IMAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType#ad_image)
  (for allowlisted customers only).

  - You can retrieve stats for Image assets (`asset_field_type_view.field_type =
    AD_IMAGE`) using the [`asset_field_type_view`](https://developers.google.com/google-ads/api/fields/v26/asset_field_type_view) report.
- The [`asset_set_asset`](https://developers.google.com/google-ads/api/fields/v26/asset_set_asset) report now supports metrics
  and segments.

- Added
  [`ad_group_ad_asset_view.pinned_field`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view#pinned_field)
  to allow filtering by a pinned asset.

- Added support for
  [`segment.conversion_action`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view#segments.conversion_action)
  to the
  [`ad_group_ad_asset_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view) report.

- Added support for linking customers and ad groups with asset sets for [test
  accounts](https://developers.google.com/google-ads/api/docs/best-practices/test-accounts) only.

  - [`CustomerAssetSetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAssetSetService)
    for adding/updating/removing
    [`CustomerAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAssetSet), which represents a
    link between a [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer) and an
    [`AssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet).

  - [`AdGroupAssetSetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetSetService) for
    adding/updating/removing [`AdGroupAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetSet),
    which represents a link between an [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup) and an
    [`AssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet).

- Added support for mutating and fetching location assets for [test
  accounts](https://developers.google.com/google-ads/api/docs/best-practices/test-accounts) only.

  - Fields:

    - Added [`Asset.location_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#location_asset) whose type is [`LocationAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocationAsset).
    - Added the following fields to [`AssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet):
      - `location_group_parent_asset_set_id`
      - `asset_set_source` (oneof field)
        - `location_set` (use with [`CustomerAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAssetSet))
        - `business_profile_location_group` (use with [`CampaignAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetSet) and [`AdGroupAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetSet))
        - `chain_location_group` (use with [`CampaignAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetSet) and [`AdGroupAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetSet))
    - Added `excluded_parent_asset_set_types` to [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) and [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup).
  - Enums:

    - Added [`AssetType.LOCATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType#location).
    - Added the following values to [`AssetSetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetTypeEnum.AssetSetType):
      - `LOCATION_SYNC`
      - `BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP`
      - `CHAIN_DYNAMIC_LOCATION_GROUP`
      - `STATIC_LOCATION_GROUP`
  - Reports (available for all accounts):

    - [`per_store_view`](https://developers.google.com/google-ads/api/fields/v26/per_store_view) returns stats at the place ID level. There are no stats returned yet; this is a future feature that was added so you can begin building your implementation against it.
    - [`asset_set_type_view`](https://developers.google.com/google-ads/api/fields/v26/asset_set_type_view) returns stats at the [`AssetSetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetTypeEnum.AssetSetType) level, which currently only supports location asset set.

### Audiences

- Added the following values to
  [`OfflineUserDataJobFailureReason`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobFailureReasonEnum.OfflineUserDataJobFailureReason):

  - `HIGH_AVERAGE_TRANSACTION_VALUE`
  - `LOW_AVERAGE_TRANSACTION_VALUE`
  - `NEWLY_OBSERVED_CURRENCY_CODE`

### Bidding

- Added support for [linked portfolio bidding strategies and campaign
  budget](https://support.google.com/google-ads/answer/11239164). Bidding
  strategies and campaign budgets can modify these links using [bulk
  mutates](https://developers.google.com/google-ads/api/docs/mutating/bulk-mutate):

  - [`BiddingStrategy.aligned_campaign_budget_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#aligned_campaign_budget_id)
  - [`CampaignBudget.aligned_bidding_strategy_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget#aligned_bidding_strategy_id)

### Billing

- Added [`AccountSummary`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice.AccountSummary) as [`Invoice.account_summaries[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice#account_summaries%5B%5D) for reporting reconciliation (for allowlisted customers only).
- Added [`BillingSetupError.TOO_MANY_BILLING_SETUPS_FOR_PAYMENTS_ACCOUNT`](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupErrorEnum.BillingSetupError#too_many_billing_setups_for_payments_account).
- Added [`AccountBudgetProposalError.INVALID_MASTER_SERVICE_AGREEMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalErrorEnum.AccountBudgetProposalError#invalid_master_service_agreement).

### Campaigns

- Changes in [Smart campaigns](https://developers.google.com/google-ads/api/docs/smart-campaigns/overview):

  - Updated [`SmartCampaignSuggestService.SuggestKeywordThemes`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSuggestService#suggestkeywordthemes) to generate more keyword theme suggestions for Smart campaigns and can suggest [free-form keyword
    themes](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordThemeInfo#free_form_keyword_theme) in some cases.
  - Improved error handling and added more user-facing error codes for [`SmartCampaignSuggestService.SuggestKeywordThemes`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSuggestService#suggestkeywordthemes).
- Removed support for creating new Smart Display campaigns. Existing Smart
  Display campaigns still serve as usual.

  - [`OperationAccessDeniedError.CREATE_OPERATION_NOT_PERMITTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/OperationAccessDeniedErrorEnum.OperationAccessDeniedError#create_operation_not_permitted) is thrown if you try to create a new Smart Display campaign.
- Added the following fields to [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign):

  - [`primary_status`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#primary_status) to provide insight into why a campaign is not serving or not serving optimally.
  - [`primary_status_reasons`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#primary_status_reasons) to provide reasons into why a campaign is not serving or not serving optimally. These reasons are aggregated to determine `primary_status`.
- Enabled adding and removing [location
  targeting](https://developers.google.com/google-ads/api/docs/targeting/location-targeting) to [Local Services
  campaigns](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns) except for [proximity
  targeting](https://developers.google.com/google-ads/api/docs/targeting/location-targeting).

  - Added the following errors to [`CampaignCriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionErrorEnum.CampaignCriterionError) for the Local service campaigns:
    - `AT_LEAST_ONE_POSITIVE_LOCATION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN`
    - `CANNOT_ADD_OR_REMOVE_LOCATION_FOR_LOCAL_SERVICES_CAMPAIGN`
    - `CANNOT_TARGET_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN`
    - `LOCATION_INVALID_FOR_LOCAL_SERVICES_CAMPAIGN`
    - `LOCATION_NOT_IN_HOME_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN`
    - `LOCATION_NOT_LAUNCHED_FOR_LOCAL_SERVICES_CAMPAIGN`

### Conversions

- [`conversion_tracking_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#conversion_tracking_id) will always be \> 0 for all customers. Previously, this field could be 0 for customers who hadn't created any conversion actions before.
- Added [`debug_enabled`](https://developers.google.com/google-ads/api/reference/rpc/v26/UploadClickConversionsRequest#debug_enabled) for performing all checks and returning errors if found when uploading [enhanced conversions](https://developers.google.com/google-ads/api/docs/conversions/enhance-conversions).

### Criteria

- Added the following asset set fields to
  [`LocationGroupInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocationGroupInfo) for test accounts:

  - `enable_customer_level_location_asset_set`
  - `location_group_asset_sets`
- Added the following values to
  [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError):

  - `CANNOT_SET_ASSET_SET_FIELD_FOR_CUSTOMER`
  - `CANNOT_SET_ASSET_SETS_WITH_FEED_ITEM_SETS`
  - `CANNOT_SET_BOTH_ASSET_SET_AND_FEED`
  - `CANNOT_SET_FEED_OR_FEED_ITEM_SETS_FOR_CUSTOMER`
  - `CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_ASSET_SETS`
  - `INVALID_LOCATION_GROUP_ASSET_SETS`

### Errors

- Error codes returned for some invalid operations have changed for the
  following fields.

  - [`BiddingStrategy.currency_code`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#currency_code)
  - [`BiddingStrategy.scheme`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#scheme)
  - [`BiddingStrategy.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#type)
  - [`TargetCpa.target_cpa_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetCpa#target_cpa_micros)
  - [`TargetImpressionShare.cpc_bid_ceiling_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetImpressionShare#cpc_bid_ceiling_micros)
  - [`TargetSpend.target_spend_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetSpend#target_spend_microsdeprecated) (deprecated)

| Previous Error | New Error |
|---|---|
| BiddingError.BID_TOO_BIG | RangeError.TOO_HIGH |
| BiddingError.BID_TOO_SMALL | RangeError.TOO_LOW |
| FieldError.INVALID_VALUE | ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| BiddingStrategyError.CANNOT_CHANGE_BIDDING_STRATEGY_TYPE | FieldError.IMMUTABLE_FIELD |
| MutateError.RESOURCE_READ_ONLY | MutateError.MUTATE_NOT_ALLOWED |
| OperationAccessDeniedError.MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT | MutateError.MUTATE_NOT_ALLOWED |

### Experiments

- Removed `CampaignExperimentService` in favor of the previously added new [experiments](https://developers.google.com/google-ads/api/docs/experiments/overview).
- Renamed `ExperimentArm.trial` to [`ExperimentArm.experiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm#experiment).
- When you create a new experiment arm using [`MutateExperimentArms`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArmService#mutateexperimentarms) and [set `response_content_type` of your mutate request
  to`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/docs/mutating/best-practices), it now also populates values in [`ExperimentArm.in_design_campaigns`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentArm#in_design_campaigns%5B%5D).

### Feeds

- Added `LEGACY_FEED_TYPE_READ_ONLY` to the following enums:

  - [`CampaignFeedError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignFeedErrorEnum.CampaignFeedError)
  - [`FeedItemError`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemErrorEnum.FeedItemError)
  - [`FeedMappingError`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedMappingErrorEnum.FeedMappingError)

### Planning

- [`AudienceInsightsService.ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#listaudienceinsightsattributes) now accepts [`AudienceInsightsDimension.GEO_TARGET_COUNTRY`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsDimensionEnum.AudienceInsightsDimension#geo_target_country) and [`AudienceInsightsDimension.SUB_COUNTRY_LOCATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsDimensionEnum.AudienceInsightsDimension#sub_country_location), enabling clients to discover the location criteria that can be used in `AudienceInsightsService`.
- Added [`AudienceInsightsService.ListInsightsEligibleDates`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#listinsightseligibledates) (available to allowlisted accounts only), enabling clients to discover the set of date ranges that can be used in `AudienceInsightsService`.
- Removed `GenerateProductMixIdeas` from
  [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService).

- Added
  [`Targeting.plannable_location_ids`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting#plannable_location_ids%5B%5D),
  which supports targeting multiple geo locations within the same parent
  location in a single [reach forecast](https://developers.google.com/google-ads/api/docs/reach-forecasting).

### Recommendations

- Added [`RaiseTargetCpaBidTooLowRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.RaiseTargetCpaBidTooLowRecommendation) which identifies target CPA adjustments to help campaigns start serving.
- Added [`ForecastingSetTargetRoasRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ForecastingSetTargetRoasRecommendation) which identifies target ROAS adjustments to capture additional conversion value from expected traffic increases.

### Reporting

- Added support for returning the number of clicks for sitelinks (when [`segments.click_type`](https://developers.google.com/google-ads/api/fields/v26/landing_page_view#segments.click_type) `= SITELINKS`) in the [`landing_page_view`](https://developers.google.com/google-ads/api/fields/v26/landing_page_view) report.
- Added the following purchased traffic metrics:

  - [`metrics.publisher_purchased_clicks`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.publisher_purchased_clicks)
  - [`metrics.publisher_organic_clicks`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.publisher_organic_clicks)
  - [`metrics.publisher_unknown_clicks`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.publisher_unknown_clicks)

### Video

- Made [`AdGroup.cpv_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#cpv_bid_micros) mutable.

## 11.1.0 (2022-08-17)

The functionality and changes below were added in v11.1.

### Assets

- Added [`AssetGroup.ad_strength`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup#ad_strength) to represent the overall quality of the asset group.
  - When advertisers mutate asset groups or assets associated with the asset groups, this field is recalculated. Until the recalculation is finished, the value is `PENDING`.
- Added [`AssetLinkError.EXCLUDED_PARENT_FIELD_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError#excluded_parent_field_type).

### Audiences

- Added [`FlexibleRuleUserListInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/FlexibleRuleUserListInfo) and [`RuleBasedUserListInfo.flexible_rule_user_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/RuleBasedUserListInfo#flexible_rule_user_list).
- Added more values to the [`LeadFormFieldUserInputType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType) enum (used as predefined questions for lead form extensions).
- Added the following fields to [`UserAttribute`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserAttribute):
  - `lifecycle_stage`
  - `first_purchase_date_time`
  - `event_attribute`
- Added the following errors to [`OfflineUserDataJobError`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError):
  - `FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME`
  - `INVALID_LIFECYCLE_STAGE`
  - `INVALID_EVENT_VALUE`
  - `EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED`

### Bidding

- Added [`Campaign.bidding_strategy_system_status`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#bidding_strategy_system_status) to show the system status of the bidding strategy, such as whether it is learning, limited, or misconfigured. [Learn
  more](https://support.google.com/google-ads/answer/6263057).

### Campaigns

- Added support for the following metrics in the [campaign](https://developers.google.com/google-ads/api/fields/v26/campaign) report:
  - `all_conversions_from_click_to_call`
  - `all_conversions_from_directions`
  - `all_conversions_from_menu`
  - `all_conversions_from_order`
  - `all_conversions_from_other_engagement`
  - `all_conversions_from_store_visit`
  - `all_conversions_from_store_website`
- Made `metrics.phone_call` compatible with `segments.hour` in the [campaign](https://developers.google.com/google-ads/api/fields/v26/campaign) report.

Experiments

- You can now create [experiments](https://developers.google.com/google-ads/api/docs/experiments/overview) using [`GoogleAdsService.Mutate()`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate). Previously, it was possible only when using [`ExperimentService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentService).

### Planning

- Added
  [`Targeting.audience_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting#audience_targeting),
  which allows for specifying [affinity and in-market
  categories](https://developers.google.com/google-ads/api/reference/data/codes-formats)
  to generate a reach forecast using
  [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService#generatereachforecast).

- Added support for YouTube Select:

  - Added support for returning [`YouTubeSelectLineUp`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeSelectLineUp) as product metadata when calling [`ReachPlanService.ListPlannableProducts`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService#listplannableproducts).
  - Added [`PlannedProduct.advanced_product_targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProduct#advanced_product_targeting), which allows for specifying [`YouTubeSelectSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/YouTubeSelectSettings) to generate a reach forecast using [`ReachPlanService.GenerateReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService#generatereachforecast).
- Added
  [`AudienceInsightsService.GenerateAudienceCompositionInsights`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generateaudiencecompositioninsights)
  (available to allowlisted accounts only), used to find attributes
  strongly associated with a particular audience, similar to [Insights
  Finder](https://support.google.com/google-ads/answer/11161206).

### Recommendations

- Added [`UpgradeLocalCampaignToPerformanceMaxRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.UpgradeLocalCampaignToPerformanceMaxRecommendation). [Learn more](https://ads-developers.googleblog.com/2022/07/performance-max-upgrade-has-started.html).
- Added [`DisplayExpansionOptInRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.DisplayExpansionOptInRecommendation).

## 11.0 (2022-06-08)

The functionality and changes below were added in v11.0.

### Assets

- Added [`AssetSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSourceEnum.AssetSource) to show the source of asset or asset link for whom generated the entity. This is available as `source` in [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset), [`CustomerAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAsset), [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset), and [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset).

### Audiences

- Removed `DateSpecificRuleUserListInfo` and `RuleBasedUserListInfo.date_specific_rule_user_list`.

### Bidding

- Renamed `MaximizeConversions.target_cpa` to [`MaximizeConversions.target_cpa_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions#target_cpa_micros). `MaximizeConversions.target_cpa` of [`AccessibleBiddingStrategy`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccessibleBiddingStrategy) is renamed to [`target_cpa_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccessibleBiddingStrategy.MaximizeConversions#target_cpa_micros).

### Campaigns

- Smart campaigns

  - Added [`SmartCampaignSetting.ad_optimized_business_profile_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSetting#ad_optimized_business_profile_setting) and [`AdOptimizedBusinessProfileSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSetting.AdOptimizedBusinessProfileSetting) to allow Smart campaigns to use business profiles optimized for ads as landing pages.
  - Added [`SmartCampaignSetting.business_profile_location`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSetting#business_profile_location) to accept the resource names of the Google Business Profile location to associate with Smart campaigns.
  - Removed `SmartCampaignSetting.business_location_id`, which is superseded by [`SmartCampaignSetting.business_profile_location`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSetting#business_profile_location).
- Added
  [`Campaign.performance_max_upgrade`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#performance_max_upgrade),
  whose type is
  [`PerformanceMaxUpgrade`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.PerformanceMaxUpgrade),
  to show the status information about a campaign being upgraded to [Performance
  Max](https://developers.google.com/google-ads/api/docs/performance-max/overview). Use the new
  [`UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation)
  to initiate the upgrade.

- The [`search_click_share`](https://developers.google.com/google-ads/api/fields/v26/campaign#metrics.search_click_share)
  metric is now available for Performance Max campaigns.

- For [Local Services
  campaigns](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns):

  - Added the [`ManualCpa`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManualCpa) bidding strategy and
    [`Campaign.local_services_campaign_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#local_services_campaign_settings),
    whose type is
    [`LocalServicesCampaignSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesCampaignSettings).

  - You can set bids of the `ManualCpa` bidding strategy through
    [`LocalServicesCampaignSettings.category_bids`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.LocalServicesCampaignSettings#category_bids).

  - Added support for setting the
    [`MaximizeConversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions) bidding strategy
    as standard bidding strategy.

  - Added support for setting ad schedules as a [campaign
    criterion](https://developers.google.com/google-ads/api/docs/targeting/criteria).

### Conversions

- Added two new fields to
  [`FirebaseSettings`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction.FirebaseSettings):

  - [`property_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction.FirebaseSettings#property_id)
  - [`property_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction.FirebaseSettings#property_name)
- Added
  [`ConversionAdjustmentUploadError.ORDER_ID_CONTAINS_PII`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError#order_id_contains_pii).

- Added
  [`ConversionUploadError.ORDER_ID_CONTAINS_PII`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#order_id_contains_pii).

- Removed
  `ConversionUploadError.EXTERNALLY_ATTRIBUTED_CONVERSION_TYPE_NOT_PERMITTED_WITH_BRAID`.

### Criteria

- Added [`SettingError.BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING`](https://developers.google.com/google-ads/api/reference/rpc/v26/SettingErrorEnum.SettingError#bid_only_is_not_allowed_to_be_modified_with_customer_match_targeting).

### Experiments

- Removed `ExperimentType.SMART_DISPLAY`.

### Planning

- Added [`KeywordPlanIdeaService.GenerateAdGroupThemes`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService#generateadgroupthemes), which you can provide keywords and a list of ad groups. The method returns suggested modifications (such as keyword text and match type) of the keywords along with the suggested ad groups in which the keywords should be placed.
- Added two methods to [`AudienceInsightsService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService) that are available to allowlisted accounts only:
  - [`GenerateInsightsFinderReport`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#generateinsightsfinderreport), used to create links to audience insight reports in [Insights
    Finder](https://support.google.com/google-ads/answer/11161206).
  - [`ListAudienceInsightsAttributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceInsightsService#listaudienceinsightsattributes), used to discover topics or categories for which insights are available.
- Added several new fields to support co-viewing metrics in [Reach
  Forecast](https://developers.google.com/google-ads/api/docs/reach-forecasting).

  - Several new fields as part of
    [`ReachForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachForecast):

    - In [`Forecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast):
      [`on_target_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#on_target_coview_reach)
      [`total_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#total_coview_reach)
      [`on_target_coview_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#on_target_coview_impressions)
      [`total_coview_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#total_coview_impressions)

    - In [`EffectiveFrequencyBreakdown`](https://developers.google.com/google-ads/api/reference/rpc/v26/EffectiveFrequencyBreakdown#effective_coview_reach):
      [`effective_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/EffectiveFrequencyBreakdown#effective_coview_reach)
      [`on_target_effective_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/EffectiveFrequencyBreakdown#on_target_effective_coview_reach)

    - In [`PlannedProductForecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast):
      [`on_target_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#on_target_coview_reach)
      [`total_coview_reach`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#total_coview_reach)
      [`on_target_coview_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#on_target_coview_impressions)
      [`total_coview_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast#total_coview_impressions)

  - Added [`ForecastMetricOption.include_coview`](https://developers.google.com/google-ads/api/reference/rpc/v26/ForecastMetricOptions#include_coview),
    which is used in
    [`GenerateReachForecastRequest.forecast_metric_options`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateReachForecastRequest#forecast_metric_options)
    as an option to request the above co-view metrics to be included in the
    response.

### Recommendation

- Added
  [`ResponsiveSearchAdImproveAdStrengthRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ResponsiveSearchAdImproveAdStrengthRecommendation).

- Added
  [`UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation).

### Reporting

- Made [`segments.asset_interaction_target.asset`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.asset_interaction_target.asset) and [`segments.asset_interaction_target.interaction_on_this_asset`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.asset_interaction_target.interaction_on_this_asset) compatible with [`ad_group`](https://developers.google.com/google-ads/api/fields/v26/ad_group) and [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign).

### Shopping

- Added [`ShoppingSetting.feed_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#feed_label), a more flexible way of matching campaigns with Merchant feeds. This field replaces the functionality of [`ShoppingSetting.sales_country`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.ShoppingSetting#sales_country). Only one of these fields can be used at a time, but both fields are supported. This is available to allowlisted accounts only.

## 10.1.0 (2022-04-27)

The functionality and changes below were added in v10.1.0.

### Assets

- Added the following for [lead
  forms](https://support.google.com/google-ads/answer/9423234):
  - Support for retrieving submitted lead form data through [`LeadFormSubmissionData`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormSubmissionData) using [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) and [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream)
  - [`LeadFormAsset.custom_question_fields`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormAsset#custom_question_fields)
- Added the following asset types:
  - Added `dynamic_real_estate_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic real estate assets.
  - Added `dynamic_custom_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic custom assets.
  - Added `dynamic_hotels_and_rentals_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic hotels and rentals assets.
  - Added `dynamic_flights_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic flights assets.
  - Added `dynamic_travel_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic travel assets.
  - Added `dynamic_local_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic local assets.
  - Added `dynamic_jobs_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support dynamic jobs assets.
- Added support for the following fields to [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view):
  - `asset_group`
  - `asset_group_listing_group_filter`
- Added [`ad_group_ad_asset_combination_view.enabled`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_combination_view#enabled).
- Added [`AssetError.NAME_CONFLICT_FOR_ASSET_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError#name_conflict_for_asset_type).

### Audiences

- Added support for [`metrics.absolute_top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.absolute_top_impression_percentage) and [`metrics.top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.top_impression_percentage) in [`campaign_audience_view`](https://developers.google.com/google-ads/api/fields/v26/campaign_audience_view) and [`ad_group_audience_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_audience_view).
- Added [`ResourceLimitType.RULE_BASED_USER_LISTS_PER_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType#rule_based_user_lists_per_customer).
- Added the following values to [`AudienceError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceErrorEnum.AudienceError):
  - `AUDIENCE_SEGMENT_NOT_FOUND`
  - `AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED`
  - `DUPLICATE_AUDIENCE_SEGMENT`
  - `TOO_MANY_SEGMENTS`
  - `TOO_MANY_DIMENSIONS_OF_SAME_TYPE`
  - `IN_USE`

### Batch Jobs

- Added [`BatchJobOperation.remove`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobOperation#remove) to support removing batch jobs in the `PENDING` state.

### Campaigns

- Added support for retrieving, creating, and updating [Discovery
  campaigns](https://support.google.com/google-ads/answer/9176876), their ad groups, and their ads.
  - Enums:
    - [`AdvertisingChannelType.DISCOVERY`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType#discovery)
    - [`AdType.DISCOVERY_CAROUSEL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#discovery_carousel)
    - [`AdType.DISCOVERY_MULTI_ASSET`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#discovery_multi_asset)
    - [`AssetType.DISCOVERY_CAROUSEL_CARD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType#discovery_carousel_card)
- Added support for retrieving, creating, and updating [campaign
  groups](https://support.google.com/google-ads/answer/6393371):
  - Resource: [`CampaignGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGroup)
  - Service: [`CampaignGroupService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGroupService)
  - Fields in other resources:
    - [`Campaign.campaign_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#campaign_group)
    - [`GoogleAdsRow.campaign_group`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsRow#campaign_group)
  - Enums:
    - [`CampaignGroupStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignGroupStatusEnum.CampaignGroupStatus)
- [Local Services campaigns](https://developers.google.com/google-ads/api/docs/campaigns/local-service-campaigns), previously in Beta, are now in generally availability
- Added legacy support for the following dimensions to [`ListingDimensionInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo) for Display campaigns only:
  - [`ProductGroupingInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductGroupingInfo)
  - [`ProductLabelsInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLabelsInfo)
  - [`ProductLegacyConditionInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductLegacyConditionInfo)
  - [`ProductTypeFullInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductTypeFullInfo)

### Change History

- Added the following values to [`ChangeEventResourceType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeEventResourceTypeEnum.ChangeEventResourceType):
  - `ASSET_SET`
  - `ASSET_SET_ASSET`
  - `CAMPAIGN_ASSET_SET`

### Conversions

- Added [`ConversionTrackingSetting.google_ads_conversion_customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting#google_ads_conversion_customer), used to determine which Google Ads account is managing your account's conversions.
- Added [`ClickConversion.conversion_environment`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#conversion_environment) to support reporting the environment on which a conversion was recorded. This feature is available to allowlisted accounts only.
- Added support for [`metrics.all_conversions_value`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_conversions_value) and [`metrics.all_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.all_conversions) in [`conversion_action`](https://developers.google.com/google-ads/api/fields/v26/conversion_action).
- Added [`ConversionValueRuleSetError.UNSUPPORTED_CONVERSION_ACTION_CATEGORIES`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRuleSetErrorEnum.ConversionValueRuleSetError#unsupported_conversion_action_categories).
- Added [`ConversionAdjustmentUploadError.MISSING_ORDER_ID_FOR_WEBPAGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError#missing_order_id_for_webpage).
- Added [`ConversionUploadError.CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError#customer_not_accepted_customer_data_terms).

### Criteria

- Added [`CriterionError.CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#cannot_target_customer_match_user_list).

### Experiments

- Added [`ExperimentError.STATUS_TRANSITION_INVALID`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentErrorEnum.ExperimentError#status_transition_invalid).

### Hotel Ads

- Added support for getting [`hotel_center_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelCenterLinkIdentifier#hotel_center_id) through [`AccountLink.hotel_center`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink#hotel_center).

### Planning

- Added [`KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService#generatekeywordhistoricalmetrics). It returns the historical metrics for a given list of keywords without asking for any plan, campaigns, or ad groups.
- Added [`KeywordPlanHistoricalMetrics.average_cpc_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics#average_cpc_micros) which is the average cost per click in micros of a given keyword.
  - Added a new field [`HistoricalMetricsOption.include_average_cpc`](https://developers.google.com/google-ads/api/reference/rpc/v26/HistoricalMetricsOptions#include_average_cpc), which is used in [`GenerateKeywordIdeasRequest.historical_metrics_options`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest#historical_metrics_options) as an option to request [`KeywordPlanHistoricalMetrics.average_cpc_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics#average_cpc_micros) to be included in the response. The default value if not specified is `false`.
- Added [`GenerateKeywordIdeaResult.close_variants`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeaResult#close_variants) which is the list of [close
  variants](https://support.google.com/google-ads/answer/9342105) from the requested keywords that are combined into this [`GenerateKeywordIdeaResult`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeaResult).

### Reporting

- [`segments.click_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickTypeEnum.ClickType) now returns `CROSS_NETWORK` for Performance Max and Discovery campaigns.
- Added the following fields for [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) conversion segments, available when fetching the data of [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer) or [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign):
  - [`metrics.sk_ad_network_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_conversions)
  - [`segments.sk_ad_network_attribution_credit`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_attribution_credit)
- Made [`metrics.absolute_top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.absolute_top_impression_percentage) and [`metrics.top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.top_impression_percentage) compatible with [`segments.geo_target_region`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.geo_target_region) and [`segments.geo_target_city`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.geo_target_city).

### Video

- Added [`VideoResponsiveAdInfo.breadcrumb1`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoResponsiveAdInfo#breadcrumb1) and [`VideoResponsiveAdInfo.breadcrumb2`](https://developers.google.com/google-ads/api/docs/VideoResponsiveAdInfo.breadcrumb2).

## 10.0 (2022-02-09)

The functionality and changes below were added in v10.0.

### All Services

The `get` method and any services that exclusively had a `get` method have been
removed. [Retrieve objects](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects) with `Search`
and `SearchStream` from `GoogleAdsService`.

### Account Management

- Added [`Customer.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#status) and [`CustomerClient.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient#status), whose type is [`CustomerStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerStatusEnum.CustomerStatus), to show the status of the account.
- [`customer_client`](https://developers.google.com/google-ads/api/fields/v26/customer_client) contains inactive accounts in addition to active and test accounts.

### Ads

- Renamed Video TrueView Discovery Ad format to In-Feed Video Ad:
  - `VideoTrueViewDiscoveryAdInfo` is renamed to `InFeedVideoAdInfo`.
  - `AdType.VIDEO_TRUEVIEW_DISCOVERY_AD` is renamed to `AdType.IN_FEED_VIDEO_AD`.
- Renamed `MutateOperation.customizer_customizer_operation` to [`MutateOperation.customer_customizer_operation`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateOperation#customer_customizer_operation).

### Assets

- Added support for [`ad_group_ad_asset_combination_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_combination_view) for responsive search ads.
- Added support for reporting the performance of [App pre registration
  ads](https://support.google.com/google-ads/answer/6247380) in [`ad_group_ad_asset_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view).
- For Image and Media Bundle assets ([`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) that has [`image_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#image_asset) and [`media_bundle_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#media_bundle_asset) set, respectively):
  - Made [`name`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#name) required.
  - Added support for auto-renaming the asset names on creation. If an asset exists with the same name but different content, it is renamed by appending the specified name with a timestamp and a counter.
- For the following asset types, if an asset with a different name having the same content already exists then the asset uploaded will be silently dropped.
  - [Image](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageAsset)
  - [Media Bundle](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaBundleAsset)
  - [Text](https://developers.google.com/google-ads/api/reference/rpc/v26/TextAsset)
  - [Call to Action](https://developers.google.com/google-ads/api/reference/rpc/v26/CallToActionAsset)
  - [Book on Google](https://developers.google.com/google-ads/api/reference/rpc/v26/BookOnGoogleAsset)
- Added the following values related to asset sets to [`ResourceLimitType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType):
  - `PAGE_FEED_ASSET_SETS_PER_CUSTOMER`
  - `DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER`
  - `ASSET_PER_PAGE_FEED_ASSET_SET`
  - `ASSET_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET`
- Added the following values to [`AssetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError):
  - `MOBILE_APP_INVALID_APP_ID`
  - `MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL`
  - `NAME_REQUIRED_FOR_ASSET_TYPE`

### Audiences

- Added support for [`Audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience) used to create a targeting based on created dimensions, such as demographics or memberships in user lists and user interests:
  - Resource: [`Audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/Audience)
  - Service: [`AudienceService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceService)
  - Fields in other resources:
    - [`GoogleAdsRow.audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsRow#audience)
    - [`Campaign.audience_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#audience_setting)
    - [`AdGroup.audience_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#audience_setting)
    - [`AdGroupCriterion.audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion#audience)
  - Enums:
    - [`AudienceError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AudienceErrorEnum.AudienceError)
    - [`CriterionType.AUDIENCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType#audience)

### Bidding

- Removed support for [creating seasonality
  adjustments](https://developers.google.com/google-ads/api/docs/campaigns/bidding/seasonality-adjustments) on [manager
  accounts](https://support.google.com/google-ads/answer/6139186).
- Added the following values to [`BiddingError`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingErrorEnum.BiddingError):
  - `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED`
  - `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN`
  - `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER`

### Campaigns

- [Smart campaigns](https://developers.google.com/google-ads/api/docs/smart-campaigns/overview) have exited open beta and entered general availability.
- Added support for [Local Services
  Ads](https://support.google.com/localservices/answer/7549347) campaigns as open beta.
  - They have [`AdvertisingChannelType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType#local_services) as `LOCAL_SERVICES`.
  - Added support for retrieving these campaigns using [`Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) and [`SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream).
  - Added support for updating their [`status`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#status) and [`amount_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget#amount_micros) of their associated [`CampaignBudget`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudget) objects.
- [Performance Max Campaigns](https://developers.google.com/google-ads/api/docs/performance-max/overview) now support [asset group signals](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupSignal) which advertisers can use to tell the campaign who's most likely to convert.
- Added [`Campaign.use_vehicle_inventory`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#use_vehicle_inventory) for [Smart Shopping
  campaigns](https://support.google.com/merchants/answer/11192314).

### Conversions

- Added the following fields to the [`conversion_tracking_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionTrackingSetting) attribute of [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#accepted_customer_data_terms):
  - `conversion_tracking_status` indicates whether the customer is using conversion tracking, and who is the conversion tracking owner.
  - `accepted_customer_data_terms` indicates if the conversion tracking owner has accepted the [customer data
    terms](https://support.google.com/adspolicy/answer/7475709).
  - `enhanced_conversions_for_leads_enabled` indicates if the customer has opted into [enhanced conversions for
    leads](https://developers.google.com/google-ads/api/docs/conversions/upload-identifiers).
- Made [`ConversionAction.primary_for_goal`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#primary_for_goal) optional to support setting the value to `false` during `create` operations.
- Made [`ConversionValueRuleSet.attachment_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRuleSet#attachment_type) immutable.
- Added [`ConversionValueRuleSet.conversion_action_categories`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRuleSet#conversion_action_categories) and [`ValueRuleSetDimension.NO_CONDITION`](https://developers.google.com/google-ads/api/reference/rpc/v26/ValueRuleSetDimensionEnum.ValueRuleSetDimension#no_condition) to support [conversion value
  rules](https://developers.google.com/google-ads/api/docs/conversions/conversion-value-rules) for store visits and store sales.
- Added the following values to [`ConversionValueRuleSetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRuleSetErrorEnum.ConversionValueRuleSetError):
  - `INELIGIBLE_CONVERSION_ACTION_CATEGORIES`
  - `DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS`
  - `DIMENSION_NO_CONDITION_NOT_ALLOWED`
- Removed `LEAD` from the [`ConversionActionCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory) enum and replaced with the following new values:
  - `QUALIFIED_LEAD`
  - `CONVERTED_LEAD`
- Added [`ExternalConversionSource.DISPLAY_AND_VIDEO_360_FLOODLIGHT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExternalConversionSourceEnum.ExternalConversionSource#display_and_video_360_floodlight).

### Experiments

- Added a new [`ExperimentService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExperimentService) with a set of new resources, which is a replacement for [campaign
  experiments](https://developers.google.com/google-ads/api/docs/experiments/campaign-experiments).
  - Creating a new experiment and experiment arm through [`GoogleAdsService.Mutate()`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate) is not supported yet.

### Hotel Ads

- Added [`hotel_reconciliation.campaign`](https://developers.google.com/google-ads/api/fields/v26/hotel_reconciliation#hotel_reconciliation.campaign) and added support for the following metrics:
  - [`metrics.hotel_commission_rate_micros`](https://developers.google.com/google-ads/api/fields/v26/hotel_reconciliation#metrics.hotel_commission_rate_micros)
  - [`metrics.hotel_expected_commission_cost`](https://developers.google.com/google-ads/api/fields/v26/hotel_reconciliation#metrics.hotel_expected_commission_cost)

### Recommendations

- Added support for returning [`ResponsiveSearchAdAssetRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ResponsiveSearchAdAssetRecommendation).
- Added support for returning [`UseBroadMatchKeywordRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.UseBroadMatchKeywordRecommendation).

### Reporting

- Fixed inconsistencies where rows with zero metrics were returned when segments were selected in some reports. All reports will now follow the [expected
  behavior](https://developers.google.com/google-ads/api/docs/reporting/zero-metrics#exclude_zero_metrics_by_segmenting) of ignoring zero-metric rows in reports that select metrics and segments.
- Added a new [meta parameter](https://developers.google.com/google-ads/api/docs/query/structure#parameters) `omit_unselected_resource_names`. When set to `true`, the response from [`GoogleAdsService`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService) will *only* return resource name fields that you explicitly request in the `SELECT` clause of your query.
- When retrieving [`Campaign.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#start_date) and [`Campaign.end_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#end_date), the date returned will always be formatted based on the time zone of the customer specified as `customer_id` of [`SearchGoogleAdsRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchGoogleAdsRequest) or [`SearchGoogleAdsStreamRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchGoogleAdsStreamRequest). Previously, the returned date could vary based on the time zone of the manager account specified in [`login-customer-id`](https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid).
- Added support for [`metrics.absolute_top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.absolute_top_impression_percentage) and [`metrics.top_impression_percentage`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.top_impression_percentage)
  - in [`geographic_view`](https://developers.google.com/google-ads/api/fields/v26/geographic_view)
  - with [`segments.hour`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.hour)
- Added support for the following segments for [`metrics.sk_ad_network_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_conversions) ([SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) conversions), which is available when fetching the data of [`customer`](https://developers.google.com/google-ads/api/fields/v26/customer) or [`campaign`](https://developers.google.com/google-ads/api/fields/v26/campaign):
  - `segments.sk_ad_network_user_type`
  - `segments.sk_ad_network_ad_event_type`
  - `segments.sk_ad_network_source_app.sk_ad_network_source_app_id`
- Added [`metrics.biddable_app_install_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.biddable_app_install_conversions) and [`metrics.biddable_app_post_install_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.biddable_app_post_install_conversions).

### RMF

- Added new requirements for Performance Max and Smart campaigns. We are also documenting the required minimum functionality for other developer tools such as shopping, hotel and app campaigns, and simplifying standard shopping campaigns to align with full service campaigns.

## 9.0 (2021-11-03)

The functionality and changes below were added in v9.0.

### Account Management

- Added the following errors:
  - [`ManagerLinkError.CREATING_ENABLED_LINK_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkErrorEnum.ManagerLinkError#creating_enabled_link_not_allowed)
  - [`ManagerLinkError.CUSTOMER_CANNOT_MANAGE_SELF`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkErrorEnum.ManagerLinkError#customer_cannot_manage_self)

### Ads

- Added support for ad customizers for [Responsive Search
  Ads](https://developers.google.com/google-ads/api/docs/responsive-search-ads/overview) through the following services:
  - [`CustomizerAttributeService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomizerAttributeService)
  - [`CustomerCustomizerService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerCustomizerService)
  - [`CampaignCustomizerService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCustomizerService)
  - [`AdGroupCustomizerService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCustomizerService)
  - [`AdGroupCriterionCustomizerService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionCustomizerService)
- Added support for [pre-registration
  ads](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#app_pre_registration_ad) which helps in pre-registering the app or game from the Play store to help gauge interest before an app or a game is available to install. For more information, see [App campaigns for
  pre-registration](https://support.google.com/google-ads/answer/9441344).
- Added the following enums to [`AdError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError):
  - `CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN`
  - `CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY`
  - `CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD`
  - `INVALID_CUSTOMIZER_ATTRIBUTE_NAME`

### Assets

- Added the following asset types, which will be available in all accounts by the end of 2021:
  - Added `price_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support price assets.
  - Added `hotel_callout_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support hotel callout assets.
  - Added `mobile_app_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support mobile app assets.
  - Added `call_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support call assets.
  - Added `call_to_action` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support call to action assets.
- Added support for asset groups for Performance Max:
  - Added [`AssetGroupService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupService) to allow for removing [`AssetGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroup), which represents a bunch of assets. Use [`GoogleAdsService.mutate`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate) to create or update an `AssetGroup`. An asset group is used in a Performance Max campaign to group assets, a final URL, and audience signals. The asset group and the conversion goals are pulled together to create a campaign.
  - Added [`AssetGroupAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAssetService) to allow for adding/updating/removing [`AssetGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupAsset), which is a link between an asset and an asset group.
  - Added [`AssetGroupListingGroupFilterService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilterService) to allow for adding/updating/removing [`AssetGroupListingGroupFilter`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetGroupListingGroupFilter), which represents a listing group filter tree node in an asset group.
  - Added [`asset_group_product_group_view`](https://developers.google.com/google-ads/api/fields/v26/asset_group_product_group_view), for retrieving product groups in an asset group. At the time of the release, requests for this view will return an error. The view will start returning data at a later date.
- Added support for asset sets:
  - Added [`AssetSetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetService) to allow for adding/updating/removing [`AssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSet), which represents a collection of assets, which will eventually replace the [`FeedService`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedService). [`AssetSetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetTypeEnum.AssetSetType) represents feed types that are currently supported.
  - Added [`AssetSetAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetAssetService) to allow for adding/updating/removing [`AssetSetAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSetAsset), which represents a link between an asset and an asset set.
  - Added [`CampaignAssetSetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetSetService) to allow for adding/updating/removing [`CampaignAssetSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetSet), which represents a link between a campaign and an asset set.
- Added support for reporting the performance of the following ad types in [`ad_group_ad_asset_view`](https://developers.google.com/google-ads/api/fields/v26/ad_group_ad_asset_view):
  - [App engagement ads](https://support.google.com/google-ads/answer/6247380)
  - [Responsive search ads](https://developers.google.com/google-ads/api/docs/responsive-search-ads/overview)
- Added [`AssetLinkError.YOUTUBE_VIDEO_DURATION_NOT_DEFINED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError#youtube_video_duration_not_defined).
- Added [`FeedError.LEGACY_EXTENSION_TYPE_READ_ONLY`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedErrorEnum.FeedError#legacy_extension_type_read_only) for extension types migrated to Asset.
- [`TextAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/TextAsset) is now read/write.
- Added values to [`AssetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError):
  - `CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED`
  - `CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED`
  - `CALL_DISALLOWED_NUMBER_TYPE`
  - `CALL_INVALID_CONVERSION_ACTION`
  - `CALL_INVALID_COUNTRY_CODE`
  - `CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT`
  - `CALL_INVALID_PHONE_NUMBER`
  - `CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY`
  - `CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED`
  - `CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED`
  - `PRICE_HEADER_SAME_AS_DESCRIPTION`

### Audiences

- Added support for warnings for [`OfflineUserDataJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService) through [`AddOfflineUserDataJobOperationsRequest.enable_warnings`](https://developers.google.com/google-ads/api/reference/rpc/v26/AddOfflineUserDataJobOperationsRequest#enable_warnings). When [`enable_warnings`](https://developers.google.com/google-ads/api/reference/rpc/v26/AddOfflineUserDataJobOperationsRequest#enable_warnings) is set to `true` and the request succeeds, any non-blocking errors relating to operation failures will be returned as [`AddOfflineUserDataJobResponse.warning`](https://developers.google.com/google-ads/api/reference/rpc/v26/AddOfflineUserDataJobOperationsResponse#warning). No warnings are returned if the request fails. [Learn
  more](https://developers.google.com/google-ads/api/docs/best-practices/warnings).
- Added [`CreateOfflineUserDataJobRequest.enable_match_rate_range_preview`](https://developers.google.com/google-ads/api/reference/rpc/v26/CreateOfflineUserDataJobRequest#enable_match_rate_range_preview). When it's set to `true`, the match rate range for the uploaded offline user data job will be calculated and returned as [`OfflineUserDataJobMetadata.match_rate_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobMetadata#match_rate_range), which you can retrieve using the newly added [`OfflineUserDataJob.operation_metadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob#operation_metadata) field.
  - [`match_rate_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobMetadata#match_rate_range) shows the range of the match rate (efficacy) of your [Customer
    Match](https://support.google.com/google-ads/answer/6379332) uploads, which is the number of matched user data rows divided by the total number of Customer Match uploaded rows.
- Added [`UserAttribute.shopping_loyalty`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserAttribute#shopping_loyalty) to allow for sending loyalty-related data with [`UserAttribute`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserAttribute).
- Added [`OfflineUserDataJobError.INVALID_ITEM_ID`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError#invalid_item_id).

### Bidding

- Added the following fields for `MaximizeConversions` and `MaximizeConversionValue` portfolio bidding strategies:
  - [`MaximizeConversions.cpc_bid_ceiling_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions#cpc_bid_ceiling_micros)
  - [`MaximizeConversions.cpc_bid_floor_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions#cpc_bid_floor_micros)
  - [`MaximizeConversionValue.cpc_bid_ceiling_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversionValue#cpc_bid_ceiling_micros)
  - [`MaximizeConversionValue.cpc_bid_floor_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversionValue#cpc_bid_floor_micros)
- Removed support for [`CampaignCriterionSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionSimulation) for Shopping campaigns.
- Removed support for [`AdGroupSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupSimulation) for Video campaigns.

### Billing

- Added the following errors:
  - [`BillingSetupError.FUTURE_START_TIME_PROHIBITED`](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupErrorEnum.BillingSetupError#future_start_time_prohibited)
  - [`InvoiceError.BILLING_SETUP_NOT_ON_MONTHLY_INVOICING`](https://developers.google.com/google-ads/api/reference/rpc/v26/InvoiceErrorEnum.InvoiceError#billing_setup_not_on_monthly_invoicing)
  - [`InvoiceError.NON_SERVING_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/InvoiceErrorEnum.InvoiceError#non_serving_customer)

### Campaigns

- Added support for [Performance Max
  campaigns](https://developers.google.com/google-ads/api/docs/performance-max/overview), which is a new campaign type that provides a unified buying service to virtually all Google Ads inventory.
- Changes in [Smart campaigns](https://developers.google.com/google-ads/api/docs/smart-campaigns/overview):

  - Smart campaigns have entered open beta and users no longer need to be allowlisted to use them.
  - Added
    [`SmartCampaignSuggestService.SuggestKeywordThemes`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSuggestService#suggestkeywordthemes)
    to generate keyword theme suggestions for Smart campaigns based on the
    business details provided.

    This provides more comprehensive suggestions than
    [`SuggestKeywordThemeConstants`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordThemeConstantService#suggestkeywordthemeconstants),
    and is now the recommended way to generate keyword themes for a
    Smart campaign.
  - Improved error handling and additional user-facing error codes.

### Conversions

- Added support for [conversion goals](https://developers.google.com/google-ads/api/docs/conversions/goals/overview) to help you more easily optimize towards your advertising objects.
- Changes related to `ConversionAdjustmentUploadService`:
  - Moved [`gclid_date_time_pair`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#gclid_date_time_pair) and [`order_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#order_id) out of the [oneof](https://developers.google.com/protocol-buffers/docs/proto#oneof) field of [`ConversionAdjustment`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment).
    - If [`adjustment_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#adjustment_type) is [`ENHANCEMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentTypeEnum.ConversionAdjustmentType#enhancement), [`order_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#order_id) is required. We recommend advertisers to set [`gclid_date_time_pair`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#gclid_date_time_pair) to [`GclidDateTimePair.conversion_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v26/GclidDateTimePair#conversion_date_time). [`GclidDateTimePair.gclid`](https://developers.google.com/google-ads/api/reference/rpc/v26/GclidDateTimePair#gclid) is optional.
    - If `ConversionAdjustmentType` is of other types, only one of [`order_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#order_id) and [`gclid_date_time_pair`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#gclid_date_time_pair) can be set. Otherwise, a `GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET` error is thrown.
- Changes related to `ConversionUploadService`:
  - Changed [`CartData.merchant_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/CartData#merchant_id) from `string` to `int64`.
  - Added [`ClickConversion.gbraid`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#gbraid) and [`ClickConversion.wbraid`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#wbraid) fields as click identifiers for iOS devices.
- Made [`UserIdentifier.user_identifier_source`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserIdentifier#user_identifier_source) optional.
- Improved `ConversionUploadService` and `ConversionAdjustmentService` to report an error if the `ClickConversion`, `CallConversion`, or `ConversionAdjustment` in a mutate operation already exists or is a duplicate to another one in the same mutate operation. Prior to v9, the Google Ads API would silently ignore such operations. The error returned by each service will be as follows:
  - For `ConversionUploadService`:
    - For a click conversion: a `ConversionUploadError` with `CLICK_CONVERSION_ALREADY_EXISTS` or `DUPLICATE_CLICK_CONVERSION_IN_REQUEST`
    - For a call conversion: a `ConversionUploadError` with `CALL_CONVERSION_ALREADY_EXISTS` or `DUPLICATE_CALL_CONVERSION_IN_REQUEST`
  - For `ConversionAdjustmentService`:
    - For a restatement: a `ConversionAdjustmentUploadError` with `RESTATEMENT_ALREADY_EXISTS` or `DUPLICATE_ADJUSTMENT_IN_REQUEST`
    - For an enhancement: a `ConversionAdjustmentUploadError` with `CONVERSION_ALREADY_ENHANCED` or `DUPLICATE_ENHANCEMENT_IN_REQUEST`
- Removed `INVALID_USER_IDENTIFIER_SOURCE` from [`ConversionAdjustmentUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError) and [`ConversionUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError).

### Feeds

- Deprecated extension setting services:

  - `AdGroupExtensionSettingService`
  - `CampaignExtensionSettingService`
  - `CustomerExtensionSettingService`
  - `ExtensionFeedItemService`
- Deprecated most use cases of feed service in favor of assets:

  - All extensions apart from location extensions should migrate to assets.
  - DSA page feed should migrate to assets.
  - Dynamic remarketing for education should migrate to assets. Other dynamic remarketing types will follow in a release.
  - Ad customizers are the only non-deprecated use case for feeds.

### Hotel Ads

- Added support for retrieving [`hotel_reconciliation`](https://developers.google.com/google-ads/api/fields/v26/hotel_reconciliation) resources, which contain booking information to reconcile bookings from commission campaigns.
- Removed `HOTEL_ADS_COMMISSION` from [`BudgetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetTypeEnum.BudgetType).

### Mutates

- Added [`MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateErrorEnum.MutateError#operation_does_not_support_partial_failure), thrown when [`MutateGoogleAdsRequest.partial_failure`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateGoogleAdsRequest#partial_failure) is set to `true` but [`MutateGoogleAdsRequest.mutate_operations[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateGoogleAdsRequest#mutate_operations%5B%5D) contains mutate operations that don't support [partial
  failure](https://developers.google.com/google-ads/api/docs/best-practices/partial-failures).

### Planning

- Added [`PlannableLocation.location_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannableLocation#location_type) which contains the location's type (`COUNTRY`, `STATE`, etc.).
- Added [`PlannableLocation.country_code`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannableLocation#country_code) which contains the ISO-3166-1 alpha-2 code associated with the location.
- Added [`CampaignDuration.date_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignDuration#date_range) which allows the duration of a planning campaign to be specified as a date range.

### Reporting

- A value for any of the following date-related segments in the WHERE clause
  must be the start of the field's period:

  | Fields | Allowed filter values |
  |---|---|
  | `https://developers.google.com/google-ads/api/fields/v26/segments#segments.week` | `YYYY-MM-DD` where `DD` is the date that is Monday and `YYYY` and `MM` are valid year and month values, respectively. |
  | `https://developers.google.com/google-ads/api/fields/v26/segments#segments.month` | `YYYY-MM-01` where `YYYY` and `MM` are valid year and month values, respectively. |
  | `https://developers.google.com/google-ads/api/fields/v26/segments#segments.quarter` | `YYYY-01-01` or `YYYY-04-01` or `YYYY-07-01` or `YYYY-10-01`. |

  Failing to set the correct values will result in a
  `MISALIGNED_DATE_FOR_FILTER` error.
- [`segments.sk_ad_network_conversion_value`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_conversion_value)
  now supports distinguishing between 0 conversion value and conversion value
  missing from the postback received from Apple. Note that this feature will
  only be available for SKAdNetwork conversions received after September 20th,
  2021.

- Published the `phone_calls`, `phone_impressions`, and `phone_through_rate`
  metric fields in the following resources:

  - [`ad_group_asset`](https://developers.google.com/google-ads/api/fields/v26/ad_group_asset)
  - [`asset_field_type_view`](https://developers.google.com/google-ads/api/fields/v26/asset_field_type_view)
  - [`campaign_asset`](https://developers.google.com/google-ads/api/fields/v26/campaign_asset)
  - [`customer_asset`](https://developers.google.com/google-ads/api/fields/v26/customer_asset)

### RMF

- [RMF requirements](https://developers.google.com/google-ads/api/docs/rmf) have been considerably simplified.

### Video

- Added [`VideoTrueViewDiscoveryAdInfo.thumbnail`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoTrueViewDiscoveryAdInfo#thumbnail).
- Added [`VideoNonSkippableInStreamAdInfo.action_button_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoNonSkippableInStreamAdInfo#action_button_label) and [`VideoNonSkippableInStreamAdInfo.action_headline`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoNonSkippableInStreamAdInfo#action_headline).
- Removed the [`optional`](https://developers.google.com/protocol-buffers/docs/proto#optional) keyword from the following fields to be consistent with their behaviors, since null and the default values of those fields (empty strings) have the same meaning for the Google Ads API:
  - [`VideoOutstreamAdInfo.headline`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoOutstreamAdInfo#headline)
  - [`VideoOutstreamAdInfo.description`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoOutstreamAdInfo#description)
  - [`VideoTrueViewDiscoveryAdInfo.headline`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoTrueViewDiscoveryAdInfo#headline)
  - [`VideoTrueViewDiscoveryAdInfo.description1`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoTrueViewDiscoveryAdInfo#description1)
  - [`VideoTrueViewDiscoveryAdInfo.description2`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoTrueViewDiscoveryAdInfo#description2)
- Migrated Video ads from using [`MediaFile`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaFile) to represent videos and images to using assets.
  - Changed the type of the following fields from `string` to [`AdImageAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdImageAsset):
    - [`VideoBumperInStreamAdInfo.companion_banner`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoBumperInStreamAdInfo#companion_banner)
    - [`VideoNonSkippableInStreamAdInfo.companion_banner`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoNonSkippableInStreamAdInfo#companion_banner)
    - [`VideoTrueViewInStreamAdInfo.companion_banner`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoTrueViewInStreamAdInfo#companion_banner)
  - Replaced `VideoAdInfo.media_file` (available until v8) with [`VideoAdInfo.video`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoAdInfo#video) and changed the type from `string` to [`AdVideoAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdVideoAsset).

## 8.1.0 (2021-08-11)

The functionality and changes below were added in v8.1.0.

### Ads

- Added [`action_items`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd#action_items%5B%5D) to `AdGroupAd` to provide you with feedback to improve your ad strength.

### Bidding

- Added support for [seasonality
  adjustments](https://developers.google.com/google-ads/api/docs/campaigns/bidding/seasonality-adjustments) and [data
  exclusions](https://developers.google.com/google-ads/api/docs/campaigns/bidding/data-exclusions), which can be applied to specific campaigns, to all campaigns that belong to specific channel types, or to specific devices:
  - Added [`BiddingSeasonalityAdjustment`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingSeasonalityAdjustment) to let Smart Bidding apply conversion rate adjustments for future events such as promotions or sales.
  - Added [`BiddingDataExclusion`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingDataExclusion) to let Smart Bidding exclude data from specific dates when there are issues with an account's conversion tracking.
- Added [`BiddingStrategyType.INVALID`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategyTypeEnum.BiddingStrategyType#invalid) to indicate a campaign does not have a bidding strategy and cannot serve. This can occur if a campaign was previously using a manager-owned bidding strategy before being unlinked from the manager account. In this case, the campaign would transition to the `INVALID` bidding strategy type.

### Campaigns

- Added [`SmartCampaignSuggestService.SuggestSmartCampaignAd()`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSuggestService#suggestsmartcampaignad) to get suggestions for up to three headlines and two descriptions for Smart campaign ads based on information such as the landing page and keyword themes provided.

### Change History

- Added the following resource types to [`ChangeEventResourceType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeEventResourceTypeEnum.ChangeEventResourceType):
  - `AD_GROUP_ASSET`
  - `ASSET`
  - `CAMPAIGN_ASSET`
  - `CUSTOMER_ASSET`
- Added the following new resource types to [`ChangeStatusResourceType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum.ChangeStatusResourceType):
  - `AD_GROUP_ASSET`
  - `ASSET`
  - `CAMPAIGN_ASSET`
  - `CAMPAIGN_SHARED_SET`
  - `CUSTOMER_ASSET`
  - `SHARED_SET`

### Conversions

- Added [`ConversionValueRule`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRule) and [`ConversionValueRuleSet`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionValueRuleSet) resources to [adjust values of conversion
  events](https://developers.google.com/google-ads/api/docs/conversions/conversion-value-rules) based on conditions like geographic location, device and audiences, and better express the value of conversions as they relate to your business.
- Added [`ClickConversion.user_identifiers`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#user_identifiers%5B%5D) to support [uploading conversions with enhanced conversions for leads
  data](https://developers.google.com/google-ads/api/docs/conversions/upload-identifiers)
- Added `ENHANCEMENT` to [`ConversionAdjustmentType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentTypeEnum.ConversionAdjustmentType) and the following fields to support [uploading enhancements to existing
  conversions](https://developers.google.com/google-ads/api/docs/conversions/enhance-conversions):
  - [`ConversionAdjustment.user_identifiers`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#user_identifiers%5B%5D)
  - [`ConversionAdjustment.user_agent`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustment#user_agent)
  - [`OfflineUserAddressInfo.hashed_street_address`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserAddressInfo#hashed_street_address)
- Added the following values to [`ConversionUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError):
  - `CLICK_NOT_FOUND`
  - `INVALID_USER_IDENTIFIER`
  - `EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER`
  - `UNSUPPORTED_USER_IDENTIFIER`
  - `INVALID_USER_IDENTIFIER_SOURCE`
- Added the following values to [`ConversionAdjustmentUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError):
  - `CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS`
  - `CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT`
  - `INVALID_USER_IDENTIFIER`
  - `INVALID_USER_IDENTIFIER`
  - `INVALID_USER_IDENTIFIER_SOURCE`

### Criteria

- Added [`CriterionError.BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#broad_match_modifier_keyword_not_allowed).

### Planning

- Added [`Forecast.effective_frequency_breakdowns`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast#effective_frequency_breakdowns%5B%5D) to show a list of effective frequency forecasts. Effective frequency forecasts include the on-target and total number of unique people reached for a given effective frequency.
- Added [`GenerateReachForecastRequest.effective_frequency_limit`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateReachForecastRequest#effective_frequency_limit) which is used to create `effective_frequency_breakdowns` of the generated [`Forecast`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast). `effective_frequency_limit` is the highest minimum effective frequency (the number of times a person was shown the ad).

## 8.0 (2021-06-09)

The functionality and changes below were added in v8.0.

### Account Management

- Added [`CustomerClient.applied_labels`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient#applied_labels%5B%5D) to show the labels applied to customers managed by the requesting manager customer.

### Ads

- `CallOnlyAdInfo` is replaced with [`CallAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallAdInfo).
- Added `CANNOT_UPDATE_DEPRECATED_ADS` to [`AdGroupAdError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdErrorEnum.AdGroupAdError).

### Asset

- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CustomerAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAssetService), [`CampaignAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetService) and [`AdGroupAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetService).
- Added support for the following metrics for `CustomerAsset`, `CampaignAsset` and `AdGroupAsset`:
  - `absolute_top_impression_percentage`
  - `all_conversions`
  - `all_conversions_from_interactions_rate`
  - `all_conversions_value`
  - `average_cost`
  - `average_cpc`
  - `average_cpe`
  - `average_cpm`
  - `average_cpv`
  - `clicks`
  - `conversions`
  - `conversions_from_interactions_rate`
  - `conversions_value`
  - `cost_micros`
  - `cost_per_all_conversions`
  - `cost_per_conversion`
  - `cross_device_conversions`
  - `ctr`
  - `engagement_rate`
  - `engagements`
  - `interactions`
  - `interaction_event_types`
  - `interaction_rate`
  - `impressions`
  - `top_impression_percentage`
  - `value_per_all_conversions`
  - `value_per_conversion`
  - `video_view_rate`
  - `video_views`
- Added [`segments.asset_interaction_target`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.asset_interaction_target) for [`CustomerAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAsset), [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) and [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset) to indicate if the interactions are on the asset itself.
- Added [`AssetFieldTypeViewService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeViewService) to support retrieving metrics for each asset field type when the asset is used as extension.
- Updated the following values of [`LeadFormFieldUserInputType`](https://developers.google.com/google-ads/api/reference/rpc/v26/LeadFormFieldUserInputTypeEnum.LeadFormFieldUserInputType):
  - Replaced `GIVEN_NAME` with `FIRST_NAME`.
  - Replaced `FAMILY_NAME` with `LAST_NAME`.
- Asset-based extensions
  - [`SitelinkAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/SitelinkAsset), [`CalloutAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CalloutAsset), [`StructuredSnippetAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/StructuredSnippetAsset), which were available for test accounts in v7, will be enabled for production accounts two weeks after this release.

### Audiences

- Added [`TransactionAttribute.item_attribute`](https://developers.google.com/google-ads/api/reference/rpc/v26/TransactionAttribute#item_attribute) to support associate information about a sold item with a transaction.
- Added the following fields to [`UserAttribute`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserAttribute):
  - `last_purchase_date_time`
  - `average_purchase_count`
  - `average_purchase_value_micros`
  - `acquisition_date_time`
- Added the following values to [`OfflineUserDataJobError`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError):
  - `FUTURE_TIME_NOT_ALLOWED`
  - `LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME`

### Bidding

- Updated [`Maximize_conversion_value.target_roas`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversionValue) to support an optional Target ROAS setting on the Maximize Conversion Value portfolio and standard bidding strategies for Search campaigns. This field will become mutable for all customers at a future date. We will post a notification on the [Google Ads Developer blog](https://ads-developers.googleblog.com/) when developers can update this field.
- Updated [`Maximize_conversions.target_cpa`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions) to support an optional Target CPA setting on the Maximize Conversions portfolio and standard bidding strategies for Search campaigns. This field will become mutable for all customers at a future date. We will post a notification on the [Google Ads Developer blog](https://ads-developers.googleblog.com/) when developers can update this field.
- Added support for [creating and managing cross-account bidding
  strategies](https://developers.google.com/google-ads/api/docs/campaigns/bidding/cross-account-strategies) in manager accounts, and the ability to attach them to campaigns in customer accounts:
  - Added [`BiddingStrategy.currency_code`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#currency_code) for bidding strategies in manager customers, which can be set on creation and defaults to the manager customer's currency. For serving customers, this field cannot be set; all strategies in a serving customer implicitly use the serving customer's currency. In all cases the `effective_currency_code` field returns the currency used by the strategy.
  - Added [`AccessibleBiddingStrategy`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccessibleBiddingStrategy) to represent a view of all BiddingStrategies owned by and shared with the customer.
  - Added [`AccessibleBiddingStrategyService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccessibleBiddingStrategyService) to read accessible bidding strategies.
  - Added [`Campaign.accessible_bidding_strategy`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#accessible_bidding_strategy) for retrieving the fields of the portfolio bidding strategy identified by `bidding_strategy`.When a campaign uses a cross-account bidding strategy, this will be a subset of the properties normally defined for a bidding strategy, since certain properties are only accessible by a bidding strategy's owner.

### Campaigns

- Replaced `CampaignError.PAYMENT_MODE_NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION` with [`CampaignError.NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#not_compatible_with_view_through_conversion_optimization). Reports incompatibilities with view through conversions setup.
- Added support for Smart campaigns:
  - Added new enum values to support Smart campaigns:
    - [`BudgetTypeEnum.SMART_CAMPAIGN`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetTypeEnum.BudgetType#smart_campaign)
    - [`AdGroupTypeEnum.SMART_CAMPAIGN_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#smart_campaign_ads)
  - Added [`SmartCampaignSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSetting) and [`SmartCampaignSettingService`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSettingService) to configure Smart campaigns.
  - Added [`KeywordThemeConstantService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordThemeConstantService) and [`SmartCampaignSuggestService`](https://developers.google.com/google-ads/api/reference/rpc/v26/SmartCampaignSuggestService) to retrieve suggestions for Smart campaign budgets and keyword themes.
  - Added [`smart_campaign_search_term_view`](https://developers.google.com/google-ads/api/fields/v26/smart_campaign_search_term_view) to retrieve performance metrics for Smart campaigns.

### Conversions

- Added [`ClickConversion.cart_data`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion#cart_data) to support uploading conversions with shopping cart information.
- Added `CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY` to [`ConversionUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadErrorEnum.ConversionUploadError).

### Criteria

- Added [`DetailedDemographicService`](https://developers.google.com/google-ads/api/reference/rpc/v26/DetailedDemographicService) to retrieve [`UserInterest`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserInterest) with `DetailedDemographic` as the `TaxonomyType`.

### Feeds

- Added `DYNAMIC_FILTER_INVALID_CHAIN_IDS` to [`FeedItemSetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemSetErrorEnum.FeedItemSetError).

### Recommendations

- Added support for the following fields for [`Customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer) and [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) resources.
  - [`segments.recommendation_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.recommendation_type)
  - [`metrics.optimization_score_url`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.optimization_score_url)
  - [`metrics.optimization_score_uplift`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.optimization_score_uplift)

## 7.0 (2021-04-28)

The functionality and changes below were added in v7.0.

### Account Management

- Updated [`CustomerService.CreateCustomerClient`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService#createcustomerclient), [`CustomerClientLinkService.MutateCustomerClientLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLinkService#mutatecustomerclientlink), [`CustomerManagerLinkService.MutateCustomerManagerLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkService#mutatecustomermanagerlink), [`CustomerManagerLinkService.MoveManagerLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkService#movemanagerlink), [`MerchantCenterLinkService.MutateMerchantCenterLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/MerchantCenterLinkService#mutatemerchantcenterlink) to enable setting `validate_only`.
- Added [`AccessInvitationError.EMAIL_DOMAIN_POLICY_VIOLATED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccessInvitationErrorEnum.AccessInvitationError).

### Ads

- Added [`AdGroupAd.labels`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd#labels%5B%5D) to allow for easier selection and filtering with labels.
- Updated [`AdService.MutateAds`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdService#mutateads) to enable setting `partial_failure`.
- Updated [`AdGroupAd.policy_summary.policy_topic_entries`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdPolicySummary) of type `FULLY_LIMITED` to return an approval status of `DISAPPROVED` rather than `UNKNOWN`.
- Updated [`MediaUploadError`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError) to include the value `DIMENSIONS_NOT_ALLOWED`.
- Updated [`AdService.MutateAds`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdService#mutateads) to enable setting `validate_only`.

### Assets

- Added [`CustomerAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerAssetService) and [`AdGroupAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAssetService) to support adding new asset types.
- Added `promotion_asset`, `final_mobile_urls`, `tracking_url_template`, `url_custom_parameters`, and `final_url_suffix` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support promotion assets.
- Added assets for Test accounts only:
  - Added `callout_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support callout assets.
  - Added `structured_snippet_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support structured snippet assets.
  - Added `sitelink_asset` to [`Asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset) to support sitelink assets.
- Updated [`AssetService.MutateAssets`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetService#mutateassets) to enable setting `partial_failure`.
- Added values to [`AssetError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError):
  - `DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE`
  - `PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF`
  - `PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT`
  - `SCHEDULES_CANNOT_OVERLAP`
  - `TOO_MANY_DECIMAL_PLACES_SPECIFIED`
- Added `INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE` to [`AdGroupError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupErrorEnum.AdGroupError) and [`CampaignError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError).
- Added `excluded_parent_asset_field_types` to [`Campaign`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) and [`AdGroup`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup).
- Updated [`AssetService.MutateAssets`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetService#mutateassets) to enable setting `validate_only`.
- Added `INVALID_STATUS` to [`AssetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError).
- Added `PAUSED` to [`AssetLinkStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkStatusEnum.AssetLinkStatus).
- Updated [`CampaignAsset.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset) to be mutable. Updates are now allowed for [`CampaignAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAsset).
- Updated [`AdGroupAsset.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset) to be mutable. Updates are now allowed for [`AdGroupAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAsset).

### Audiences

- Updated [`OfflineUserDataJobService.CreateOfflineUserDataJob`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService), [`OfflineUserDataJobService.RunOfflineUserDataJob`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService), and [`OfflineUserDataJobService.AddOfflineUserDataJobOperations`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService) to enable setting `validate_only`.

### Batch Jobs

- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`BatchJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobService).

### Bidding

- Added [`BiddingStrategySimulationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategySimulationService) and [`CampaignSimulationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignSimulationService) to support the management of shared bidding strategy simulations and [campaigns
  simulations](https://support.google.com/google-ads/answer/2470105).
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`BiddingStrategyService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategyService).

### Campaigns

- Added `CampaignError.PAYMENT_MODE_NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION` to report incompatibilities with view through conversions setup.

### Campaign Drafts and Experiments

- Updated [`CampaignDraftService.PromotCampaignDraft`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignDraftService#promotecampaigndraft) to enable setting `validate_only`.
- Updated [`CampaignExperimentService.GraduateCampaignExperiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignExperimentService#graduatecampaignexperiment), [`CampaignExperimentService.PromoteCampaignExperiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignExperimentService#promotecampaignexperiment), [`CampaignExperimentService.EndCampaignExperiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignExperimentService#endcampaignexperiment), [`CampaignExperimentService.CreateExperiment`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignExperimentService#createcampaignexperiment) to enable setting `validate_only`.

### Conversions

- Added [`ConversionCustomVariableService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionCustomVariableService) to support adding and updating custom variables while uploading offline conversions.
- Added [`CallConversion.custom_variables`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallConversion) and [`ClickConversion.custom_variables`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickConversion) with `ConversionUploadError.CUSTOM_VARIABLE_NOT_ENABLED` and `ConversionUploadError.CUSTOM_VARIABLE_VALUE_CONTAINS_PII` to support uploading custom variables with an offline call conversion.
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`ConversionActionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionService).

### Criteria

- Added [`AdGroupCriterion.labels`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion#labels%5B%5D) to allow for easier selection and filtering with labels.
- Added [`AdGroupCriterion.display_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion) and [`CampaignCriterion.display_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion).
- Added `coverage_percentage` and `sample` to [`WebpageInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/WebpageInfo).
- Added [`WebpageViewService`](https://developers.google.com/google-ads/api/reference/rpc/v26/WebpageViewService) to support retrieving webpage criterion metrics.
- Added [`LifeEventService`](https://developers.google.com/google-ads/api/reference/rpc/v26/LifeEventService) to retrieve `UserInterest` with `LifeEvent` as the `TaxonomyType`.

### Feeds

- Updated [`FeedItemTargetService.MutateFeedItemTargets`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemTargetService#mutatefeeditemtargets) to enable setting `partial_failure`.
- Updated [`FeedItemTargetService.MutateFeedItemTargets`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemTargetService#mutatefeeditemtargets) to enable setting `validate_only`.
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CustomerExtensionSettingService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionService).
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CampaignExtensionSettingService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionService).

### Hotel Ads

- Added `hotel_check_in_date_range` to [`AdGroupBidModifier`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier). By setting the range of dates, the bid will be modified if the user's check-in date falls within the range.

### Planning

- [`KeywordPlanIdeaService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService)
  - Added [`GenerateKeywordIdeasRequest.keyword_annotation`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest) field to request annotation data for keywords.
    - Added [`KeywordPlanKeywordAnnotation.KEYWORD_CONCEPT`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanKeywordAnnotationEnum.KeywordPlanKeywordAnnotation) to retrieve the keyword concepts for each generated keyword idea.
      - Concepts are available in the Google Ads UI under Keyword Planner.
      - A concept group is a cluster of related concepts. The [`KeywordPlanConceptGroupType`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanConceptGroupTypeEnum.KeywordPlanConceptGroupType) of the concept group identifies the type of classification performed to generate the concepts.
      - A concept is a semantic grouping of keywords within the concept group.
      - Each keyword can belong to multiple concept groups, but only one concept within a concept group.
    - When `keyword_annotation` is requested, the annotations are returned in [`GenerateKeywordIdeaResult.keyword_annotations`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeaResult).
      - When `KEYWORD_CONCEPT` is requested, the concepts are returned in [`GenerateKeywordIdeaResult.keyword_annotations.concepts`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeaResult).
  - Added [`HistoricalMetricsOptions.year_month_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/HistoricalMetricsOptions) in [`GenerateKeywordIdeasRequest.historical_metrics_options`
    field](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest) to select the custom date range for the search volume. The default value if not specified is the last 12 months.
  - Added [`KeywordPlanAggregateMetrics.aggregate_metrics_types`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAggregateMetrics) to [`GenerateKeywordIdeasRequest.aggregate_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest) to request aggregate metrics for the generated keyword ideas.
    - Added [`KeywordPlanAggregateMetricType.DEVICE`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType) to request device breakdown of the average monthly search volume metrics for all the keyword ideas.
    - The device breakdown will be returned in the [`GenerateKeywordIdeaResponse.aggregate_metric_results.device_searches`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeaResponse).
- [`KeywordPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService)
  - Added [`HistoricalMetricsOptions.year_month_range`](https://developers.google.com/google-ads/api/reference/rpc/v26/HistoricalMetricsOptions) in [`GenerateHistoricalMetricsRequest.historical_metrics_options`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateHistoricalMetricsRequest) field to select the custom date range for the search volume. This `year_month_range` affects both keyword level and aggregate level metrics.
  - Added [`KeywordPlanAggregateMetrics.aggregate_metrics_types`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAggregateMetrics) to [`GenerateHistoricalMetricsRequest.aggregate_metrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateHistoricalMetricsRequest) to request aggregate metrics for the keywords in the keyword plan.
    - Added [`KeywordPlanAggregateMetricType.DEVICE`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAggregateMetricTypeEnum.KeywordPlanAggregateMetricType) to request device breakdown of the search volume metrics for all the keywords in the keyword plan.
    - The device breakdown will be returned in the [`GenerateHistoricalMetricsResponse.aggregate_metric_results.device_searches`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateHistoricalMetricsResponse).
- [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService)
  - Added [`Forecast.viewable_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Forecast) and [`PlannedProductForecast.viewable_impressions`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlannedProductForecast) which contain the number of times the ad's impressions were considered viewable.

### Protos

- Updated the method comments in the proto library to include a list of possible errors that can be thrown for each method.

### Recommendations

- Added [`Recommendation.marginal_roi_campaign_budget_recommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation). This recommendation suggests adjusting a campaign's budget if we predict that its ROI will go up.

### Reporting

- Added support for querying [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) metrics with [`segments.sk_ad_network_conversion_value`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.sk_ad_network_conversion_value) and [`metrics.sk_ad_network_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.sk_ad_network_conversions).
  - The `segments.sk_ad_network_conversion_value` field is only selectable with other date segments on `Customer` and `Campaign resources`.
  - The `metrics.sk_ad_network_conversions` field can only be segmented by `segments.sk_ad_network_conversion_value` and other date segments on `Customer` and `Campaign` resources.
- Added [`click_view.keyword`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickView#keyword) and [`click_view.keyword_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickView#keyword_info), which contains information about the keyword associated with the GCLID if one is available.
- Included `request-id` in the [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream) response and `GoogleAdsFailure` details.

### Resources

- Added support for returning errors that specifically say which resources has exceeded the limit when [`ResourceCountLimitExceededError.RESOURCE_LIMIT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededError) is returned:
  - Added [`ResourceLimitTypeEnum`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResourceLimitTypeEnum.ResourceLimitType) to include which resource limit was exceeded.
  - Added `resource_count_details` to [`ErrorDetails`](https://developers.google.com/google-ads/api/reference/rpc/v26/ErrorDetails) to include details of the maximum limit of the resource and the current count of the resource type in the account.

### Tools

- Updated the reporting reference documentation to include a new and improved interactive [Google Ads Query Language query
  builder](https://ads-developers.googleblog.com/2021/03/announcing-new-and-improved-interactive.html).

### Video

- Added `VIDEO_EFFICIENT_REACH` to [`AdGroupType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType).

## 6.1.0 (2021-02-10)

The functionality and changes below were added in v6.1.0.

### Account Management

- Added [`CustomerUserAccessInvitationService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerUserAccessInvitationService) to [manage access invitations](https://developers.google.com/google-ads/api/docs/account-management/managing-invitations) extended to users for a Google Ads account.
- Added [`AuthorizationError.ACCESS_DENIED_FOR_ACCOUNT_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AuthorizationErrorEnum.AuthorizationError).

### Ads

- Added [`AdOperation.policy_validation_parameter`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdOperation#policy_validation_parameter) to support specifying how policies are validated, similar to [`AdGroupAdOperation.policy_validation_parameter`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdOperation#policy_validation_parameter).
- Added [`YoutubeVideoAsset.youtube_video_title`](https://developers.google.com/google-ads/api/reference/rpc/v26/YoutubeVideoAsset#youtube_video_title).
- Added the following errors to [`AssetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError):
  - `IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE`
  - `INVALID_PINNED_FIELD`
  - `MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE`
  - `NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION`
  - `NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK`
  - `NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION`
  - `YOUTUBE_VIDEO_REMOVED`
  - `YOUTUBE_VIDEO_TOO_LONG`
  - `YOUTUBE_VIDEO_TOO_SHORT`

### Campaigns

- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CampaignBidModifierService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBidModifierService).
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CampaignSharedSetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignSharedSetService).
- Added [`CampaignError.HEC_AGREEMENT_REQUIRED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError).

### Change History

- Added new resource types `FEED`, `FEED_ITEM`, `CAMPAIGN_FEED`, `AD_GROUP_FEED`, `AD_GROUP_AD` to [`ChangeEventResourceType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeEventResourceTypeEnum.ChangeEventResourceType).

### Conversions

- Added [`ThirdPartyAppAnalyticsSettings.provider_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction.ThirdPartyAppAnalyticsSettings#provider_name) to support linking the third-party app analytics provider to [`ConversionAction`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction).

### Criteria

- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`CustomerNegativeCriterionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerNegativeCriterionService).
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`SharedCriterionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedCriterionService).
- Added `COMBINED_AUDIENCE` to the list of possible values for [`CriterionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType).

### Feeds

- Added support for `FEED_ITEM_SET_ID` in [`MatchingFunction.function_string`](https://developers.google.com/google-ads/api/reference/rpc/v26/MatchingFunction#function_string).
- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request for [`FeedMappingService`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedMappingService).

### Hotel Ads

- Added the values `LOWEST_UNIQUE` and `ONLY_PARTNER_SHOWN` to [`HotelPriceBucket`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPriceBucketEnum.HotelPriceBucket) in preparation for the [upcoming changes to Hotel Ads pricing
  buckets](https://ads-developers.googleblog.com/2021/01/changes-to-hotel-ads-pricing-buckets-in.html). These values will not be returned from the API until the date listed in the blog post, but you can start development preparing for this change now.

### Recommendations

- Added support for [`ResponsiveSearchAdRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.ResponsiveSearchAdRecommendation).

### Reporting

- Added the following conversion-related fields:
  - [`Metrics.all_conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#all_conversions_value_by_conversion_date)
  - [`Metrics.all_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#all_conversions_by_conversion_date)
  - [`Metrics.conversions_value_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#conversions_value_by_conversion_date)
  - [`Metrics.conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#conversions_by_conversion_date)
  - [`Metrics.value_per_all_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#value_per_all_conversions_by_conversion_date)
  - [`Metrics.value_per_conversions_by_conversion_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#value_per_conversions_by_conversion_date)
- Updated the following fields to be selectable with [`Segments.hour`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#hour).
  - [`Metrics.all_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#all_conversions)
  - [`Metrics.all_conversions_from_interactions_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#all_conversions_from_interactions_rate)
  - [`Metrics.all_conversions_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#all_conversions_value)
  - [`Metrics.cost_per_all_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#cost_per_all_conversions)
  - [`Metrics.value_per_all_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#value_per_all_conversions)
- Added the [`call_view`](https://developers.google.com/google-ads/api/fields/v26/call_view) resource for reporting on call extensions and call only ads. This view provides equivalent functionality to the [`CALL_METRICS_CALL_DETAILS_REPORT`](https://developers.google.com/adwords/api/docs/appendix/reports/call-metrics-call-details-report) in the AdWords API.

### Resources

- Improved an error message thrown when a malformed resource name is passed by also showing the correct form. For example, `customers/{customer_id}/customerUserAccesses/{user_id}` instead of `customers/{part_1}/customerUserAccesses/{part_2}`.

## 6.0.0 (2020-11-05)

The functionality and changes below were added in v6.0.0.

### Account Management

- Added [`CustomerUserAccess`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerUserAccess) to support managing users in a Google Ads account.
- Added support for updates in [`AccountLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkService).

### Ads

- Added [`ExtensionFeedItem.image_feed_item`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItem#image_feed_item) to support image extensions.
- Added [`ResponsiveDisplayAdInfo.control_spec`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponsiveDisplayAdInfo#control_spec).
- Added [`AdAsset.asset_performance_label`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTextAsset#performance_label) and [`AdAsset.policy_summary_info`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTextAsset#policy_summary_info) to be used with [responsive search ads](https://support.google.com/google-ads/answer/7684791).
- Added [`AssetFieldType.LEAD_FORM`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType) to support [lead form extensions](https://support.google.com/google-ads/answer/9363648).
- Added [`Asset.policy_summary`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#policy_summary).
- Added [`MediaUploadError.MEDIA_UPLOAD_ERROR_CUSTOM_EXIT_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError).

### Audiences

- Added [`UserList.match_rate_percentage`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserList#match_rate_percentage) for Customer Match user lists.
- Added [`UserData.user_attributes`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserData#user_attriibutes), [`UserIdentifier.user_identifier_source`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserIdentifier#user_identifier_source), and [`OfflineUserDataJobType.CUSTOMER_MATCH_WITH_ATTRIBUTES`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobTypeEnum.OfflineUserDataJobType#customer_match_with_attributes) to support Customer Match with user attributes uploads.
- Added [`CombinedAudience`](https://developers.google.com/google-ads/api/reference/rpc/v26/CombinedAudience) to create the audience with [`AdGroupCriterion.combined_audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion) and [`CampaignCriterion.combined_audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion) for targeting.
- Added [`CustomAudience`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomAudience) with [`AdGroupCriterion.custom_audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion) and [`CampaignCriterion.custom_audience`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion) for targeting.
- Uploading `STORE_SALES_UPLOAD_THIRD_PARTY` data with [`OfflineUserDataJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService) will require `user_identifier_source` to specify whether a user identifier is first-party or third-party.

### Bidding

- Added [`BiddingStrategy.maximize_conversion_value`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#maximize_conversion_value) and [`BiddingStrategy.maximize_conversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#maximize_conversions) to support these bidding strategies as portfolio bidding strategies.
- Added [`MaximizeConversions.target_cpa`](https://developers.google.com/google-ads/api/reference/rpc/v26/MaximizeConversions).

### Billing

- Added the following fields to [`Invoice`](https://developers.google.com/google-ads/api/reference/rpc/v26/Invoice):
  - `adjustments_subtotal_amount_micros`
  - `adjustments_tax_amount_micros`
  - `adjustments_total_amount_micros`
  - `regulatory_costs_subtotal_amount_micros`
  - `regulatory_costs_tax_amount_micros`
  - `regulatory_costs_total_amount_micros`
- Removed `Invoice.invoice_level_adjustment_micros`.

### Campaigns

- Added segment:
  - [`segments.ad_destination_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Segments#ad_destination_type)

### Change History

- Added the resource [`ChangeEvent`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeEvent) to retrieve the Change History of a Google Ads account. This is similar to Change History in the UI, including retrieving what interface made the change and who made the change.

### Client libraries

- The API finished moving towards using [field
  presence](https://github.com/protocolbuffers/protobuf/blob/master/docs/field_presence.md) such as `optional string` and `optional double` instead of wrapper types such as `StringValue` and `DoubleValue`. Your code will be easier to use and more concise with payloads that are significantly smaller. Approximately half of our resources have been updated in this release; the other half was updated in v5. The full list is in the [migration guide](https://developers.google.com/google-ads/api/docs/upgrade), and our code examples have been updated.
- Added a separator (`~`) for compound IDs in resource name patterns. For example, in `ad_group_ad.proto`, `customers/{customer}/adGroupAds/{ad_group_ad}` changed to `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`.

### Criteria

- Added support for feed item sets in location criterion with:
  - [`LocationGroupInfo.feed_item_sets`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocationGroupInfo#feed_item_sets)
  - [`LocationGroupRadiusUnits.MILLI_MILES`](https://developers.google.com/google-ads/api/reference/rpc/v26/LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnits)
  - [`CriterionError.CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError), [`CriterionError.INVALID_LOCATION_GROUP_RADIUS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError), [`CriterionError.INVALID_LOCATION_GROUP_RADIUS_UNIT`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError)
- Display names have been updated for some constants. The following fields are affected. See the [migration guide](https://developers.google.com/google-ads/api/docs/upgrade) for details:
  - [`CarrierConstant.name`](https://developers.google.com/google-ads/api/reference/rpc/v26/CarrierConstant#name)
  - [`MobileDeviceConstant.name`](https://developers.google.com/google-ads/api/reference/rpc/v26/MobileDeviceConstant#name)
  - [`OperatingSystemVersionConstant.name`](https://developers.google.com/google-ads/api/reference/rpc/v26/OperatingSystemVersionConstant#name)
- Added [`CriterionError.CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#cannot_target_placements_for_search_campaigns).

### Feeds

- Set `response_content_type` to `MUTABLE_RESOURCE` as a request parameter to return all the fields mutated in a mutate request for [`FeedItemTargetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemTargetService).

### Planning

- Added [`ProductMetadata.plannable_product_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductMetadata) which contains the name of the product.
- Replaced `ReachForecast.forecasted_product_allocations` with [`ReachForecast.planned_product_reach_forecasts`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachForecast); `planned_product_reach_forecasts` contains budget allocations and forecasts for each product.

### Recommendations

- Added [`Customer.optimization_score_weight`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#optimization_score_weight). This is only available for non-manager accounts and is used to determine the overall optimization score of the manager account. Retrieve the optimization score and optimization score weight of sub-accounts and multiply them (`Customer.optimization_score * Customer.optimization_score_weight`) to determine the overall optimization score.
- Added support for the recommendation type [`FORECASTING_CAMPAIGN_BUDGET`](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationTypeEnum.RecommendationType#forecasting_campaign_budget).

### Reporting

- Updated [`Metrics.conversions_value_per_cost`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#conversions_value_per_cost) to be selectable with [`KeywordView`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordView).

## 5.0.0 (2020-08-26)

The functionality and changes below were added in v5.0.0.

### Account Management

- Replaced `AccountLinkOperation.create` with [`AccountLinkService.CreateAccountLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkService). Added [`ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId`](https://developers.google.com/google-ads/api/reference/rpc/v26/ThirdPartyAppAnalyticsLinkService). This is for customers on an allowlist. Added the following to support this feature:
  - [`AccountLinkStatus.REQUESTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkStatusEnum.AccountLinkStatus)
  - [`AccountLinkStatus.PENDING_APPROVAL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkStatusEnum.AccountLinkStatus)
  - [`LinkedAccountType.DATA_PARTNER`](https://developers.google.com/google-ads/api/reference/rpc/v26/LinkedAccountTypeEnum.LinkedAccountType)
  - [`LinkedAccountType.GOOGLE_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/LinkedAccountTypeEnum.LinkedAccountType)
  - [`AccountLink.data_partner`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink#data_partner)
  - [`AccountLink.google_ads`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink#google_ads)
- Added errors:
  - [`AccountLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkErrorEnum.AccountLinkError)
  - [`ThirdPartyAppAnalyticsLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError)
- Renamed the following errors:
  - `AuthorizationError.DEVELOPER_TOKEN_NOT_WHITELISTED` to [`AuthorizationError.DEVELOPER_TOKEN_NOT_ON_ALLOWLIST`](https://developers.google.com/google-ads/api/reference/rpc/v26/AuthorizationErrorEnum.AuthorizationError#developer_token_not_on_allowlist).
  - `FieldError.BLACKLISTED_VALUE` to [`FieldError.BLOCKED_VALUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/FieldErrorEnum.FieldError#blocked_value)
  - `NotWhitelistedError` to [`NotAllowlistedError`](https://developers.google.com/google-ads/api/reference/rpc/v26/NotAllowlistedErrorEnum.NotAllowlistedError).
  - `NotWhitelistedError.CUSTOMER_NOT_WHITELISTED_FOR_THIS_FEATURE` to [`NotAllowlistedError.CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE`](https://developers.google.com/google-ads/api/reference/rpc/v26/NotAllowlistedErrorEnum.NotAllowlistedError).

### Ads

- Updated [`AdGroupAd.policy_summary`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd#policy_summary) to make subfields selectable and to make non-repeated subfields filterable.
- Added [`MediaImage.full_size_image_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaImage#full_size_image_url) and [`MediaImage.preview_size_image_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaImage#preview_size_image_url).
- Added [`MediaBundle.url`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaBundle#url).
- Updated [`AdGroupAdAssetView`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdAssetView) to return removed assets.
- Renamed `AssetError.CUSTOMER_NOT_WHITELISTED_FOR_ASSET_TYPE` to [`AssetError.CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetErrorEnum.AssetError#customer_not_on_allowlist_for_asset_type).
- Added errors:
  - [`AssetLinkError.UNSUPPORTED_FIELD_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError)
  - [`AssetLinkError.FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError)
  - [`AssetLinkError.FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError)
  - [`MediaUploadError.ANIMATED_VISUAL_EFFECT`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.ANIMATION_TOO_LONG`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.ASPECT_RATIO_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.CMYK_JPEG_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.FLASH_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.FRAME_RATE_TOO_HIGH`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.IMAGE_CONSTRAINTS_VIOLATED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.INVALID_MEDIA_BUNDLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.INVALID_MEDIA_BUNDLE_ENTRY`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.INVALID_MIME_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.INVALID_PATH`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.LAYOUT_PROBLEM`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.MALFORMED_URL`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.MEDIA_BUNDLE_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.TOO_MANY_FILES_IN_MEDIA_BUNDLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.UNSUPPORTED_HTML5_FEATURE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.VIDEO_FILE_NAME_TOO_LONG`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.VIDEO_MULTIPLE_FILES_WITH_SAME_NAME`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)
  - [`MediaUploadError.VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError)

### Audiences

- Renamed the following errors:
  - `OfflineUserDataJobError.NOT_WHITELISTED_FOR_USER_ID` to [`OfflineUserDataJobError.NOT_ON_ALLOWLIST_FOR_USER_ID`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError#not_on_allowlist_for_user_id)
  - `OfflineUserDataJobError.NOT_WHITELISTED_FOR_STORE_SALES_DIRECT` to [`OfflineUserDataJobError.NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError#not_on_allowlist_for_store_sales_direct)
  - `OfflineUserDataJobError.NOT_WHITELISTED_FOR_UNIFIED_STORE_SALES` to [`OfflineUserDataJobError.NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError#not_on_allowlist_for_unified_store_sales)
  - `UserListError.ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA` to [`UserListError.ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListErrorEnum.UserListError#advertiser_not_on_allowlist_for_using_uploaded_data)

### Batch jobs

- Removed `BatchJobOperation.remove` as jobs in a `PENDING` state will automatically be removed after 1 day.
- Added [`BatchJobMetadata.start_date_time`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJob.BatchJobMetadata#start_date_time).

### Bidding

- Added [`BiddingStrategy.effective_currency_code`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategy#effective_currency_code).
- Added [`campaign_bid_modifier`](https://developers.google.com/google-ads/api/fields/v26/campaign_bid_modifier) to [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) and [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchStream).
- Added support for Percent CPC in simulations:
  - Added `PERCENT_CPC_BID` to [`SimulationType`](https://developers.google.com/google-ads/api/reference/rpc/v26/SimulationTypeEnum.SimulationType).
  - Added `percent_cpc_bid_point_list` to [`AdGroupCriterionSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionSimulation).
- Updated [`AdGroupBidModifier.criterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifier#criterion) to be required on creation.
- Updated [`CampaignBidModifier.criterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBidModifier#criterion) to be required on creation.

### Campaigns

- Added the ability to select `segments.budget_campaign_association_status` with [`campaign_budget`](https://developers.google.com/google-ads/api/fields/v26/campaign_budget). The `campaign_id` will always be returned in queries to the `campaign_budget` resource.
- Updated [`DynamicSearchAdsSetting.feeds`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign.DynamicSearchAdsSetting#feeds%5B%5D) to be settable.
- Updated [`Campaign.start_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#start_date) and [`Campaign.end_date`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#end_date) to be filterable.
- Added [`BudgetPeriod.CUSTOM_PERIOD`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetPeriodEnum.BudgetPeriod#custom_period).

### Client libraries

- The API is moving towards using [field
  presence](https://github.com/protocolbuffers/protobuf/blob/master/docs/field_presence.md) such as `optional string` and `optional double` instead of wrapper types such as `StringValue` and `DoubleValue`. Your code will be easier to use and more concise with payloads that are significantly smaller. Approximately half of our resources have been updated in this release. The full list is in the [migration
  guide](https://developers.google.com/google-ads/api/docs/upgrade), and our code examples have been updated. The rest of the resources will change to field presence in a future release.

### Constants

- Added [`GeoTargetConstant.parent_geo_target`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstant#parent_geo_target).

### Conversions

- Added
  [`ConversionActionError.UPDATE_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionErrorEnum.ConversionActionError#update_not_supported).

- Added the following values to [`ConversionActionTypeEnum.ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType):

  - `ANDROID_APP_PRE_REGISTRATION`
  - `ANDROID_INSTALLS_ALL_OTHER_APPS`
  - `FLOODLIGHT_ACTION`
  - `FLOODLIGHT_TRANSACTION`
  - `GOOGLE_HOSTED`
  - `LEAD_FORM_SUBMIT`
  - `SALESFORCE`
  - `SEARCH_ADS_360`
  - `SMART_CAMPAIGN_AD_CLICKS_TO_CALL`
  - `SMART_CAMPAIGN_MAP_CLICKS_TO_CALL`
  - `SMART_CAMPAIGN_MAP_DIRECTIONS`
  - `SMART_CAMPAIGN_TRACKED_CALLS`
  - `STORE_VISITS`

  More information about these conversion action types is available in the
  [additional conversion action types guide](https://developers.google.com/google-ads/api/docs/conversions/conversion-types).

### Feeds

- Added [`ExtensionSettingError.DISALLOWED_TEXT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionSettingErrorEnum.ExtensionSettingError#disallowed_text).
- Renamed the following errors:
  - `ExtensionFeedItemError.CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING` to [`ExtensionFeedItemError.CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItemErrorEnum.ExtensionFeedItemError#customer_not_on_allowlist_for_calltracking)
  - `ExtensionSettingError.CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING` to [`ExtensionSettingError.CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionSettingErrorEnum.ExtensionSettingError#customer_not_on_allowlist_for_calltracking)
  - `FeedItemValidationError.CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING` to [`FeedItemValidationError.CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemValidationErrorEnum.FeedItemValidationError#customer_not_on_allowlist_for_calltracking)

### Hotel Ads

- Added a new service [`CampaignAssetService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignAssetService) with [`AssetFieldType.BOOK_ON_GOOGLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetFieldTypeEnum.AssetFieldType) and [`AssetLinkStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkStatusEnum.AssetLinkStatus) to create Hotel Ads `BOOK_ON_GOOGLE` links.

### Limits

- Added more detailed errors when a developer is exceeding either the account rate limits or the developer token rate limits. The error will include if it was the account or the developer token with details on the limit that was reached.

### Planning

- Added [`KeywordPlanKeywordHistoricalMetrics.close_variants[]`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanKeywordHistoricalMetrics#close_variants%5B%5D) to return the close variant keywords that have been merged to compute the historical metrics.
- Added [`KeywordPlanService.GenerateForecastTimeSeries`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService#generateforecasttimeseries) that returns the weekly forecast trend for Keyword Plan for the next 52 weeks.

### Recommendations

- Added Recommendation [`TargetRoasOptInRecommendation`](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation.TargetRoasOptInRecommendation).

### Reporting

- Added [`ClickView.campaign_location_target`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickView#campaign_location_target) and [`ClickView.user_list`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickView#user_list).

### Request Parameters

- Set `response_content_type` to [`MUTABLE_RESOURCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponseContentTypeEnum.ResponseContentType) as a request parameter to return all the fields mutated in a mutate request. This was added to some services including [`GoogleAdsService.Mutate`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate). By default only the resource name is returned on a mutate.

### Resources

- Added the feature to return metrics for entities that are not formally supported in the API such as Discovery campaigns. These entities will have type `UNKNOWN` returned in enum types. These are the fields that are affected:
  - [`AccountLink.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLink#type)
  - [`Ad.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad#type)
  - [`AdGroupCriterion.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion#type)
  - [`Asset.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset#type)
  - [`Campaign.advertising_channel_sub_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#advertising_channel_sub_type)
  - [`Campaign.advertising_channel_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#advertising_channel_type)
  - [`ChangeStatus.resource_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatus#resource_type)
  - [`ConversionAction.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#type)
  - [`CustomInterest.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomInterest#type)
  - [`DetailPlacementView.placement_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/DetailPlacementView#placement_type)
  - [`GroupPlacementView.placement_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/GroupPlacementView#placement_type)
  - [`MobileDeviceConstant.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/MobileDeviceConstant#type)
  - [`OfflineUserDataJob.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob#status)
  - [`SharedSet.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedSet#type)
  - [`UserList.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserList#type)

### Shopping

- Updated [`LandingPageView`](https://developers.google.com/google-ads/api/reference/rpc/v26/LandingPageView) to include shopping metrics.

### Video

- Added [`AdvertisingChannelSubType.VIDEO_SEQUENCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType#video_sequence) for video sequence campaigns.
- Added [`VideoResponsiveAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoResponsiveAdInfo) for video responsive ads.
- Renamed the following metrics:
  - `metrics.video_quartile_100_rate` -\> [`metrics.video_quartile_p100_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#video_quartile_p100_rate)
  - `metrics.video_quartile_75_rate` -\> [`metrics.video_quartile_p75_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#video_quartile_p75_rate)
  - `metrics.video_quartile_50_rate` -\> [`metrics.video_quartile_p50_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#video_quartile_p50_rate)
  - `metrics.video_quartile_25_rate` -\> [`metrics.video_quartile_p25_rate`](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics#video_quartile_p25_rate)

## 4.0.0 beta (2020-07-08)

The functionality and changes below were added in v4.0.0.

### Account Management

- Added [`ThirdPartyAppAnalyticsLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ThirdPartyAppAnalyticsLinkService) and [`AccountLinkService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountLinkService). This lets users create a link between a third-party app and Google Ads. A user can use these links to import data and view metrics to manage campaigns.
- Added `linked-customer-id` to the request header. This header is only required for methods that update the resources of an entity when permissioned using Linked Accounts in the Google Ads UI (`AccountLink` resource in the Google Ads API). Set this value to the customer ID of the data provider that updates the resources of the specified customer ID. It should be set without dashes, for example `1234567890` instead of `123-456-7890`. [Learn more about Linked
  Accounts](https://support.google.com/google-ads/answer/7365001).
- Added [`CreateCustomerClientResponse.invitation_link`](https://developers.google.com/google-ads/api/reference/rpc/v26/CreateCustomerClientResponse), which is a link for inviting users to access the created customer. This is accessible to allowlisted customers only, and the allowlist is currently closed.

### Ads

- Changed the format of [`AdGroupAdAssetView.resource_name`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdAssetView#resource_name) from `customers/{id}/adGroupAdAssets/{id}` to `customers/{id}/adGroupAdAssetViews/{id}`.
- Added support for local ads with [`AdType.LOCAL_AD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType) and [`Ad.local_ad`](https://developers.google.com/google-ads/api/reference/rpc/v26/Ad).

### Audiences

- Added support to remove user data by adding [`UserDataOperation.remove`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserDataOperation) to [`UserDataService`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserDataService).
- Changed [`OfflineUserDataJob`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob) fields to have the correct annotation of `Immutable`:
  - [`external_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob)
  - [`type`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob)
  - [`customer_match_user_list_metadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob)
  - [`store_sales_metadata`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJob)
- Added error values to [`OfflineUserDataJobError`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobErrorEnum.OfflineUserDataJobError):
  - `CUSTOM_KEY_DISABLED`
  - `CUSTOM_KEY_NOT_PREDEFINED`
  - `CUSTOM_KEY_NOT_SET`
  - `NOT_WHITELISTED_FOR_UNIFIED_STORE_SALES`

### Batch Jobs

- Renamed `MutateJobService` to [`BatchJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/BatchJobService). This service is not yet available for general use, but you can start coding against the service.

### Bidding

- Added support for Target ROAS in simulations:
  - Added `TARGET_ROAS` to [`SimulationType`](https://developers.google.com/google-ads/api/reference/rpc/v26/SimulationTypeEnum.SimulationType).
  - Added `target_roas_point_list` to [`AdGroupSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupSimulation).
- Updated `AdGroup`, `AgeRangeView`, `KeywordView`, and `ParentalStatusView` to be selectable with `BiddingStrategy`.

### Billing

- Added `CANNOT_CREATE_BUDGET_THROUGH_API` to [`AccountBudgetProposalError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalErrorEnum.AccountBudgetProposalError).

### Campaigns

- Added support for Local Campaigns. Create a local campaign by setting the [`Campaign.advertising_channel_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) to `LOCAL`, [`Campaign.advertising_channel_sub_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) to `LOCAL_CAMPAIGN`, [`Campaign.local_campaign_setting.location_source_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) to `GOOGLE_MY_BUSINESS`, and [`Campaign.optimization_goal_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) to a value. You currently cannot filter on location when creating a Local campaign. Use the Google Ads UI or Google Ads Editor to do location filtering.
- Added `SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN` to [`SettingError`](https://developers.google.com/google-ads/api/reference/rpc/v26/SettingErrorEnum.SettingError).
- Added support to retrieve [Smart
  campaigns](https://support.google.com/google-ads/answer/7652860) with [`Campaign.advertising_channel_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#advertising_channel_type) set to `SMART`.

### Conversions

- Added new values to [`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType) to include:
  - `FIREBASE_ANDROID_FIRST_OPEN`
  - `FIREBASE_ANDROID_IN_APP_PURCHASE`
  - `FIREBASE_ANDROID_CUSTOM`
  - `FIREBASE_IOS_FIRST_OPEN`
  - `FIREBASE_IOS_IN_APP_PURCHASE`
  - `FIREBASE_IOS_CUSTOM`
  - `STORE_SALES`
  - `STORE_SALES_DIRECT_UPLOAD`
  - `THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN`
  - `THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE`
  - `THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM`
  - `THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN`
  - `THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE`
  - `THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM`
- Added `CREATION_NOT_SUPPORTED` to [`ConversionActionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionErrorEnum.ConversionActionError).

### Criteria

- Added `disapproval_reasons` to [`AdGroupCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterion).
- Added `income_range_view` to retrieve income range metrics.

### Hotel Ads

- Added support for booking on Google assets with [`AssetType.BOOK_ON_GOOGLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetTypeEnum.AssetType) and [`Asset.book_on_google_asset`](https://developers.google.com/google-ads/api/reference/rpc/v26/Asset).
- Added [`metrics.hotel_eligible_impressions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.hotel_eligible_impressions).

### Planning

- [`KeywordPlanIdeaService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService)
  - Keyword ideas returned per query will generally be more relevant and fewer. We now try only to return keyword ideas that are more specific than the search term. Some examples:
    - A search for "jacket" returns "denim jacket" and "black windbreaker" but not "clothing".
    - A search for "vacuum" returns "lightweight vacuum" and "robot vacuum" but not "cleaning products".
    - A search for "dogs" returns "corgi" and "german shepherd" but not "animal".
    - If the keywords we return are too specific, try searching for a more general term.
  - Added fields for historical metrics in keyword plan ideas:
    - [`KeywordPlanHistoricalMetrics.monthly_search_volumes`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.competition_index`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.low_top_of_page_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.high_top_of_page_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
  - Added [`GenerateKeywordIdeasRequest.include_adult_keywords`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest) so adult keyword ideas can be requested.
  - Added [`GenerateKeywordIdeasRequest.site_seed`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateKeywordIdeasRequest) so keyword ideas can be generated for the site.
  - Added paging support to the [`GenerateKeywordIdeas`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanIdeaService) method.
- [`KeywordPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService)
  - Added fields for historical metrics in keyword plans:
    - [`KeywordPlanHistoricalMetrics.monthly_search_volumes`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.competition_index`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.low_top_of_page_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
    - [`KeywordPlanHistoricalMetrics.high_top_of_page_bid_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanHistoricalMetrics)
  - Added [`KeywordPlanService.GenerateForecastCurve`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService) to generate a forecast curve for a plan. Curve provides forecast metrics for the keyword plan at different cost per click (CPC) bid points.
- Added [`KeywordPlanAdGroupKeywordService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAdGroupKeywordService) to manage keyword plan ad group keywords.
  - Both ad group positive and negative keywords are supported.
- Added [`KeywordPlanCampaignKeywordService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanCampaignKeywordService) to manage keyword plan campaign keywords.
  - Only campaign negative keywords are supported.
- Removed `KeywordPlanKeywordService`. The replacement is [`KeywordPlanAdGroupKeywordService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAdGroupKeywordService).
- Removed `KeywordPlanNegativeKeywordService`. The replacement is either [`KeywordPlanAdGroupKeywordService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAdGroupKeywordService) or [`KeywordPlanCampaignKeywordService`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanCampaignKeywordService).
- Added errors:
  - [`KeywordPlanCampaignKeywordError`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError)
  - [`KeywordPlanAdGroupKeywordError`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError)
- Added [`GenerateReachForecastRequest.cookie_frequency_cap_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateReachForecastRequest) to allow specifying a frequency cap time unit other than month to [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService).

### Recommendations

- Added [`Customer.optimization_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer).

### Reporting

- Starting in v4, `segments.date`, `segments.week`, `segments.month`, `segments.quarter`, and `segments.year` will function as follows:
  - These segments can be filtered in the `WHERE` clause without being required in the `SELECT` clause.
  - If any of these segments are in the `SELECT` clause, at least one of these segments should have a finite date range specified in the `WHERE` clause.

### Shopping

- Moved errors from [`AdGroupCriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionErrorEnum.AdGroupCriterionError) to [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError):
  - `INVALID_LISTING_GROUP_HIERARCHY`
  - `LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN`
  - `LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE`
  - `LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS`
  - `LISTING_GROUP_ALREADY_EXISTS`
  - `LISTING_GROUP_DOES_NOT_EXIST`
  - `LISTING_GROUP_CANNOT_BE_REMOVED`
  - `INVALID_LISTING_GROUP_TYPE`
  - `LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID`
- Renamed the following errors inside [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError):
  - `PRODUCT_FILTER_TOO_LONG -> LISTING_SCOPE_TOO_LONG`
  - `PRODUCT_SCOPE_TOO_MANY_DIMENSIONS -> LISTING_SCOPE_TOO_MANY_DIMENSIONS`
  - `PRODUCT_PARTITION_TOO_LONG -> LISTING_GROUP_TOO_LONG`
  - `PRODUCT_PARTITION_TOO_MANY_DIMENSIONS -> LISTING_GROUP_TREE_TOO_DEEP`
  - `INVALID_PRODUCT_DIMENSION -> INVALID_LISTING_DIMENSION`
  - `INVALID_PRODUCT_DIMENSION_TYPE -> INVALID_LISTING_DIMENSION_TYPE`
- Merged the following errors in [`CriterionError`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError):
  - `INVALID_PRODUCT_FILTER and INVALID_PRODUCT_DIMENSION -> INVALID_LISTING_DIMENSION`
  - `PRODUCT_SCOPE_TOO_LONG and PRODUCT_FILTER_TOO_LONG -> LISTING_SCOPE_TOO_LONG`

## 3.1.0 beta (2020-04-29)

The functionality and changes below were added in v3.1.0.

### Account Management

- Added errors:
  - [`ManagerLinkError.INVALID_CHANGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkErrorEnum.ManagerLinkError#invalid_change)
  - [`ManagerLinkError.INVALID_STATUS_CHANGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkErrorEnum.ManagerLinkError#invalid_status_change)

### Ads

- Added errors:
  - [`AssetLinkError`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetLinkErrorEnum.AssetLinkError)
  - [`MutateError.RESOURCE_READ_ONLY`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateErrorEnum.MutateError#resource_read_only)
  - [`MutateError.RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY`](https://developers.google.com/google-ads/api/reference/rpc/v26/MutateErrorEnum.MutateError#resource_does_not_support_validate_only)

### Audiences

- Added a new service [`OfflineUserDataJobService`](https://developers.google.com/google-ads/api/reference/rpc/v26/OfflineUserDataJobService) which supports asynchronous upload of [Customer
  Match](https://support.google.com/google-ads/answer/6379332) data and [store sales
  (direct upload)](https://support.google.com/google-ads/answer/6361305) data. These features have restricted access.
- Added a new service [`UserDataService`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserDataService) for uploading small batches of [Customer
  Match](https://support.google.com/google-ads/answer/6379332) data concurrently. This feature has restricted access.

### Billing

- Added support for retrieving the [paying manager
  customer](https://support.google.com/google-ads/answer/9703430) with [`PaymentsAccount.paying_manager_customer`](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentsAccount#paying_manager_customer) when making a request to [`PaymentsAccountService.ListPaymentsAccounts`](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentsAccountService#listpaymentsaccounts).
- Added errors:
  - [`AccountBudgetProposalError.OVERLAPS_EXISTING_BUDGET`](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalErrorEnum.AccountBudgetProposalError#overlaps_existing_budget)
  - [`CampaignBudgetError.TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudgetErrorEnum.CampaignBudgetError#total_budget_amount_must_be_unset_for_budget_period_daily)

### Conversions

- Added new values to [`ConversionActionCategory`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory) to include:
  - [`ADD_TO_CART`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`BEGIN_CHECKOUT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`BOOK_APPOINTMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`CONTACT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`ENGAGEMENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`GET_DIRECTIONS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`IMPORTED_LEAD`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`OUTBOUND_CLICK`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`PHONE_CALL_LEAD`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`REQUEST_QUOTE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`STORE_SALE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`STORE_VISIT`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`SUBMIT_LEAD_FORM`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)
  - [`SUBSCRIBE_PAID`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory)

### Criteria

- Added errors:
  - [`CriterionError.CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#cannot_set_bids_on_listing_group_subdivision)
  - [`CriterionError.DUPLICATE_LISTING_DIMENSION_TYPE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#duplicate_listing_dimension_type)
  - [`CriterionError.DUPLICATE_LISTING_DIMENSION_VALUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#duplicate_listing_dimension_value)
  - [`CriterionError.LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#listing_scope_in_operator_not_supported)
  - [`CriterionError.LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#listing_scope_too_many_dimension_types)
  - [`CriterionError.LISTING_SCOPE_TOO_MANY_IN_OPERATORS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#listing_scope_too_many_in_operators)

### Hotel Ads

- [`AdGroupType.PROMOTED_HOTEL_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#promoted_hotel_ads) ad groups are now enabled for only allowlisted customers.

### Recommendations

- Added support for retrieving campaign [optimization
  score](https://support.google.com/google-ads/answer/9061546) in [`Campaign.optimization_score`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign#optimization_score).

### Reporting

- Added support to segment [`metrics.content_impression_share`](https://developers.google.com/google-ads/api/fields/v3/metrics#metrics.content_impression_share) by [`segments.hour`](https://developers.google.com/google-ads/api/fields/v3/segments#segments.hour).

### Video

- Added support for retrieving video responsive ads.
  - Added [`AdGroupType.VIDEO_RESPONSIVE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#video_responsive).
  - Added [`AdType.VIDEO_RESPONSIVE_AD`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType#video_responsive_ad).

## 3.0.0 beta (2020-02-27)

The functionality and changes below were added in v3.0.0.

### Account Management

- Added errors:
  - [`CustomerManagerLinkError.TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkErrorEnum.CustomerManagerLinkError#test_account_links_too_many_child_accounts)
  - [`ManagerLinkError.CLIENT_OUTSIDE_TREE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkErrorEnum.ManagerLinkError#client_outside_tree)
- Added support for moving a client customer to a new manager customer with [`CustomerManagerLinkService.MoveManagerLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkService#movemanagerlink).
- Added support for returning test customers in [`CustomerClient`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient). Filter out test accounts using the [`CustomerClient.test_account`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient#test_account) field.

### Ads

- Added errors:
  - [`AdError.AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#ad_customizers_may_not_be_adjacent)
  - [`AdError.PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#placeholder_cannot_have_empty_default_value)
  - [`AdError.PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#placeholder_countdown_function_cannot_have_default_value)
  - [`AdError.PLACEHOLDER_DEFAULT_VALUE_MISSING`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#placeholder_default_value_missing)
  - [`AdError.UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#unexpected_placeholder_default_value)
  - [`AdError.UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdErrorEnum.AdError#updating_ad_with_no_enabled_association)
  - [`ImageError.IMAGE_CONSTRAINTS_VIOLATED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ImageErrorEnum.ImageError#image_constraints_violated)
  - [`MediaUploadError.EXTERNAL_URL_NOT_ALLOWED`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError#external_url_not_allowed)
  - [`MediaUploadError.INVALID_URL_REFERENCE`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError#invalid_url_reference)
  - [`MediaUploadError.MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY`](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaUploadErrorEnum.MediaUploadError#missing_primary_media_bundle_entry)
  - [`StringLengthError.EMPTY`](https://developers.google.com/google-ads/api/reference/rpc/v26/StringLengthErrorEnum.StringLengthError#empty)

### Billing

- Updated [`PaymentsAccountService.ListPaymentsAccounts`](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentsAccountService#listpaymentsaccounts) to return [`PaymentsAccountError.NOT_SUPPORTED_FOR_MANAGER_CUSTOMER`](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentsAccountErrorEnum.PaymentsAccountError#not_supported_for_manager_customer) when making a request to a manager account.
- Added errors:
  - [`BillingSetupError.PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH`](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupErrorEnum.BillingSetupError#payments_account_ineligible_currency_code_mismatch)
  - [`TimeZoneError`](https://developers.google.com/google-ads/api/reference/rpc/v26/TimeZoneErrorEnum.TimeZoneError)

### Campaigns

- Removed `BiddingStrategy.page_one_promoted`.
- Removed `BiddingStrategy.target_outrank_share`.
- Removed the following unused errors:
  - `CampaignError.MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING`
  - `SettingError.UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION`
  - `SettingError.UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG`
  - `SettingError.UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED`
  - `SettingError.TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN`
  - `SettingError.TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN`
  - `SettingError.MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN`
  - `SettingError.TOO_MANY_EXCLAMATION_MARKS`
- Added errors:
  - [`CampaignError.SENSITIVE_CATEGORY_APP`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignErrorEnum.CampaignError#sensitive_category_app)
  - [`BiddingError.BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingErrorEnum.BiddingError#bidding_strategy_type_incompatible_with_shared_budget)
  - [`InternalError.DEADLINE_EXCEEDED`](https://developers.google.com/google-ads/api/reference/rpc/v26/InternalErrorEnum.InternalError#deadline_exceeded)
- Updated [`TargetingSetting`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetingSetting) to include [`TargetingSetting.target_restriction_operations`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetingSetting), which enables updating specific [`TargetingSetting.target_restrictions`](https://developers.google.com/google-ads/api/reference/rpc/v26/TargetingSetting) values.
- Removed the following unused enum values:
  - `BudgetPeriod.CUSTOM`
  - `BudgetPeriod.FIXED_DAILY`

### Constants

- Added [`CurrencyConstantService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CurrencyConstantService) to retrieve currency constants.

### Conversions

- Added errors:
  - [`ConversionAdjustmentUploadError.TOO_MANY_ADJUSTMENTS`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError#too_many_adjustments)
  - [`ConversionAdjustmentUploadError.TOO_MANY_ADJUSTMENTS_IN_REQUEST`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError#too_many_adjustments_in_request)

### Criteria

- Removed `GAME` from `ContentLabelType`.
- Added [`CriterionError.CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionErrorEnum.CriterionError#cannot_target_user_list_for_smart_display_campaigns).

### Feeds

- Added [`FeedItemTarget.status`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemTarget#status).
- Added errors:
  - [`CampaignFeedError.NO_EXISTING_LOCATION_CUSTOMER_FEED`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignFeedErrorEnum.CampaignFeedError#no_existing_location_customer_feed)
  - [`ExtensionFeedItemError.CONCRETE_EXTENSION_TYPE_REQUIRED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItemErrorEnum.ExtensionFeedItemError#concrete_extension_type_required)
  - [`ExtensionFeedItemError.SCHEDULE_END_NOT_AFTER_START`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItemErrorEnum.ExtensionFeedItemError#schedule_end_not_after_start)
  - [`FeedError.CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedErrorEnum.FeedError#cannot_have_location_and_affiliate_location_feeds)
  - [`FeedError.GMB_ACCESS_ERROR`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedErrorEnum.FeedError#gmb_access_error)
  - [`FeedMappingError.ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedMappingErrorEnum.FeedMappingError#attribute_field_mapping_missing_field)

### Hotel Ads

- Added [`PaymentMode.GUEST_STAY`](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentModeEnum.PaymentMode#guest_stay) for Hotel commission campaign to allow creating and editing hotel pay per stay campaigns. This mode is only supported by campaigns with [`AdvertisingChannelType.HOTEL`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelTypeEnum.AdvertisingChannelType#hotel), [`BiddingStrategyType.COMMISSION`](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategyTypeEnum.BiddingStrategyType#commission), and [`BudgetType.HOTEL_ADS_COMMISSION`](https://developers.google.com/google-ads/api/reference/rpc/v26/BudgetTypeEnum.BudgetType#hotel_ads_commission).
- Added [`AdGroupType.PROMOTED_HOTEL_ADS`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupTypeEnum.AdGroupType#promoted_hotel_ads) to support the promoted hotels feature.

### Reach Forecasting

- Added Network Type to the [`Targeting`](https://developers.google.com/google-ads/api/reference/rpc/v26/Targeting) settings you can use in [`GenerateReachForecastRequest`](https://developers.google.com/google-ads/api/reference/rpc/v26/GenerateReachForecastRequest).

### Reporting

- **Streaming**

  - Added the support of [streaming results](https://developers.google.com/google-ads/api/docs/reporting/streaming) as [`GoogleAdsService.SearchStream`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#searchstream). Compared with paging, where you need to send requests for every page you want to retrieve, streaming lets you send one request to the server that returns a stream to read a sequence of messages back.
- **Querying**

  - Introduced returning total results count when retrieving data from [`GoogleAdService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) by setting `return_total_results_count` to `true` in the request; previous versions always returned the total result count. Setting this to `true` will incur a performance penalty.
  - Introduced multiple ways of returning summaries in results when retrieving data from [`GoogleAdService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) by setting [`summary_row_setting`](https://developers.google.com/google-ads/api/reference/rpc/v26/SearchGoogleAdsRequest#summary_row_setting). Previous versions had the setting `return_summary_row`, which has been removed in this version.
  - Added [`DatabaseError.REQUEST_TOO_LARGE`](https://developers.google.com/google-ads/api/reference/rpc/v26/DatabaseErrorEnum.DatabaseError#request_too_large) to indicate that the request needs to be split into smaller requests.
- **View - Dynamic Search Ads Search Term**

  - Added fields to [`DynamicSearchAdsSearchTermView`](https://developers.google.com/google-ads/api/reference/rpc/v26/DynamicSearchAdsSearchTermView):
    - [`has_negative_keyword`](https://developers.google.com/google-ads/api/reference/rpc/v26/DynamicSearchAdsSearchTermView#has_negative_keyword)
    - [`has_matching_keyword`](https://developers.google.com/google-ads/api/reference/rpc/v26/DynamicSearchAdsSearchTermView#has_matching_keyword)
    - [`has_negative_url`](https://developers.google.com/google-ads/api/reference/rpc/v26/DynamicSearchAdsSearchTermView#has_negative_url)
- **View - Geographic**

  - Added [`segments.geo_target_country`](https://developers.google.com/google-ads/api/fields/v3/segments#segments.geo_target_country) to [`geographic_view`](https://developers.google.com/google-ads/api/fields/v3/geographic_view).
- **View - Hotel Group**

  - Added metric [`metrics.search_click_share`](https://developers.google.com/google-ads/api/fields/v3/metrics#metrics.search_click_share) to [`hotel_group_view`](https://developers.google.com/google-ads/api/fields/v3/hotel_group_view).
- **View - Hotel Performance**

  - Added metric [`metrics.search_click_share`](https://developers.google.com/google-ads/api/fields/v3/metrics#metrics.search_click_share) to [`hotel_performance_view`](https://developers.google.com/google-ads/api/fields/v3/hotel_performance_view).
- **View - User Location**

  - Added [`segments.geo_target_country`](https://developers.google.com/google-ads/api/fields/v3/segments#segments.geo_target_country) to [`user_location_view`](https://developers.google.com/google-ads/api/fields/v3/user_location_view).

### Shopping

- Renamed shopping objects and fields containing **listing** to **product** including:
  - `ListingBrandInfo` to [`ProductBrandInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductBrandInfo)
  - `ListingCustomAttributeInfo` to [`ProductCustomAttributeInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductCustomAttributeInfo)
  - `ListingCustomAttributeIndex` to [`ProductCustomAttributeIndex`](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex)

### Video

- Added error [`YoutubeVideoRegistrationError.VIDEO_NOT_ELIGIBLE`](https://developers.google.com/google-ads/api/reference/rpc/v26/YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError#video_not_eligible).

## 2.2.0 beta (2019-09-25)

The functionality and changes below were added in v2.2.0.

### Billing

- Added a restricted-access [`InvoiceService`](https://developers.google.com/google-ads/api/reference/rpc/v26/InvoiceService) for retrieving information about monthly invoices for a specified [billing
  setup](https://developers.google.com/google-ads/api/docs/billing/billing-setups). This service is currently not open for sign-ups.

### Reporting

- **Segments**
  - `segments.interaction_on_this_extension` and `segments.placeholder_type` are now selectable with:
    - [`ad_group`](https://developers.google.com/google-ads/api/fields/v2/ad_group)
    - [`ad_group_ad`](https://developers.google.com/google-ads/api/fields/v2/ad_group_ad)
    - [`campaign`](https://developers.google.com/google-ads/api/fields/v2/campaign)
  - `segments.month_of_year` is now selectable with:
    - [`ad_group`](https://developers.google.com/google-ads/api/fields/v2/ad_group)
    - [`campaign`](https://developers.google.com/google-ads/api/fields/v2/campaign)
    - [`segments.ad_network_type`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.ad_network_type)
    - [`segments.day_of_week`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.day_of_week)
- **View - Genders**
  - Added the ability to segment by [`segments.date`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.date) in [`gender_view`](https://developers.google.com/google-ads/api/fields/v2/gender_view).
- **View - Hotel Performance**
  - Added the ability to segment by [`segments.hotel_price_bucket`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.hotel_price_bucket) in [`hotel_performance_view`](https://developers.google.com/google-ads/api/fields/v2/hotel_performance_view).
- **View - Shared Sets**
  - Added the ability to select `bidding_strategy` and `user_list` resources when using [`shared_set`](https://developers.google.com/google-ads/api/fields/v2/shared_set) as the main resource in [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
- **View - User Locations**
  - Added the ability to filter by [`resource_name`](https://developers.google.com/google-ads/api/fields/v2/user_location_view#user_location_view.resource_name) in [`user_location_view`](https://developers.google.com/google-ads/api/fields/v2/user_location_view).

## 2.1.0 beta (2019-08-08)

The functionality and changes below were added in v2.1.0.

### Account Management

- Added `time_zone`, `test_account`, `manager`, `descriptive_name`, `currency_code`, and `id` to [`CustomerClient`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient) to make it easier to retrieve customers in an account hierarchy.

### Ads

- Added [`ExpandedDynamicSearchAd.description2`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExpandedDynamicSearchAdInfo#description2) to create and retrieve the second part of the ad description.

### Audiences

- Added `custom_affinity` to [`CampaignCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion) to target Custom Affinity audiences.

### Hotel Ads

- Added the ability to select [`metrics.hotel_price_difference_percentage`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.hotel_price_difference_percentage).

### Labels

- Added the ability to select [`campaign.labels`](https://developers.google.com/google-ads/api/fields/v2/campaign#campaignlabels) with other compatible resources in [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).

### Reach Forecasting

- Introduced a restricted access [`ReachPlanService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ReachPlanService), which lets users accurately forecast the commercial reach of video campaigns on YouTube and Google Video Partner inventory. For more details, refer to the [Reach Forecasting
  guide](https://developers.google.com/google-ads/api/docs/reach-forecasting).

### Reporting

#### Querying

- Added the ability to select `campaign` and `campaign_shared_set` when using [`shared_set`](https://developers.google.com/google-ads/api/fields/v2/shared_set) as the main resource in [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
- Added the ability to select the [`bidding_strategy`](https://developers.google.com/google-ads/api/fields/v2/bidding_strategy) resource in
  - [`ad_group_audience_view`](https://developers.google.com/google-ads/api/fields/v2/ad_group_audience_view)
  - [`campaign_audience_view`](https://developers.google.com/google-ads/api/fields/v2/campaign_audience_view)
  - [`display_keyword_view`](https://developers.google.com/google-ads/api/fields/v2/display_keyword_view)
  - [`gender_view`](https://developers.google.com/google-ads/api/fields/v2/gender_view)
  - [`managed_placement_view`](https://developers.google.com/google-ads/api/fields/v2/managed_placement_view)
  - [`topic_view`](https://developers.google.com/google-ads/api/fields/v2/topic_view) in [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search)
- Added the ability to select the `user_list` resource in [`ad_group_audience_view`](https://developers.google.com/google-ads/api/fields/v2/ad_group_audience_view) and [`campaign_audience_view`](https://developers.google.com/google-ads/api/fields/v2/campaign_audience_view) in [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
- Added the ability to segment by [`segments.date`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.date) in [`campaign_audience_view`](https://developers.google.com/google-ads/api/fields/v2/campaign_audience_view).
- Added the ability to select [`segments.ad_network_type`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.ad_network_type) and [`segments.device`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.device) in [`distance_view`](https://developers.google.com/google-ads/api/fields/v2/distance_view).

## 2.0.0 (2019-06-26)

The functionality and changes below were added in v2.0.0. This release contains
breaking changes. For breaking changes, see the [migration
guide](https://developers.google.com/google-ads/api/docs/migration-v1-v2).

### Account Management

- Updated [`CustomerService`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService) to allow users to add roles and emails on account creation. This is for allowlisted customers only and is not currently open for any new customers.

### Ads

- Introduced [`AdService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdService) for updating existing ads that were created using [`AdGroupAdService`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService). Updating ads maintains existing metrics. The ads that can be updated include:
  - [`ExpandedTextAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExpandedTextAdInfo)
  - [`CallOnlyAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallOnlyAdInfo)
  - [`ResponsiveDisplayAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponsiveDisplayAdInfo)
  - [`ResponsiveSearchAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ResponsiveSearchAdInfo)
  - [`ShoppingComparisonListingAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ShoppingComparisonListingAdInfo)
  - [`AppAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/AppAdInfo)
  - [`AppEngagementAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/AppEngagementAdInfo)
  - [`DisplayUploadAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/DisplayUploadAdInfo)

### Bidding

- For simulations (equivalent to [Bid
  Landscapes](https://developers.google.com/adwords/api/docs/guides/bid-landscapes) in the AdWords API):
  - Added `parent_required_budget_micros` to [`BidModifierSimulationPoint`](https://developers.google.com/google-ads/api/reference/rpc/v26/BidModifierSimulationPoint).
  - Added `views` to [`CpvBidSimulationPoint`](https://developers.google.com/google-ads/api/reference/rpc/v26/CpvBidSimulationPoint).
  - Added support for `SHOPPING` campaigns in [`CampaignCriterionSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionSimulation). All fields that are not compatible with shopping campaigns are noted in the comments.
  - Added support for `SHOPPING` and `DISPLAY` simulation in [`AdGroupCriterionSimulation`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionSimulation).

### Campaigns

- Added `PRESENCE_OR_INTEREST` to [`NegativeGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/NegativeGeoTargetTypeEnum.NegativeGeoTargetType) and [`PositiveGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/PositiveGeoTargetTypeEnum.PositiveGeoTargetType).
- Renamed `LOCATION_OF_PRESENCE` to `LOCATION` in [`NegativeGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/NegativeGeoTargetTypeEnum.NegativeGeoTargetType) and [`PositiveGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/PositiveGeoTargetTypeEnum.PositiveGeoTargetType).
- Updated the Campaign [`GeoTargetingType`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetingTypeEnum.GeoTargetingType) to default to `PRESENCE_OR_INTEREST` for [`NegativeGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/NegativeGeoTargetTypeEnum.NegativeGeoTargetType) and [`PositiveGeoTargetType`](https://developers.google.com/google-ads/api/reference/rpc/v26/PositiveGeoTargetTypeEnum.PositiveGeoTargetType).

### Criteria

- Added `SOCIAL_ISSUES` to [`ContentLabelType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ContentLabelTypeEnum.ContentLabelType).

### Feeds

- Introduced `targeted_keyword` in [`ExtensionFeedItem`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItem).
- Introduced [`PlaceholderType`](https://developers.google.com/google-ads/api/reference/rpc/v26/PlaceholderTypeEnum.PlaceholderType), and renamed [`FeedItemPlaceholderPolicyInfo.placeholder_type`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItemPlaceholderPolicyInfo#placeholder_type) to `placeholder_type_enum`, using the enum rather than an integer.
- Updated [`ExtensionFeedItemService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItemService) to support partial failure.
- Removed review extensions by removing [`ExtensionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionTypeEnum.ExtensionType) `REVIEW`. This was already deprecated in AdWords API.

### Hotel Ads

- Introduced [`segments.geo_target_country`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.geo_target_country) in the [`HotelPerformanceView`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPerformanceView).

### Labels

- Added the ability to retrieve all label resource names associated with the `AdGroup` resource using [`AdGroup.labels`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup#labels).

### Reporting

- **Metrics**
  - Introduced call metrics with reports including [`ExtensionFeedItem`](https://developers.google.com/google-ads/api/reference/rpc/v26/ExtensionFeedItem):
    - [`metrics.message_chats`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.message_chats)
    - [`metrics.message_impressions`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.message_impressions)
    - [`metrics.message_chat_rate`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.message_chat_rate)
  - Removed:
    - `metrics.average_position`
    - `metrics.impression_reach`
    - For other metrics to use, see this [blog post](https://ads-developers.googleblog.com/2018/11/top-metrics-absolute-top-metrics-and.html).
  - Updated [`segments.click_type`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.click_type) to NOT be compatible with:
    - [`metrics.view_through_conversions`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.view_through_conversions)
  - Updated [`segments.device`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.device) to be compatible with:
    - [`metrics.search_exact_match_impression_share`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.search_exact_match_impression_share)
  - Updated [`segment.month_of_year`](https://developers.google.com/google-ads/api/fields/v2/segments#segments.month_of_year) to be compatible with:
    - [`metrics.cross_device_conversions`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.cross_device_conversions)
    - [`metrics.gmail_forwards`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.gmail_forwards)
    - [`metrics.gmail_saves`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.gmail_saves)
    - [`metrics.gmail_secondary_clicks`](https://developers.google.com/google-ads/api/fields/v2/metrics#metrics.gmail_secondary_clicks)
- **Querying**
  - Introduced summary rows when retrieving data from [`GoogleAdService.Search()`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search) by setting `return_summary_row` to `true` in the request.
  - For [`GoogleAdsFieldService`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsFieldService), the page size that can be passed in must be 1 to 10000 inclusive. Any other number now results in an `INVALID_PAGE_SIZE` error.
- **Views - Ad Assets**
  - Introduced the [`AdGroupAdAssetView`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdAssetView) resource for querying ad asset metrics.
- **Views - Clicks**
  - Updated [`ClickView`](https://developers.google.com/google-ads/api/reference/rpc/v26/ClickView) to include ad group ad attributes.
- **Views - Distance**
  - Introduced the [`DistanceView`](https://developers.google.com/google-ads/api/reference/rpc/v26/DistanceView) resource (equivalent to the [User Ad Distance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/user-ad-distance-report) in the AdWords API).
- **Views - Geographic**
  - Introduced the [`UserLocationView`](https://developers.google.com/google-ads/api/reference/rpc/v26/UserLocationView) resource (equivalent to the [Geo Performance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/geo-performance-report) where `isTargetingLocation` is false in the AdWords API).
  - Replaced `country_geo_target_constant` with `country_criterion_id` in [`GeographicView`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeographicView).

### Video

- Introduced `companion_banner` in [`VideoBumperInStreamAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoBumperInStreamAdInfo) and [`VideoNonSkippableInStreamAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/VideoNonSkippableInStreamAdInfo). Note that this is a breaking change for some people as this introduced a new field in an empty object.

## 1.3.0 (2019-05-22)

The functionality and changes below were added in v1.3.0.

### Bidding

- When updating bidding strategies, you are no longer required to set required fields when updating non-required fields.

### Campaign drafts and experiments

- Added support for campaign drafts and experiments with the `CampaignDraft` and `CampaignExperiment` resources (equivalent to [Campaign Drafts and
  Experiments](https://developers.google.com/adwords/api/docs/guides/campaign-drafts-experiments) in the AdWords API).

### Conversions

- Added the ability to turn on validation only for the methods `UploadClickConversions`, `UploadCallConversions`, and `UploadConversionAdjustments`.

### Criteria

- Added `CONNECTED_TV` to `Device`.

### Feeds

- Added campaign (`targeted_campaign`), ad group (`targeted_ad_group`), and location (`targeted_geo_target_constant`) targeting to `ExtensionFeedItem`.

### Hotel Ads

- Added the following segments:
  - `segments.hotel_rate_rule_id`
  - `segments.hotel_rate_type`

### Labels

- Added the ability to retrieve all label resource names associated with the `Campaign` resource using `Campaign.labels`.

### Shopping

- Added support for [Comparison Listing Ads](https://support.google.com/google-ads/answer/9262823):
  - `SHOPPING_COMPARISON_LISTING_ADS` campaign advertising channel sub type
  - `SHOPPING_COMPARISON_LISTING_ADS` ad group type
  - `SHOPPING_COMPARISON_LISTING_AD` ad type
  - `COMPARISON_LISTING_AD` click type
- Access is restricted to Comparison Shopping Service customers.

## 1.2.0 (2019-04-29)

The functionality and changes below were added in v1.2.0.

### Ads

- Added `AppEngagementAdInfo` for managing App Campaigns for Engagement.
- Added `DisplayUploadAdInfo` for retrieving and managing ads of the following types:
  - `HTML5_UPLOAD_AD`
  - `DYNAMIC_HTML5_EDUCATION_AD`
  - `DYNAMIC_HTML5_FLIGHT_AD`
  - `DYNAMIC_HTML5_HOTEL_RENTAL_AD`
  - `DYNAMIC_HTML5_JOB_AD`
  - `DYNAMIC_HTML5_LOCAL_AD`
  - `DYNAMIC_HTML5_REAL_ESTATE_AD`
  - `DYNAMIC_HTML5_CUSTOM_AD`
  - `DYNAMIC_HTML5_TRAVEL_AD`
  - `DYNAMIC_HTML5_HOTEL_AD`
- Added the ability to select `AdParameter` in `GoogleAdsService`.
- Added `TextAsset` for retrieving text assets in ads.
- Added `FULLY_LIMITED` to `PolicyTopicEntryType`.

### Campaigns

- Create App Campaigns for engagement by creating a `Campaign` and setting the `advertising_channel_type` to `MULTI_CHANNEL` and the `advertising_channel_sub_type` to `APP_CAMPAIGN_FOR_ENGAGEMENT`. This feature is currently allowlisted.

### Bidding

- Added the ability to use pay-per-conversion bidding with `PaymentMode.CONVERSIONS`.
- Added simulations (equivalent to [Bid
  Landscapes](https://developers.google.com/adwords/api/docs/guides/bid-landscapes) in the AdWords API) for:
  - Campaign criteria: `CampaignCriterionSimulation`.
  - Ad group criteria: `AdGroupCriterionSimulation`.
  - Ad groups: `AdGroupSimulation`.

### Criteria

- Added display `name` to `MobileApplicationInfo` criteria (equivalent to [`MobileApplication.displayName`](https://developers.google.com/adwords/api/docs/reference/v201809/CampaignCriterionService.MobileApplication#displayname) in the AdWords API).
- Added `LocationGroupInfo` criteria (equivalent to [`LocationGroups`](https://developers.google.com/adwords/api/docs/reference/v201809/CampaignCriterionService.LocationGroups) in the AdWords API).

### Feeds

- Added `ad_schedules` and `device` to `ExtensionFeedItem`.
- Added `month_of_year`, `day_of_week`, and `cross_device_conversion` segmentation to `ExtensionFeedItem` and `FeedItem`.
- Added the ability to select `AdGroupAd` with `FeedItem`.
- Added `LocationFeedItem` and `AffiliateLocationFeedItem` for read-only retrieval.
- Updated `PromotionFeedItem.redemption_start` and `PromotionFeedItem.end_time` to make them selectable in a flat `ExtensionFeedItem`.

### Hotel Ads

- Added segment `segments.hotel_user_set_dates` to `CampaignAudienceView` and `AdGroupAudienceView`.
- Added the commission bidding strategy for hotel campaigns. In order to use this bidding strategy, you will need to set up a hotel `Campaign` with the following fields:
  - `campaign_budget` being the resource name for `CampaignBudget` of type `HOTEL_ADS_COMMISSION`
  - `payment_mode` set to `CONVERSION_VALUE`
  - `commission` defining the commission rate

### Parameters in Google Ads Query Language

- A new component called PARAMETERS has been added to the Google Ads Query Language grammar. In this version, users can include campaign drafts when creating a query by including the parameter `include_drafts`. An example would be:
  - `SELECT campaign.name, campaign.experiment_type, FROM campaign PARAMETERS include_drafts = true`

### Recommendations

- Added new Recommendations:
  - `CallExtensionRecommendation`
  - `CalloutExtensionRecommendation`
  - `SitelinkExtensionRecommendation`

### Reporting

- **Local Campaigns - Per store report**
  - Added metrics for Local Campaigns known as the Per Store Report in the Locations tab of the UI. This report has conversion metrics for feed items; used for location and affiliate location feed items.
  - Added the following metrics for `Campaign`, `Customer`, and `ExtensionFeedItem`:
    - `metrics.all_conversions_from_click_to_call`
    - `metrics.all_conversions_from_directions`
    - `metrics.all_conversions_from_menu`
    - `metrics.all_conversions_from_order`
    - `metrics.all_conversions_from_other_engagement`
    - `metrics.all_conversions_from_store_visit`
    - `metrics.all_conversions_from_store_website`
- **Views - Feed Placeholder View**
  - Added the ability to select `AdGroupAd`, `AdGroup,` and `Campaign` with `FeedPlaceholderView`.
- **Views - Geographic**
  - Added the ability to select `segments.geo_target_city`, `segments.geo_target_metro`, and `segments.geo_target_region` with `segments.date`.
  - Added segments:
    - `segments.geo_target_airport`
    - `segments.geo_target_county`
    - `segments.geo_target_district`
    - `segments.geo_target_most_specific_location`
    - `segments.geo_target_postal_code`
    - `segments.geo_target_state`
- **Views - Location View**
  - Added segments to `LocationView`:
    - `segments.month_of_year`
    - `segments.average_cpe`
    - `segments.engagement_rate`
    - `segments.engagements`
- **Views - Landing Pages**
  - Added new `LandingPageView` and `ExpandedLandingPageView` resources (enhanced version of [Landing Page
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/landing-page-report) in the AdWords API) along with related metrics:
    - `metrics.mobile_friendly_clicks_percentage`
    - `metrics.speed_score`
    - `metrics.valid_accelerated_mobile_pages_clicks_percentage`
- **View - Search Terms**
  - Added a new `PaidOrganicSearchTermView` resource (equivalent to [Paid Organic Query
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/paid-organic-query-report) in the AdWords API), along with the following new metrics and segments intended for use with this resource:
    - Segments:
      - `segments.search_engine_results_page_type`
    - Metrics:
      - `metrics.combined_clicks`
      - `metrics.combined_clicks_per_query`
      - `metrics.combined_queries`
      - `metrics.organic_clicks`
      - `metrics.organic_clicks_per_query`
      - `metrics.organic_impressions`
      - `metrics.organic_impressions_per_query`
      - `metrics.organic_queries`
  - The `SearchTermView` resource can now be segmented by the `AdGroupAd` resource.
  - `segments.search_term_match_type` is now compatible with `segments.keyword.ad_group_criterion`, `segments.keyword.info.match_type`, and `segments.keyword.info.text`.

## 1.1.0 (2019-03-27)

The functionality and changes below were added in v1.1.0.

### Ads

- Introduced `AssetService` for managing assets for asset-based ads.
- Added `ResponsiveDisplayAdInfo` (equivalent to [`MultiAssetResponsiveDisplayAd`](https://developers.google.com/adwords/api/docs/reference/latest/AdService.MultiAssetResponsiveDisplayAd) in [AdWords API](https://developers.google.com/adwords/api)).
- Added `AppAdInfo` (equivalent to [`UniversalAppAd`](https://developers.google.com/adwords/api/docs/reference/latest/AdService.UniversalAppAd) in [AdWords API](https://developers.google.com/adwords/api)).
- Added `headline1` and `headline2` fields to `CallOnlyAdInfo`.

### Campaigns

- Create [App Campaigns](https://support.google.com/google-ads/answer/6247380) (equivalent to [`UniveralAppCampaignInfo`](https://developers.google.com/adwords/api/docs/reference/latest/CampaignService.UniversalAppCampaignInfo) in [AdWords API](https://developers.google.com/adwords/api)) by creating a `Campaign` and setting the `advertising_channel_type` to `MULTI_CHANNEL` and the `advertising_channel_sub_type` to `APP_CAMPAIGN`.
- Create search dynamic ad groups by creating an ad group of type `SEARCH_DYNAMIC_ADS`.

### Conversions

- Adjust conversions with the new `ConversionAdjustmentUploadService`.
- Upload call conversions with the `UploadCallConversionsRequest` in the `ConversionUploadService`.

### Criteria

- `AdGroupCriterion` now includes `exempt_policy_violation_keys` for exemption requests.
- `AdGroupCriterion` now includes `approval_status`.
- `SharedCriterion`, `CampaignCriterion`, and `AdGroupCriterion` now include support for `mobile_application`.

### Hotel Ads

- Added conversion [metrics](https://developers.google.com/google-ads/api/fields/v26/metrics) into [`HotelPerformanceView`](https://developers.google.com/google-ads/api/fields/v26/hotel_performance_view) and [`HotelGroupView`](https://developers.google.com/google-ads/api/fields/v26/hotel_group_view), including:
  - `all_conversions`
  - `all_conversions_from_interactions_rate`
  - `all_conversions_from_interactions_value_per_interaction`
  - `all_conversions_value`
  - `all_conversions_value_per_cost`
  - `conversions`
  - `conversions_from_interactions_rate`
  - `conversions_from_interactions_value_per_interaction`
  - `conversions_value`
  - `conversions_value_per_cost`
  - `cost_per_all_conversions`
  - `cost_per_conversion`
  - `cross_device_conversions`
  - `value_per_all_conversions`
  - `value_per_conversion`
- Added impression share [metrics](https://developers.google.com/google-ads/api/fields/v26/metrics) into [`HotelPerformanceView`](https://developers.google.com/google-ads/api/fields/v26/hotel_performance_view) and [`HotelGroupView`](https://developers.google.com/google-ads/api/fields/v26/hotel_group_view), including:
  - `search_absolute_top_impression_share`
  - `search_budget_lost_absolute_top_impression_share`
  - `search_budget_lost_impression_share`
  - `search_budget_lost_top_impression_share`
  - `search_impression_share`
  - `search_rank_lost_absolute_top_impression_share`
  - `search_rank_lost_impression_share`
  - `search_rank_lost_top_impression_share`
  - `search_top_impression_share`

### Recommendations

- Added 2 `Recommendation` types:
  - `MoveUnusedBudgetRecommendation`
  - `KeywordMatchTypeRecommendation`

### Reporting

- **Segments**
  - [`segments.device`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.device) is now selectable with:
    - [`metrics.content_budget_lost_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.content_budget_lost_impression_share)
    - [`metrics.content_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.content_impression_share)
    - [`metrics.content_rank_lost_impression_share`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.content_budget_lost_impression_share)
  - `CampaignBudget` is now selectable with the following conversion segments:
    - [`segments.conversion_action`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action)
    - [`segments.conversion_action_category`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action_category)
    - [`segments.conversion_action_name`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action_name)
    - [`segments.external_conversion_source`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.external_conversion_source)
- **Views - Geographic**
  - Added [segments](https://developers.google.com/google-ads/api/fields/v26/segments):
    - `segments.geo_target_airport`
- **Views - Keywords**
  - The [`metrics.cross_device_conversions`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.cross_device_conversions) field is now selectable with `KeywordView`.
  - `DisplayKeywordView` can now be segmented by [`segments.month_of_year`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.month_of_year).
- **View - Placements**
  - `GroupPlacementView` can now be segmented by [`segments.month_of_year`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.month_of_year).
  - `GroupPlacementView` now includes `ad_network_type` and [`engagement
    metrics`](https://developers.google.com/google-ads/api/fields/v26/metrics) including `metrics.engagements` and `metrics.engagement_rate`.
- **View - Search Terms**
  - `DynamicSearchAdsSearchTermView` can now be segmented by [`segments.webpage`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.webpage).
  - [`SearchTermView`](https://developers.google.com/google-ads/api/fields/v26/search_term_view) can now be segmented by [`segments.keyword.ad_group_criterion`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.keywordad_group_criterion), [`segments.keyword.info.match_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.keywordinfomatch_type), and [`segments.keyword.info.text`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.keywordinfotext).

## 1.0.0 (2019-02-27)

The functionality and changes below were added in v1.0.0.

### Terms of Service

- The Terms and Conditions has changed. You'll need to accept the new
  Terms and Conditions and update your contact information in the API center.
  If you don't, you will get an error when trying to access v1.

  1. Sign in to the manager account where you have your developer token at [ads.google.com](https://ads.google.com/home/).
  2. Click **TOOLS \& SETTINGS** at the top of the page.
  3. Under **SETUP** , select **API Center**.
  4. Scroll down to **API contact email**, and update it.
  5. Scroll down to **Principal place of business** , accept the new conditions, and click **Save**.

### Resource Names

- The delimiter separating IDs in all resource names has changed from underscore `_` to tilde `~`. When parsing resource names, update your code to take into account the new delimiter.

### Account Management

- Added support for Labels.
  - The new `LabelService` lets developers add, modify, remove, and view labels.
  - Labels can be applied to and removed from resources using the `AdGroupAdLabelService`, `AdGroupCriterionLabelService`, `AdGroupLabelService`, `CampaignLabelService`, and `CustomerLabelService`.
- Introduced `MerchantCenterLinkService` for management of links between Google Ads and Google Merchant Center.

### Ads

- Added Responsive Search Ads with `ResponsiveSearchAdInfo`.
- Renamed `ResponsiveDisplayAdInfo` to `LegacyResponsiveDisplayAdInfo`. Check out the [recent blog
  post](https://ads-developers.googleblog.com/2019/02/changes-to-responsive-ads-in-adwords.html) on Display ads for more details.
- Removed `DynamicSearchAdInfo`. If you are using `DynamicSearchAdInfo`, migrate your ads to `ExpandedDynamicSearchAdInfo` by [March 6,
  2019](https://ads-developers.googleblog.com/2019/02/upgrade-dynamic-search-ads-in-adwords.html).
- Added `product_images` and `product_videos` to `GmailAdInfo`.
- Added `ad_id_to_copy_image_from` to `ImageAdInfo`.
- Added `ad_strength` to `AdGroupAd`.
- Added `ad.system_managed_entity_source` to `AdGroupAd`.

### Audiences

- Introduced the `CustomInterestService`.

### Batch Jobs

- Access to the batch jobs feature is currently restricted. We have released the services so you can start coding against this interface. Subscribe to the [Google Ads API blog](https://feeds.feedburner.com/blogspot/hecyUu) for updates when this feature will be available.
- Added `MutateJobService` to support submitting and monitoring asynchronous jobs containing large numbers of operations. Operations that are supported in the new service are documented in `MutateOperation`.

### Bidding

- Added support for the [Target Impression Share bidding
  strategy](https://support.google.com/google-ads/answer/9121108). This is a new `BiddingStrategy` that is available only in the Google Ads API.
- Added `BiddingStrategy.status`.

### Billing

- The `proposal_type` field in the `AccountBudgetProposal` resource now returns a value for resources that previously returned `UNKNOWN`.
- The `AccountBudgetProposalService` no longer returns errors if a valid billing setup resource name is specified for operations that mutate an existing budget.

### Campaigns

- Introduced `DomainCategory` to retrieve categories for a website.
- Added `geo_target_type_setting` to `Campaign`.

### Change History

- `ChangeStatusService` now provides support for `AdGroupBidModifier`, `AdGroupFeed`, and `CampaignFeed` resources.

### Conversions

- Introduced `ConversionUploadService` to enable uploading conversions from clicks.
- Added [`metrics.conversion_or_adjustment_lag_bucket`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.conversion_or_adjustment_lag_bucket) and [`metrics.conversion_lag_bucket`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.conversion_lag_bucket).

### Criteria

- Introduced `CustomerNegativeCriterionService`.
- The `AdGroupCriterion` resource now has `final_mobile_urls`, `final_url_suffix`, and `system_serving_status`. This makes the `system_serving_status` available with the `keyword_view`.
- Added support for `mobile_device` in `CampaignCriterion`.
- Introduced the `LanguageConstant.targetable` field.
- Introduced support for `CustomIntent` and `CustomAffinity` criteria.

### Feeds

- Introduced the `CustomerExtensionSettingService`, `CampaignExtensionSettingService`, and `AdGroupExtensionSettingService` to manage app, call, callout, message, price, promotion, review, sitelink, and structured snippet extensions.
- Introduced the `ExtensionFeedItemService`.
- Introduced the `FeedItemTargetService`.
- Introduced support for managing matching functions using structured objects/protos instead of strings in `CustomerFeed`, `CampaignFeed`, and `AdGroupFeed`.
- `Campaign.dynamic_search_ad_setting.feed_ids` was changed to `campaign.dynamic_search_ads_setting.feeds` so that feed IDs can be replaced by feed resources.
- `FeedItemValidationError.extra_information` was renamed to `FeedItemValidationError.extra_info`.
- In `FeedItem`, the type of the `price_value` field was changed from `Price` to `Money`.

### Hotel Ads

- Added Hotel Ads click types to [`segments.click_type`](https://developers.google.com/google-ads/api/fields/v26/segments#click_type): `HOTEL_PRICE`, `HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION`.

### Reporting

- **Query Grammar**
  - Changed the meaning of `metrics` and `segments` in GoogleAdsFieldService. These are now only returned for artifacts of category `RESOURCE` and they only contain the metrics and segments that are selectable when the given resource is in the `FROM` clause.
- **Segments**

  - Added [`segments.click_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.click_type).
  - Added segments for conversions:

    - [`segments.conversion_action`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action)
    - [`segments.conversion_action_category`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action_category)
    - [`segments.conversion_action_name`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_action_name)
    - [`segments.conversion_adjustment`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_adjustment)
    - [`segments.external_conversion_source`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.external_conversion_source)
  - Added ability to segment ads by keyword criteria with
    `segments.keyword.info.match_type` and `segments.keyword.info.text` for
    `AdGroupAd`.

  - Added `segments.interaction_on_this_extension` for `FeedItem`.

- **Views - Ads**

  - A new `ClickView` resource has been added. This is the equivalent of the [Click Performance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/click-performance-report) in the AdWords API. Consistent with the Click Performance Report, requests including the `ClickView` resource must specify a filter on a single day in the past 90 days.
  - Introduced the `DynamicSearchAdsSearchTermView` resource (equivalent to [Keywordless Query
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/keywordless-query-report) in the AdWords API).
- **Views - Bidding**

  - Introduced the `DetailPlacementView` (equivalent to [URL Performance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/url-performance-report) in the AdWords API) and `GroupPlacementView`.
  - Added `campaign_count` and `non_removed_campaign_count` to [`bidding_strategy`](https://developers.google.com/google-ads/api/fields/v26/bidding_strategy) (equivalent to [Bid Goal Performance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/bid-goal-performance-report) in the AdWords API).
- **Views - Feeds**

  - Introduced the `FeedPlaceholderView` (equivalent of the [Placeholder
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/placeholder-report) in the AdWords API).
  - Added more metrics and segments in `FeedItem`.
  - Added metrics for `ExtensionFeedItem`.
- **Views - Geographic**

  - Introduced the `GeographicView` resource (equivalent to the [Geo
    Performance
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/geo-performance-report) where `isTargetingLocation` is `true` OR there is no predicate on `isTargetingLocation` in the AdWords API).
  - Introduced the `LocationView` resource (equivalent to [Campaign Location
    Target
    Report](https://developers.google.com/adwords/api/docs/appendix/reports/campaign-location-target-report) in the AdWords API).
- **Zero Rows**

  - Search queries that include at least one segment will no longer return rows where all selected metrics equal zero. Queries that don't include any segments are unchanged and will continue to return rows where all metrics equal zero. Unlike the existing AdWords API, there is no way to disable this behavior.

### Shopping

- Added `ProductBiddingCategoryConstantService` (equivalent to [Shopping
  Performance
  Report](https://developers.google.com/adwords/api/docs/appendix/reports/shopping-performance-report) in the AdWords API).
- Bidding Categories are now supported in `ListingDimensionInfo` as a part of [`ListingGroups` and
  `ListingScopes`](https://developers.google.com/google-ads/api/docs/shopping-ads/create-listing-groups).
- Added the `ShoppingPerformanceView` resource (equivalent to [Shopping
  Performance
  Report](https://developers.google.com/adwords/api/docs/appendix/reports/shopping-performance-report) in the AdWords API) which includes the following metrics and segments:
  - [`Metrics`](https://developers.google.com/google-ads/api/fields/v26/metrics):
    - `all_conversions`
    - `all_conversions_from_interactions_rate`
    - `all_conversions_value`
    - `average_cpc`
    - `clicks`
    - `conversions`
    - `conversions_from_interactions_rate`
    - `conversions_value`
    - `cost_micros`
    - `cost_per_all_conversions`
    - `cost_per_conversion`
    - `cross_device_conversions`
    - `ctr`
    - `impressions`
    - `search_absolute_top_impression_share`
    - `search_click_share`
    - `search_impression_share`
    - `value_per_all_conversions`
    - `value_per_conversion`
  - [`Segments`](https://developers.google.com/google-ads/api/fields/v26/segments):
    - `ad_group` (resource)
    - `ad_network_type`
    - `campaign` (resource)
    - `click_type`
    - `conversion_action`
    - `conversion_action_category`
    - `conversion_action_name`
    - `date`
    - `day_of_week`
    - `device`
    - `external_conversion_source`
    - `month`
    - `product_aggregator_id`
    - `product_bidding_category_level1`
    - `product_bidding_category_level2`
    - `product_bidding_category_level3`
    - `product_bidding_category_level4`
    - `product_bidding_category_level5`
    - `product_brand`
    - `product_channel`
    - `product_channel_exclusivity`
    - `product_condition`
    - `product_country`
    - `product_custom_attribute0`
    - `product_custom_attribute1`
    - `product_custom_attribute2`
    - `product_custom_attribute3`
    - `product_custom_attribute4`
    - `product_item_id`
    - `product_language`
    - `product_merchant_id`
    - `product_store_id`
    - `product_title`
    - `product_type_l1`
    - `product_type_l2`
    - `product_type_l3`
    - `product_type_l4`
    - `product_type_l5`
    - `quarter`
    - `week`
    - `year`

### Video

- Updated `MediaVideo.ad_duration_millis` to have millisecond precision as the precision used to only be out to the second while ending in `000`.
- Added more metrics and segments compatible with `Video` (equivalent to [Video Performance
  Report](https://developers.google.com/adwords/api/docs/appendix/reports/video-performance-report) in the AdWords API).
- For reporting, added video types for `Ad` and `MediaVideo`.
- Added the ability to report on [target
  CPM](https://support.google.com/google-ads/answer/9158634) bidding strategies.

#### 0.7.0 (2019-01-30)

The functionality and changes below were added in v0.7.0.

##### Ads

- Support for managing ad parameters with the [AdParameterService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdParameterService).

##### Audiences

- Added support for the targeting setting in campaigns and ad groups.
- Added support for rule based, logical, and basic user lists.
- Added support for managing remarketing actions for a basic user list.

##### Billing

- Support for retrieving account-level budget proposals that were previously cancelled or rejected.

##### Campaigns

- `CampaignGroups` has been removed.

##### Change History

- Support for [`FEED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum.ChangeStatusResourceType#feed) and [`FEED_ITEM`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum.ChangeStatusResourceType#feed_item) resources.

##### Client Accounts

- Introduced signal to identify if a customer is a test account.
- Introduced signal to identify if a customer is a manager account.
- Exposed conversion tracking settings of a customer.

##### Conversions

- Added support for retrieving [current model attributed
  conversion](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.current_model_attributed_conversions) metrics.
- Added support for retrieval of conversion actions using `GoogleAdsService.Search`.
- Added support for segmenting your conversion data by [`conversion_attribution_event_type`](https://developers.google.com/google-ads/api/fields/v26/segments#segments.conversion_attribution_event_type).

##### Criteria and Location

- Added ability to create criterion with [`CriterionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType) `MOBILE_APP_CATEGORY`, `WEBPAGE`, `OPERATING_SYSTEM_VERSION`, and `APP_PAYMENT_MODEL` to identify when and where to show ads.
- Added ability to retrieve the `canonical_name` from the [`GeoTargetConstant`](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstant).

##### Feeds

- Ad customizer stats are now returned with [`FeedItem`](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedItem) stats.

##### Manager Accounts

- [`CustomerClientLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLink)
  - Added \`MutateCustomerClientLink() method, which modifies the customer client link in the manager account tree. These combinations are possible:
    - [`CustomerClientLinkOperation.create`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLinkOperation#create) + [`ManagerLinkStatus.PENDING`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#pending): Customer extends an invitation to a client.
    - [`CustomerClientLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLinkOperation#update) + [`ManagerLinkStatus.CANCELED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#canceled): Manager rescinds invitation.
    - [`CustomerClientLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLinkOperation#update) + [`ManagerLinkStatus.INACTIVE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#inactive): Manager terminates links.
    - [`CustomerClientLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClientLinkOperation#update) + [`ManagerLinkStatus.ACTIVE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#active) with `hidden` field set to `true`: This makes an `ACTIVE` link hidden.
- [`CustomerManagerLink`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLink)
  - Added `MutateCustomerManagerLink` method, which modifies the customer manager link in the manager account tree. These combinations are possible:
    - [`CustomerManagerLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkOperation#update) + [`ManagerLinkStatus.ACTIVE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#active): Client accepts invitation.
    - [`CustomerManagerLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkOperation#update) + [`ManagerLinkStatus.REFUSED`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#refused): Client declines invitation.
    - [`CustomerManagerLinkOperation.update`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerManagerLinkOperation#update) + [`ManagerLinkStatus.INACTIVE`](https://developers.google.com/google-ads/api/reference/rpc/v26/ManagerLinkStatusEnum.ManagerLinkStatus#inactive): Client terminates invitation.

##### Request Parameters

- Set `validate_only` to `true` as a request parameter to only validate the request, but not perform it. This was added to all services including [`GoogleAdsService.Mutate`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate).
- Set `partial_failure` to `true` as a mutate parameter to continue on failure and commit valid operations even if other operations in the same request failed.

##### Reporting

- All segment fields are now in a [segments](https://developers.google.com/google-ads/api/fields/v26/segments), which means all queries must be updated to include `segments.` before the segment field name.
- Additional [metrics](https://developers.google.com/google-ads/api/fields/v26/metrics) were added for ad groups, campaigns, budgets, campaign negative keywords, keywords, shared set criteria, campaign ad schedule targets, and bid goals including: `absolute_top_impression_percentage`, `active_view_cpm`, `active_view_ctr`, `active_view_impressions`, `active_view_measurability`, `active_view_measurable_cost_micros`, `active_view_measurable_impressions`, `active_view_viewability`, `average_frequency`, `average_page_views`, `average_time_on_site`, `benchmark_average_max_cpc`, `cost_per_current_model_attributed_conversion`, `current_model_attributed_conversions`, `current_model_attributed_conversions_from_interactions_rate`, `current_model_attributed_conversions_from_interactions_value_per_interaction`, `current_model_attributed_conversions_value`, `current_model_attributed_conversions_value_per_cost`, `gmail_forwards`, `gmail_saves`, `gmail_secondary_clicks`, `historical_creative_quality_score`, `historical_landing_page_quality_score`, `historical_quality_score`, `historical_search_predicted_ctr`, `impression_reach`, `interaction_types`, `search_budget_lost_absolute_top_impression_share`, `search_click_share`, `search_rank_lost_absolute_top_impression_share`, `search_rank_lost_top_impression_share`, `search_top_impression_share`, `top_impression_percentage`, and `value_per_current_model_attributed_conversion`.

##### Shopping

- Retrieve `metrics.benchmark_average_max_cpc` in [Product Group
  View](https://developers.google.com/google-ads/api/fields/v26/product_group_view) (previously known as [Product
  Partition Report](https://developers.google.com/adwords/api/docs/appendix/reports/product-partition-report) in the AdWords API).

##### Video

- Query standard campaigns with [`target_cpm_micros`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroup) set in an `AdGroup`.
- Retrieve [TrueView for Reach](https://support.google.com/google-ads/answer/9182151) metrics.
- Retrieve [`video_brand_safety_suitability`](https://developers.google.com/google-ads/api/reference/rpc/v26/Campaign) in a `Campaign`.
- Retrieve [`metrics.active_view_ctr`](https://developers.google.com/google-ads/api/fields/v26/metrics#metrics.active_view_ctr).

#### 0.6.0 (2018-11-29)

The functionality and changes below were added in v0.6.0.

##### Account Management

- [`CustomerClient`](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerClient) resource
  - Returns the list of clients managed by the selected customer.
- [CustomerService](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService)
  - Added [\`CreateCustomerClient()](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService#createcustomerclient) method, which creates a new client under the selected customer.
- CustomerService now supports mutates.
- New fields available in the `[Customer](/google-ads/api/reference/rpc/v26/Customer) are`final_url_suffix`and`tracking_url_template\`.
- Descriptive `name`, `currency`, `time_zone`, `final_url_suffix`, `tracking_url_template`, `auto_tagging_enabled`, `call_reporting_setting` are now mutable.

##### Ads

- Create ads of type `GMAIL_AD` in [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService).
- Create ads of type `IMAGE_AD` in [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService).

##### Audiences

- Create audiences using [UserListService](https://developers.google.com/google-ads/api/reference/rpc/v26/UserListService).

##### Billing

- [PaymentsAccountService](https://developers.google.com/google-ads/api/reference/rpc/v26/PaymentsAccountService) (read-only service)
  - View a list of all billing accounts (refer to the [BillingSetupService](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupService) to designate a billing account to a billing setup).

##### Conversions

- Conversion actions return AMP tag snippets.

##### Criteria

- You can now create criteria with [`CriterionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType) `LANGUAGE`, `CARRIER`, `USER_LIST`, `USER_INTEREST`, and `IP_BLOCK`.

##### Feeds

- Manage feeds and retrieve feed metrics with [AdGroupFeedService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupFeedService), [CustomerFeedService](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerFeedService), [FeedService](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedService), [CampaignFeedService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignFeedService), and [FeedMappingService](https://developers.google.com/google-ads/api/reference/rpc/v26/FeedMappingService).

##### Hotel Ads

- Made following derived metrics compatible with the existing [`HotelGroupView`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelGroupView) resource:
  - average_cpc
  - average_cpm
  - ctr
- Added the [HotelPerformanceViewService](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPerformanceViewService).
- Added the [`HotelPerformanceView`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelPerformanceView) resource
  - Note that the resource name for `HotelPerformanceView` is `customers/<customer_id>/hotelPerformanceView`
- Made `HotelPerformanceView` compatible with following metrics:

  - average_cpc
  - average_cpm
  - average_position
  - clicks
  - cost_micros
  - ctr
  - impressions
  - hotel_average_lead_value_micros

  These metrics can be segmented by
  - ad_network_type
  - date
  - day_of_week
  - device
  - hotel_booking_window_days
  - hotel_center_id
  - hotel_check_in_date
  - hotel_check_in_day_of_week
  - hotel_city
  - hotel_class
  - hotel_country
  - hotel_date_selection_type
  - hotel_length_of_stay
  - hotel_state
  - hour
  - month
  - partner_hotel_id
  - quarter
  - week
  - year

  The above metrics can also be segmented by the campaign and ad group
  resources. For example:

      select campaign.id, metrics.clicks from hotel_performance_view
      select ad_group.id, metrics.impressions from hotel_performance_view

##### Keyword Planning

- Published improved and extended version of Keyword Planning services keeping
  parity with Keyword Planner.

  - In order to accomplish this, we have introduced the **Keyword Plan** as a
    key concept. As with Keyword Planner, API users will be able to create
    Keyword Plans that can be accessed and modified at a later time. A Keyword
    Plan is much like any other Google Ads entity. As such, it is structured
    similarly to a standard serving campaign
    (`KeywordPlan` \> `KeywordPlanCampaign` \>
    `KeywordPlanAdGroup` \> `KeywordPlanKeyword`).

    Much like campaigns, the full set of Keyword Plan entities need to be
    created in order to get **Forecasted Metrics** or **Historical Metrics**
    (Search Volume Data).
- [`KeywordPlanService.GenerateForecastMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService#generateforecastmetrics)

  - This service replaces the AdWords API's [`TrafficEstimatorService.get`](https://developers.google.com/adwords/api/docs/reference/latest/TrafficEstimatorService#get). It returns forecast metrics for all the keywords present in your `KeywordPlan`. It returns consistent forecast data with Keyword Planner offering forecast metrics at the keyword, ad group or campaign level.
- [`KeywordPlanService.GenerateHistoricalMetrics`](https://developers.google.com/google-ads/api/reference/rpc/v26/KeywordPlanService#generatehistoricalmetrics)

  - This service replaces the AdWords API's [`TargetingIdeaService.get`](https://developers.google.com/adwords/api/docs/reference/latest/TargetingIdeaService#get) with `RequestType=STATS`; it returns historical metrics for all the canonicalized keywords present in your Keyword Plan. This means that if multiple `KeywordPlanKeyword` items are [close variants](https://support.google.com/google-ads/answer/2497825) of the same canonical keyword, a single version of the `KeywordPlanKeyword` will be returned along with historical metrics. This is consistent with Keyword Planner.
- \[`KeywordPlanIdeaService.GenerateKeywordIdeas`\](/google-ads/api/reference/rpc/v26/KeywordPlanService#generatekeywordideas\`

  - This service replaces [`TargetingIdeaService.get`](https://developers.google.com/adwords/api/docs/reference/latest/TargetingIdeaService#get) with `RequestType=IDEAS`; it returns canonicalized keyword suggestions along with historical metrics. These keywords can be added to your Keyword Plans for forecasting or obtaining overall historical metrics for your plan. This is the only service which does not require a Keyword Plan to be created because it provides keyword suggestions to assist with plan creation.

##### Mutates

- Pass in multiple kinds of operations with [`GoogleAdsService.Mutate`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#mutate).

##### Recommendations

- Added the [\`DismissRecommendation()](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationService#dismissrecommendation) method to the [RecommendationService](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationService), so that users can dismiss a recommendation.

##### Reports

- [`SearchTermView`](https://developers.google.com/google-ads/api/fields/v26/search_term_view) (known as [Search Query Performance
  Report](https://developers.google.com/adwords/api/docs/appendix/reports/search-query-performance-report) in the AdWords API).
  - The accompanying `SearchTermMatchType` segmentation was also added.

##### Shopping

- [Standard Shopping Campaigns](https://support.google.com/google-ads/answer/2454022)
  - [CampaignCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionService)
    - Added support for `ListingScopes` ("[product
      filters](https://support.google.com/google-ads/answer/2382954)").
      - All [dimensions](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingDimensionInfo) except Bidding Category are available.
- [Product Group View](https://developers.google.com/google-ads/api/fields/v26/product_group_view) (known as [Product Partition
  Report](https://developers.google.com/adwords/api/docs/appendix/reports/product-partition-report) in the AdWords API).
  - Added `benchmark_ctr` metric.
  - Added `search_absolute_top_impression_share` metric.

##### Video

- The `average_cpv` metric is now available for tracking video stats.

#### 0.5.0 (2018-10-31)

The functionality and changes below were added in v0.5.0.

##### Account Management

- [CustomerService.ListAccessibleCustomers](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService#listaccessiblecustomers)
  - Service for managing Google Ads accounts.

##### Billing

- [BillingSetupService](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupService)
  - Create a new billing setup.
  - Cancel an approved billing setup that is scheduled to start in the future.
  - Cancel a pending billing setup that is not yet approved.
- [AccountBudgetService](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetService)
  - View all approved account-level budgets, including budget adjustments.
  - View currently pending account-level budget proposals (if any).
- [AccountBudgetProposalService](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalService)
  - Create account-level budget proposal to update a budget or create a new budget.
  - View all account-level budget proposals. All approved values and proposed budget values are visible. Approved values are prefixed with `approved_`.

##### Campaigns

- Create campaigns with [`AdvertisingChannelSubType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType) `DISPLAY_GMAIL_AD` for Gmail Ad campaigns and `DISPLAY_SMART_CAMPAIGN` for Smart Display campaigns.
- Query more [`Metrics`](https://developers.google.com/google-ads/api/fields/v26/metrics) for accounts, campaigns, ad groups, keywords, and bidding strategies.

##### Change history

- `ResourceTypeEnum` was renamed to [`ChangeStatusResourceTypeEnum`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatusResourceTypeEnum).

##### Creatives

- [MediaFileService](https://developers.google.com/google-ads/api/reference/rpc/v26/MediaFileService)
  - A service to upload media to be used in ads.
- Create call-only ads with [`CallOnlyAdInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallOnlyAdInfo).
- Set and create the ad rotation mode on an ad group.
- Query [`Metrics`](https://developers.google.com/google-ads/api/fields/v26/metrics) such as impressions, clicks, cost, conversions, and average position for ads.

##### Conversion tracking

- Lets you measure the performance of your advertising against your business goals.
- Conversion actions
  - Set up and edit the settings associated with your conversion actions, including website tracking and call conversion tracking.

##### Hotel Ads

- Use [Google Ads Query Language](https://developers.google.com/google-ads/api/docs/query/overview) to query hotel group stats. For each hotel group:
  - Read the corresponding listing group case value.
  - Read direct child listing groups' types.
  - Read the parent listing group ID.
  - Read the listing group path, which contains the case value from the root node of the hotel group tree to the current hotel group.

##### Location, Demographics, and Criteria

- \`[GeoTargetConstantService](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstantService)
  - A service for retrieving geo constants and suggesting geo constants based on input.
- Create criterion with [`CriterionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/CriterionTypeEnum.CriterionType) `AGE_RANGE`, `GENDER`, `INCOME_RANGE`, `PARENTAL_STATUS`, `PLACEMENT`, `PROXIMITY`, `TOPIC`, `YOUTUBE_CHANNEL`, and `YOUTUBE_VIDEO` to identify when and where to show ads.
- Define `placement` in [`SharedCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedCriterion).
- Retrieve [`Metrics`](https://developers.google.com/google-ads/api/fields/v26/metrics) for audiences, age ranges, display keywords, gender, parental status, and display topics.

##### Shopping

- \`[ProductGroupView](https://developers.google.com/google-ads/api/reference/rpc/v26/ProductGroupView) resource
  - Supported metrics
    - all_conversions_from_interactions_rate
    - all_conversions
    - all_conversions_value
    - average_cpc
    - average_cpm
    - benchmark_average_max_cpc
    - clicks
    - conversions_from_interactions_rate
    - conversions
    - conversions_value
    - cost_micros
    - cost_per_all_conversions
    - cost_per_conversion
    - cross_device_conversions
    - ctr
    - impressions
    - search_click_share
    - search_impression_share
    - value_per_all_conversions
    - value_per_conversion
    - view_through_conversions
  - Supported segments
    - ad_network_type
    - date
    - day_of_week
    - device
    - month
    - month_of_year
    - quarter
    - week
    - Year

#### 0.4.0 (2018-09-21)

The functionality and changes below were added in v0.4.0.

##### Allowlist removed

The allowlist for API access has been removed. All API users who have an
existing developer token in the AdWords API can use that developer token for the
Google Ads API.

##### Billing

- [BillingSetupService](https://developers.google.com/google-ads/api/reference/rpc/v26/BillingSetupService)

  - Designate the business entity responsible for an account's accrued costs.
  - Each billing setup is associated with a Payments account. All billing setups pointing to the same Payments account will appear on a single monthly invoice.
  - You can cancel a pending or future approved billing setup. Note that not all settable fields are exposed yet, including the billing setup's start and end times.
  - Note that creating or changing billing setups is not supported yet.
- [AccountBudgetProposalService](https://developers.google.com/google-ads/api/reference/rpc/v26/AccountBudgetProposalService)

  - Create new budgets and make changes to existing budgets, including:
    - edit existing budgets
    - end a currently running budget
    - remove a budget (approved to start in the future)
  - Cancel proposals that are still pending.
  - There are some fields that are currently settable, but are not yet selectable.
  - Approved values (where there is a discrepancy between the proposed budget value and the approved value) will be exposed as fields prefixed with `approved_` in a future version.
  - Reads for account-level budgets managed by these proposals will be supported in a future version. Use [BudgetOrderService](https://developers.google.com/adwords/api/docs/guides/budget-order) until then.

##### Campaigns

- [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService)
  - Retrieve shared sets.
  - Retrieve campaign shared sets.

##### Change history

- [`ChangeStatus`](https://developers.google.com/google-ads/api/reference/rpc/v26/ChangeStatus) in [`GoogleAdService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search)
  - Retrieves the current status of resources that have changed since a requested time.
  - Supported resources are:
    - `AD_GROUP`
    - `AD_GROUP_AD`
    - `AD_GROUP_CRITERION`
    - `CAMPAIGN`
    - `CAMPAIGN_CRITERION`

##### Creatives

- The field `policy_validation_parameter` has been added to the [AdGroupAdOperation](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdOperation). It enables setting policy topics that should be ignored so the ad can be saved despite having policy validations.
- The field `policy_summary` has been added to [`AdGroupAd`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd) to display the current approval status of an ad (including any policy violations ignored).
- The fields `ad.added_by_google_ads` and `ad.device_preference` were added in [`AdGroupAd`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAd).

##### Conversion tracking

Conversion tracking lets you measure the performance of your advertising against
your business goals. The API will allow you to set up and edit your conversion
tracking setup.

- With [`ConversionAction`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction), you can set up and edit the settings associated with your conversion actions including website tracking and call conversion tracking.

##### Shopping

- [Standard Shopping Campaigns](https://support.google.com/google-ads/answer/2454022)
  - [CampaignService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService)
    - Create standard Shopping campaigns with `SHOPPING.advertising_channel_type`.
    - Supported bidding strategy types: `MANUAL_CPC`, `TARGET_SPEND`, `TARGET_ROAS`.
  - [BiddingStrategyService](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategyService)
    - Create portfolio bidding strategy of types `ENHANCED_CPC`, `TARGET_SPEND`, `TARGET_ROAS`.
  - [AdGroupService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupService)
    - Create ad groups of type `SHOPPING_PRODUCT_ADS`.
  - [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService)
    - Create ads of type `SHOPPING_PRODUCT_AD`.
  - [AdGroupCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionService)
    - Subdivide product offers through listing groups, which represent product groups.
    - Supported listing dimension types:
      - Product Condition
      - Product Type
      - Listing Brand
      - Custom Attribute (L0-4)
      - Product Channel
      - Product Channel Exclusivity
      - Product Offer Id

##### Video

- [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService)
  - Retrieve information about your video campaigns from [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
- Video Ads
  - Video specific metrics
    - Video views, video view rate
    - Video quartiles
    - View-through conversions
- Video creatives
- ManualCPV bidding strategy

#### 0.3.0 (2018-08-29)

##### Campaigns

The following were added or changed.

- [CampaignService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService), [AdGroupService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupService)
  - Create Display campaigns.
  - Set `advertising_channel_type` as it is now required.
- [CampaignCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionService)
  - Set a campaign's ad schedule using [`CampaignCriterion`](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterion).
- [CampaignSharedSetService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignSharedSetService), [SharedSetService](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedSetService), [SharedCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/SharedCriterionService)
  - Share negative keywords across campaigns.
- [CampaignBidModifierService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBidModifierService)
  - Set campaign bid modifiers for `CALL` interaction types.
- [AdGroupBidModifierService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifierService)
  - Set ad group bid modifiers for criteria types:
    - [`HotelDateSelectionTypeInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelDateSelectionTypeInfo)
    - [`HotelAdvanceBookingWindowInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelAdvanceBookingWindowInfo)
    - [`HotelLengthOfStayInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelLengthOfStayInfo)
    - [`HotelCheckInDayInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/HotelCheckInDayInfo)
    - [`DeviceInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/DeviceInfo)

##### Creatives

- For ad disapproval error handling, [`PolicyFindingDetails`](https://developers.google.com/google-ads/api/reference/rpc/v26/PolicyFindingDetails) replaces `PolicyViolationDetails` for expanded text ads.

##### Hotel Ads

- The `parent_criterion_id` (int64) in [`ListingGroupInfo`](https://developers.google.com/google-ads/api/reference/rpc/v26/ListingGroupInfo) has been replaced with `parent_criterion`. The new field is a string that contains the resource name of the parent criterion.

##### Queries

- [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService)
  - Filter by resource name in [`GoogleAdService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search).
  - Segment by `month_of_year`.
  - Strings in queries must be quoted.

##### Recommendations

- [Recommendations](https://developers.google.com/google-ads/api/docs/recommendations) added:
- `MaximizeConversionsOptInRecommendation`
- `EnhancedCpcOptInRecommendation`
- `MaximizeClicksOptInRecommendation`
- `SearchPartnersOptInRecommendation`
- `OptimizeAdRotationRecommendation`
- The `dismissed` field was added to [`Recommendation`
  resource](https://developers.google.com/google-ads/api/reference/rpc/v26/Recommendation) to allow you to search, get, and apply dismissed recommendations.

##### Shopping

- Smart Shopping Campaigns
  - [CampaignService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService)
    - Create campaigns with `advertising_channel_sub_type` `SHOPPING_SMART_ADS`.
    - Supported bidding strategy type: `MAXIMIZE_CONVERSION_VALUE`.
  - [AdGroupService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupService)
    - Create ad groups of type `SHOPPING_SMART_ADS`.
  - [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService)
    - Create ads of type `SHOPPING_SMART_AD`.
  - [AdGroupCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionService)
    - Subdivide product offers through *listing groups* , which represent product groups.
      - Supported listing dimension types:
        - Product Condition
        - Product Type
        - Listing Brand
        - Custom Attribute (L0-4)

#### 0.2.0 (2018-06-14)

##### Hotel Ads

- Added support for the [`PercentCpc`](https://developers.google.com/google-ads/api/reference/rpc/v26/PercentCpc) bidding strategy. Check out the updated [Hotel Ads guides](https://developers.google.com/google-ads/api/docs/hotel-ads/overview) for details.

#### 0.1.0 (2018-06-05)

##### Campaigns

###### Search Campaigns

- [CampaignCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionService)
  - Set bid modifiers for platforms.
  - Set bid modifiers and targeting for locations.
  - Configure `Location` and `Platform` criteria.
- [GeoTargetConstantService](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstantService)
  - Query of geo targets.

##### Hotel Ads

- [CampaignService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService), [AdGroupService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupService), [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService)
  - Create hotel campaigns linking to hotel center accounts.
- [CampaignCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionService)
  - Set bid modifiers for platforms.
  - Set bid modifiers and targeting for locations.
- [AdGroupBidModifierService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupBidModifierService)
  - Set bid modifiers for itineraries:
    - Date selection
    - Advance booking window
    - Length of stay
    - Check-in day
- [AdGroupCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionService)
  - Manipulate Hotel groups (listing groups).
- [GeoTargetConstantService](https://developers.google.com/google-ads/api/reference/rpc/v26/GeoTargetConstantService)
  - Query geo targets needed for hotel ads.

##### Recommendations

- [Recommendations](https://developers.google.com/google-ads/api/docs/recommendations) include:
  - `Keyword`
  - `CampaignBudget`
  - `TextAd` (expanded text ads)
  - `TargetCpaOptIn`
- [`GoogleAdsService.Search`](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService#search)
  - Search for Recommendations supports filtering and selecting with ad group, campaign, or campaign budget (depending on the Recommendation).
- [RecommendationService](https://developers.google.com/google-ads/api/reference/rpc/v26/RecommendationService)
  - Apply Recommendations applies the recommendation as-is or overrides and applies the recommendation.
  - `GetRecommendation` retrieves one recommendation at a time and is meant for exploratory use rather than the retrieval of multiple recommendations. To retrieve multiple campaigns in one call, use `GoogleAdsService`.

##### Customer

- [`Customer.has_partners_badge`](https://developers.google.com/google-ads/api/reference/rpc/v26/Customer#has_partners_badge) is available for verifying if this customer has a Partners program badge.

#### 0.0.0 (2018-04-23)

##### GoogleAdsFieldService

- [GoogleAdsFieldService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsFieldService) provides a catalog of all queryable fields. The metadata on these fields includes descriptions, types, and compatibility with other fields. [Learn
  more](https://developers.google.com/google-ads/api/docs/concepts/field-service).

##### GoogleAdsService

- [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService) is meant for retrieving
  multiple resources in a single query. Queryable [resources](https://developers.google.com/google-ads/api/reference/rpc/v26/overview#resources)
  include:

  - `Customer`
  - `Campaign`
  - `AdGroup`
  - `AdGroupAd`
  - `CampaignBudget`
  - `BiddingStrategy`
- [Metrics](https://developers.google.com/google-ads/api/reference/rpc/v26/Metrics) such as impressions and clicks can also be
  retrieved using [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService) for these
  resources:

  - `Customer`
  - `Campaign`
  - `AdGroup`
  - `AdGroupAd`
  - `CampaignBudget`
  - `BiddingStrategy`
  - `KeywordView` (Keyword)
- [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService) segments by fields,
  such as date fields. [Learn more](https://developers.google.com/google-ads/api/docs/reporting/overview).

##### Services for resources

###### [CampaignService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignService)

- `MutateCampaigns` creates, updates, or removes search campaigns. It can
  also configure network settings and bidding strategies.

- `GetCampaign` retrieves one campaign at a time. It is meant for exploratory
  use rather than for retrieval of multiple campaigns. To retrieve multiple
  campaigns in a single call, use [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [CampaignBudgetService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignBudgetService)

- `MutateCampaignBudgets` creates, updates, or removes campaign budgets.

- `GetCampaignBudget` is meant for exploratory use rather than for
  retrieval of multiple campaign budgets. To retrieve multiple campaign
  budgets, use [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [AdGroupService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupService)

- `MutateAdGroups` creates, updates, or removes ad groups under search
  campaigns. It can also set bids on ad groups.

- `GetAdGroup` retrieves one ad group at a time. It is meant for exploratory
  use rather than for retrieval of multiple ad groups. To retrieve multiple ad
  groups, use [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [AdGroupAdService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupAdService)

- `MutateAdGroupAds` creates, updates, or removes ads in search campaigns.
  Supported ads are listed in [`AdType`](https://developers.google.com/google-ads/api/reference/rpc/v26/AdTypeEnum.AdType) and include:

  - TEXT_AD
  - EXPANDED_TEXT_AD
  - DYNAMIC_SEARCH_AD
  - CALL_ONLY_AD
  - EXPANDED_DYNAMIC_SEARCH_AD
- `GetAdGroupAd` retrieves one ad at a time. It is meant for exploratory
  use rather than for retrieval of multiple ads. To retrieve multiple ads, use
  [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [BiddingStrategyService](https://developers.google.com/google-ads/api/reference/rpc/v26/BiddingStrategyService)

- `MutateBiddingStrategies` creates, updates, or removes search campaign
  bidding strategies. Both standard and portfolio bidding strategies are
  supported.

- `GetBiddingStrategy` retrieves one bidding strategy at a time. It is meant
  for exploratory use rather than for retrieval of multiple bidding strategies.
  To retrieve multiple bidding strategies, use
  [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [CampaignCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/CampaignCriterionService) and [AdGroupCriterionService](https://developers.google.com/google-ads/api/reference/rpc/v26/AdGroupCriterionService)

- `MutateCampaignCriteria` and `MutateAdGroupCriteria` create, update, or
  remove keyword criteria in search campaigns.

- `GetCampaignCriterion` and `GetAdGroupCriterion` retrieve one criterion at a
  time. They are meant for exploratory use rather than for retrieval of multiple
  criteria. To retrieve multiple criteria, use
  [GoogleAdsService](https://developers.google.com/google-ads/api/reference/rpc/v26/GoogleAdsService).
  [Learn more](https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects).

###### [CustomerService](https://developers.google.com/google-ads/api/reference/rpc/v26/CustomerService)

- `GetCustomer` retrieves specific details about an account.