From e42ff7fec5a89632200bc61327ded04769aa3ffa Mon Sep 17 00:00:00 2001
From: Da Yang <yangda@google.com>
Date: Thu, 8 Aug 2024 20:06:59 +0800
Subject: [PATCH] Changes for release v17_1. (#497)

---
 CHANGELOG.md                                  |   4 +
 .../ads/google_ads/v17/common/bidding_pb.rb   |   7 +-
 .../ads/google_ads/v17/common/segments_pb.rb  |   3 +-
 .../google_ads/v17/enums/ad_format_type_pb.rb |  45 ++
 .../v17/enums/bidding_strategy_type_pb.rb     |   2 +-
 .../enums/change_status_resource_type_pb.rb   |   2 +-
 .../google_ads/v17/enums/fixed_cpm_goal_pb.rb |  45 ++
 ...fixed_cpm_target_frequency_time_unit_pb.rb |  45 ++
 .../user_list_customer_type_category_pb.rb    |   2 +-
 ...atically_created_asset_removal_error_pb.rb |  45 ++
 .../ads/google_ads/v17/errors/errors_pb.rb    |   4 +-
 .../v17/errors/shareable_preview_error_pb.rb  |  45 ++
 .../google_ads/v17/resources/ad_group_pb.rb   |   2 +-
 .../google_ads/v17/resources/campaign_pb.rb   |   4 +-
 .../v17/resources/change_status_pb.rb         |   2 +-
 ...ine_conversion_upload_client_summary_pb.rb |   2 +-
 ...ion_upload_conversion_action_summary_pb.rb |  51 +++
 lib/google/ads/google_ads/v17/services.rb     |   1 +
 .../services/ad_group_ad_service/client.rb    | 109 +++++
 .../v17/services/ad_group_ad_service/paths.rb |  17 +
 .../v17/services/ad_group_ad_service_pb.rb    |   6 +-
 .../ad_group_ad_service_services_pb.rb        |  13 +
 .../audience_insights_service/client.rb       | 129 +++++-
 .../services/audience_insights_service_pb.rb  |   6 +-
 .../audience_insights_service_services_pb.rb  |  15 +
 .../v17/services/google_ads_service/paths.rb  |  19 +
 .../v17/services/google_ads_service_pb.rb     |   4 +-
 .../v17/services/shareable_preview_service.rb |  50 ++
 .../shareable_preview_service/client.rb       | 428 ++++++++++++++++++
 .../shareable_preview_service/credentials.rb  |  38 ++
 .../services/shareable_preview_service_pb.rb  |  55 +++
 .../shareable_preview_service_services_pb.rb  |  47 ++
 lib/google/ads/google_ads/version.rb          |   2 +-
 33 files changed, 1234 insertions(+), 15 deletions(-)
 create mode 100644 lib/google/ads/google_ads/v17/enums/ad_format_type_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/enums/fixed_cpm_goal_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/errors/shareable_preview_error_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/services/shareable_preview_service.rb
 create mode 100644 lib/google/ads/google_ads/v17/services/shareable_preview_service/client.rb
 create mode 100644 lib/google/ads/google_ads/v17/services/shareable_preview_service/credentials.rb
 create mode 100644 lib/google/ads/google_ads/v17/services/shareable_preview_service_pb.rb
 create mode 100644 lib/google/ads/google_ads/v17/services/shareable_preview_service_services_pb.rb

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2c49e445..bfea451e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+30.0.0
+------
+ - Compatibility with v17.1 of the API: https://developers.google.com/google-ads/api/docs/release-notes
+
 29.0.0
 ------
  - Compatibility with v17 of the API: https://developers.google.com/google-ads/api/docs/release-notes
diff --git a/lib/google/ads/google_ads/v17/common/bidding_pb.rb b/lib/google/ads/google_ads/v17/common/bidding_pb.rb
index ff363431..ce18da92 100644
--- a/lib/google/ads/google_ads/v17/common/bidding_pb.rb
+++ b/lib/google/ads/google_ads/v17/common/bidding_pb.rb
@@ -4,11 +4,13 @@
 
 require 'google/protobuf'
 
+require 'google/ads/google_ads/v17/enums/fixed_cpm_goal_pb'
+require 'google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb'
 require 'google/ads/google_ads/v17/enums/target_frequency_time_unit_pb'
 require 'google/ads/google_ads/v17/enums/target_impression_share_location_pb'
 
 
-descriptor_data = "\n-google/ads/googleads/v17/common/bidding.proto\x12\x1fgoogle.ads.googleads.v17.common\x1a?google/ads/googleads/v17/enums/target_frequency_time_unit.proto\x1a\x45google/ads/googleads/v17/enums/target_impression_share_location.proto\"L\n\nCommission\x12#\n\x16\x63ommission_rate_micros\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x19\n\x17_commission_rate_micros\"\r\n\x0b\x45nhancedCpc\"\x0b\n\tManualCpa\"G\n\tManualCpc\x12!\n\x14\x65nhanced_cpc_enabled\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x17\n\x15_enhanced_cpc_enabled\"\x0b\n\tManualCpm\"\x0b\n\tManualCpv\"n\n\x13MaximizeConversions\x12\x1e\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x03\x12\x1c\n\x14\x63pc_bid_floor_micros\x18\x03 \x01(\x03\x12\x19\n\x11target_cpa_micros\x18\x04 \x01(\x03\"l\n\x17MaximizeConversionValue\x12\x13\n\x0btarget_roas\x18\x02 \x01(\x01\x12\x1e\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x03\x12\x1c\n\x14\x63pc_bid_floor_micros\x18\x04 \x01(\x03\"\xbd\x01\n\tTargetCpa\x12\x1e\n\x11target_cpa_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x14\n\x12_target_cpa_microsB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"s\n\tTargetCpm\x12^\n\x15target_frequency_goal\x18\x01 \x01(\x0b\x32=.google.ads.googleads.v17.common.TargetCpmTargetFrequencyGoalH\x00\x42\x06\n\x04goal\"\x9c\x01\n\x1cTargetCpmTargetFrequencyGoal\x12\x14\n\x0ctarget_count\x18\x01 \x01(\x03\x12\x66\n\ttime_unit\x18\x02 \x01(\x0e\x32S.google.ads.googleads.v17.enums.TargetFrequencyTimeUnitEnum.TargetFrequencyTimeUnit\"\x8e\x02\n\x15TargetImpressionShare\x12q\n\x08location\x18\x01 \x01(\x0e\x32_.google.ads.googleads.v17.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation\x12%\n\x18location_fraction_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x42\x1b\n\x19_location_fraction_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\xb2\x01\n\nTargetRoas\x12\x18\n\x0btarget_roas\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x0e\n\x0c_target_roasB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"\x8b\x01\n\x0bTargetSpend\x12$\n\x13target_spend_micros\x18\x03 \x01(\x03\x42\x02\x18\x01H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x04 \x01(\x03H\x01\x88\x01\x01\x42\x16\n\x14_target_spend_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\x88\x01\n\nPercentCpc\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x65nhanced_cpc_enabled\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_enhanced_cpc_enabledB\xec\x01\n#com.google.ads.googleads.v17.commonB\x0c\x42iddingProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/common;common\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Common\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Common\xea\x02#Google::Ads::GoogleAds::V17::Commonb\x06proto3"
+descriptor_data = "\n-google/ads/googleads/v17/common/bidding.proto\x12\x1fgoogle.ads.googleads.v17.common\x1a\x33google/ads/googleads/v17/enums/fixed_cpm_goal.proto\x1aIgoogle/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto\x1a?google/ads/googleads/v17/enums/target_frequency_time_unit.proto\x1a\x45google/ads/googleads/v17/enums/target_impression_share_location.proto\"L\n\nCommission\x12#\n\x16\x63ommission_rate_micros\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x19\n\x17_commission_rate_micros\"\r\n\x0b\x45nhancedCpc\"\x0b\n\tManualCpa\"G\n\tManualCpc\x12!\n\x14\x65nhanced_cpc_enabled\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x17\n\x15_enhanced_cpc_enabled\"\x0b\n\tManualCpm\"\x0b\n\tManualCpv\"n\n\x13MaximizeConversions\x12\x1e\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x03\x12\x1c\n\x14\x63pc_bid_floor_micros\x18\x03 \x01(\x03\x12\x19\n\x11target_cpa_micros\x18\x04 \x01(\x03\"l\n\x17MaximizeConversionValue\x12\x13\n\x0btarget_roas\x18\x02 \x01(\x01\x12\x1e\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x03\x12\x1c\n\x14\x63pc_bid_floor_micros\x18\x04 \x01(\x03\"\xbd\x01\n\tTargetCpa\x12\x1e\n\x11target_cpa_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x14\n\x12_target_cpa_microsB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"s\n\tTargetCpm\x12^\n\x15target_frequency_goal\x18\x01 \x01(\x0b\x32=.google.ads.googleads.v17.common.TargetCpmTargetFrequencyGoalH\x00\x42\x06\n\x04goal\"\x9c\x01\n\x1cTargetCpmTargetFrequencyGoal\x12\x14\n\x0ctarget_count\x18\x01 \x01(\x03\x12\x66\n\ttime_unit\x18\x02 \x01(\x0e\x32S.google.ads.googleads.v17.enums.TargetFrequencyTimeUnitEnum.TargetFrequencyTimeUnit\"\x8e\x02\n\x15TargetImpressionShare\x12q\n\x08location\x18\x01 \x01(\x0e\x32_.google.ads.googleads.v17.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation\x12%\n\x18location_fraction_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x42\x1b\n\x19_location_fraction_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\xb2\x01\n\nTargetRoas\x12\x18\n\x0btarget_roas\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x0e\n\x0c_target_roasB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"\x8b\x01\n\x0bTargetSpend\x12$\n\x13target_spend_micros\x18\x03 \x01(\x03\x42\x02\x18\x01H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x04 \x01(\x03H\x01\x88\x01\x01\x42\x16\n\x14_target_spend_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\x88\x01\n\nPercentCpc\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x65nhanced_cpc_enabled\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_enhanced_cpc_enabled\"\xc7\x01\n\x08\x46ixedCpm\x12K\n\x04goal\x18\x01 \x01(\x0e\x32=.google.ads.googleads.v17.enums.FixedCpmGoalEnum.FixedCpmGoal\x12\x61\n\x15target_frequency_info\x18\x02 \x01(\x0b\x32@.google.ads.googleads.v17.common.FixedCpmTargetFrequencyGoalInfoH\x00\x42\x0b\n\tgoal_info\"\xaf\x01\n\x1f\x46ixedCpmTargetFrequencyGoalInfo\x12\x14\n\x0ctarget_count\x18\x01 \x01(\x03\x12v\n\ttime_unit\x18\x02 \x01(\x0e\x32\x63.google.ads.googleads.v17.enums.FixedCpmTargetFrequencyTimeUnitEnum.FixedCpmTargetFrequencyTimeUnit\"\x0b\n\tTargetCpvB\xec\x01\n#com.google.ads.googleads.v17.commonB\x0c\x42iddingProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/common;common\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Common\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Common\xea\x02#Google::Ads::GoogleAds::V17::Commonb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
@@ -54,6 +56,9 @@ module Common
           TargetRoas = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.TargetRoas").msgclass
           TargetSpend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.TargetSpend").msgclass
           PercentCpc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.PercentCpc").msgclass
+          FixedCpm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.FixedCpm").msgclass
+          FixedCpmTargetFrequencyGoalInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.FixedCpmTargetFrequencyGoalInfo").msgclass
+          TargetCpv = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.common.TargetCpv").msgclass
         end
       end
     end
diff --git a/lib/google/ads/google_ads/v17/common/segments_pb.rb b/lib/google/ads/google_ads/v17/common/segments_pb.rb
index f6c43090..c392d2b5 100644
--- a/lib/google/ads/google_ads/v17/common/segments_pb.rb
+++ b/lib/google/ads/google_ads/v17/common/segments_pb.rb
@@ -6,6 +6,7 @@
 
 require 'google/ads/google_ads/v17/common/criteria_pb'
 require 'google/ads/google_ads/v17/enums/ad_destination_type_pb'
+require 'google/ads/google_ads/v17/enums/ad_format_type_pb'
 require 'google/ads/google_ads/v17/enums/ad_network_type_pb'
 require 'google/ads/google_ads/v17/enums/budget_campaign_association_status_pb'
 require 'google/ads/google_ads/v17/enums/click_type_pb'
@@ -38,7 +39,7 @@
 require 'google/api/resource_pb'
 
 
-descriptor_data = "\n.google/ads/googleads/v17/common/segments.proto\x12\x1fgoogle.ads.googleads.v17.common\x1a.google/ads/googleads/v17/common/criteria.proto\x1a\x38google/ads/googleads/v17/enums/ad_destination_type.proto\x1a\x34google/ads/googleads/v17/enums/ad_network_type.proto\x1aGgoogle/ads/googleads/v17/enums/budget_campaign_association_status.proto\x1a/google/ads/googleads/v17/enums/click_type.proto\x1a?google/ads/googleads/v17/enums/conversion_action_category.proto\x1a\x46google/ads/googleads/v17/enums/conversion_attribution_event_type.proto\x1a:google/ads/googleads/v17/enums/conversion_lag_bucket.proto\x1aHgoogle/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto\x1aLgoogle/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto\x1aYgoogle/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto\x1a\x30google/ads/googleads/v17/enums/day_of_week.proto\x1a+google/ads/googleads/v17/enums/device.proto\x1a?google/ads/googleads/v17/enums/external_conversion_source.proto\x1a>google/ads/googleads/v17/enums/hotel_date_selection_type.proto\x1a\x37google/ads/googleads/v17/enums/hotel_price_bucket.proto\x1a\x34google/ads/googleads/v17/enums/hotel_rate_type.proto\x1a\x32google/ads/googleads/v17/enums/month_of_year.proto\x1a\x35google/ads/googleads/v17/enums/placeholder_type.proto\x1a\x34google/ads/googleads/v17/enums/product_channel.proto\x1a@google/ads/googleads/v17/enums/product_channel_exclusivity.proto\x1a\x36google/ads/googleads/v17/enums/product_condition.proto\x1a\x38google/ads/googleads/v17/enums/recommendation_type.proto\x1a\x44google/ads/googleads/v17/enums/search_engine_results_page_type.proto\x1a;google/ads/googleads/v17/enums/search_term_match_type.proto\x1a@google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto\x1a\x45google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto\x1aJgoogle/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto\x1a>google/ads/googleads/v17/enums/sk_ad_network_source_type.proto\x1a<google/ads/googleads/v17/enums/sk_ad_network_user_type.proto\x1a)google/ads/googleads/v17/enums/slot.proto\x1a\x19google/api/resource.proto\"\xd0=\n\x08Segments\x12!\n\x13\x61\x63tivity_account_id\x18\x94\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1b\n\ractivity_city\x18\xb9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x10\x61\x63tivity_country\x18\xba\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0f\x61\x63tivity_rating\x18\x95\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1c\n\x0e\x61\x63tivity_state\x18\xbb\x01 \x01(\tH\x04\x88\x01\x01\x12\"\n\x14\x65xternal_activity_id\x18\x96\x01 \x01(\tH\x05\x88\x01\x01\x12\x65\n\x13\x61\x64_destination_type\x18\x88\x01 \x01(\x0e\x32G.google.ads.googleads.v17.enums.AdDestinationTypeEnum.AdDestinationType\x12X\n\x0f\x61\x64_network_type\x18\x03 \x01(\x0e\x32?.google.ads.googleads.v17.enums.AdNetworkTypeEnum.AdNetworkType\x12\x16\n\x08\x61\x64_group\x18\x9e\x01 \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0b\x61sset_group\x18\x9f\x01 \x01(\tH\x07\x88\x01\x01\x12$\n\x16\x61uction_insight_domain\x18\x91\x01 \x01(\tH\x08\x88\x01\x01\x12m\n\"budget_campaign_association_status\x18\x86\x01 \x01(\x0b\x32@.google.ads.googleads.v17.common.BudgetCampaignAssociationStatus\x12\x16\n\x08\x63\x61mpaign\x18\x9d\x01 \x01(\tH\t\x88\x01\x01\x12K\n\nclick_type\x18\x1a \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.ClickTypeEnum.ClickType\x12N\n\x11\x63onversion_action\x18q \x01(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionActionH\n\x88\x01\x01\x12y\n\x1a\x63onversion_action_category\x18\x35 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ConversionActionCategoryEnum.ConversionActionCategory\x12#\n\x16\x63onversion_action_name\x18r \x01(\tH\x0b\x88\x01\x01\x12\"\n\x15\x63onversion_adjustment\x18s \x01(\x08H\x0c\x88\x01\x01\x12\x8c\x01\n!conversion_attribution_event_type\x18\x02 \x01(\x0e\x32\x61.google.ads.googleads.v17.enums.ConversionAttributionEventTypeEnum.ConversionAttributionEventType\x12j\n\x15\x63onversion_lag_bucket\x18\x32 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ConversionLagBucketEnum.ConversionLagBucket\x12\x90\x01\n#conversion_or_adjustment_lag_bucket\x18\x33 \x01(\x0e\x32\x63.google.ads.googleads.v17.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket\x12\x11\n\x04\x64\x61te\x18O \x01(\tH\r\x88\x01\x01\x12L\n\x0b\x64\x61y_of_week\x18\x05 \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek\x12\x41\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x31.google.ads.googleads.v17.enums.DeviceEnum.Device\x12y\n\x1a\x65xternal_conversion_source\x18\x37 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ExternalConversionSourceEnum.ExternalConversionSource\x12\x1f\n\x12geo_target_airport\x18t \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\x11geo_target_canton\x18u \x01(\tH\x0f\x88\x01\x01\x12\x1c\n\x0fgeo_target_city\x18v \x01(\tH\x10\x88\x01\x01\x12\x1f\n\x12geo_target_country\x18w \x01(\tH\x11\x88\x01\x01\x12\x1e\n\x11geo_target_county\x18x \x01(\tH\x12\x88\x01\x01\x12 \n\x13geo_target_district\x18y \x01(\tH\x13\x88\x01\x01\x12\x1d\n\x10geo_target_metro\x18z \x01(\tH\x14\x88\x01\x01\x12.\n!geo_target_most_specific_location\x18{ \x01(\tH\x15\x88\x01\x01\x12#\n\x16geo_target_postal_code\x18| \x01(\tH\x16\x88\x01\x01\x12 \n\x13geo_target_province\x18} \x01(\tH\x17\x88\x01\x01\x12\x1e\n\x11geo_target_region\x18~ \x01(\tH\x18\x88\x01\x01\x12\x1d\n\x10geo_target_state\x18\x7f \x01(\tH\x19\x88\x01\x01\x12\'\n\x19hotel_booking_window_days\x18\x87\x01 \x01(\x03H\x1a\x88\x01\x01\x12\x1c\n\x0fhotel_center_id\x18P \x01(\x03H\x1b\x88\x01\x01\x12 \n\x13hotel_check_in_date\x18Q \x01(\tH\x1c\x88\x01\x01\x12[\n\x1ahotel_check_in_day_of_week\x18\t \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek\x12\x17\n\nhotel_city\x18R \x01(\tH\x1d\x88\x01\x01\x12\x18\n\x0bhotel_class\x18S \x01(\x05H\x1e\x88\x01\x01\x12\x1a\n\rhotel_country\x18T \x01(\tH\x1f\x88\x01\x01\x12t\n\x19hotel_date_selection_type\x18\r \x01(\x0e\x32Q.google.ads.googleads.v17.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType\x12!\n\x14hotel_length_of_stay\x18U \x01(\x05H \x88\x01\x01\x12\x1f\n\x12hotel_rate_rule_id\x18V \x01(\tH!\x88\x01\x01\x12X\n\x0fhotel_rate_type\x18J \x01(\x0e\x32?.google.ads.googleads.v17.enums.HotelRateTypeEnum.HotelRateType\x12\x61\n\x12hotel_price_bucket\x18N \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.HotelPriceBucketEnum.HotelPriceBucket\x12\x18\n\x0bhotel_state\x18W \x01(\tH\"\x88\x01\x01\x12\x11\n\x04hour\x18X \x01(\x05H#\x88\x01\x01\x12*\n\x1dinteraction_on_this_extension\x18Y \x01(\x08H$\x88\x01\x01\x12\x39\n\x07keyword\x18= \x01(\x0b\x32(.google.ads.googleads.v17.common.Keyword\x12\x12\n\x05month\x18Z \x01(\tH%\x88\x01\x01\x12R\n\rmonth_of_year\x18\x12 \x01(\x0e\x32;.google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear\x12\x1d\n\x10partner_hotel_id\x18[ \x01(\tH&\x88\x01\x01\x12]\n\x10placeholder_type\x18\x14 \x01(\x0e\x32\x43.google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType\x12#\n\x15product_aggregator_id\x18\x84\x01 \x01(\x03H\'\x88\x01\x01\x12%\n\x17product_category_level1\x18\xa1\x01 \x01(\tH(\x88\x01\x01\x12%\n\x17product_category_level2\x18\xa2\x01 \x01(\tH)\x88\x01\x01\x12%\n\x17product_category_level3\x18\xa3\x01 \x01(\tH*\x88\x01\x01\x12%\n\x17product_category_level4\x18\xa4\x01 \x01(\tH+\x88\x01\x01\x12%\n\x17product_category_level5\x18\xa5\x01 \x01(\tH,\x88\x01\x01\x12\x1a\n\rproduct_brand\x18\x61 \x01(\tH-\x88\x01\x01\x12Z\n\x0fproduct_channel\x18\x1e \x01(\x0e\x32\x41.google.ads.googleads.v17.enums.ProductChannelEnum.ProductChannel\x12|\n\x1bproduct_channel_exclusivity\x18\x1f \x01(\x0e\x32W.google.ads.googleads.v17.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity\x12`\n\x11product_condition\x18  \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.ProductConditionEnum.ProductCondition\x12\x1c\n\x0fproduct_country\x18\x62 \x01(\tH.\x88\x01\x01\x12&\n\x19product_custom_attribute0\x18\x63 \x01(\tH/\x88\x01\x01\x12&\n\x19product_custom_attribute1\x18\x64 \x01(\tH0\x88\x01\x01\x12&\n\x19product_custom_attribute2\x18\x65 \x01(\tH1\x88\x01\x01\x12&\n\x19product_custom_attribute3\x18\x66 \x01(\tH2\x88\x01\x01\x12&\n\x19product_custom_attribute4\x18g \x01(\tH3\x88\x01\x01\x12 \n\x12product_feed_label\x18\x93\x01 \x01(\tH4\x88\x01\x01\x12\x1c\n\x0fproduct_item_id\x18h \x01(\tH5\x88\x01\x01\x12\x1d\n\x10product_language\x18i \x01(\tH6\x88\x01\x01\x12!\n\x13product_merchant_id\x18\x85\x01 \x01(\x03H7\x88\x01\x01\x12\x1d\n\x10product_store_id\x18j \x01(\tH8\x88\x01\x01\x12\x1a\n\rproduct_title\x18k \x01(\tH9\x88\x01\x01\x12\x1c\n\x0fproduct_type_l1\x18l \x01(\tH:\x88\x01\x01\x12\x1c\n\x0fproduct_type_l2\x18m \x01(\tH;\x88\x01\x01\x12\x1c\n\x0fproduct_type_l3\x18n \x01(\tH<\x88\x01\x01\x12\x1c\n\x0fproduct_type_l4\x18o \x01(\tH=\x88\x01\x01\x12\x1c\n\x0fproduct_type_l5\x18p \x01(\tH>\x88\x01\x01\x12\x15\n\x07quarter\x18\x80\x01 \x01(\tH?\x88\x01\x01\x12g\n\x13recommendation_type\x18\x8c\x01 \x01(\x0e\x32I.google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType\x12\x84\x01\n\x1fsearch_engine_results_page_type\x18\x46 \x01(\x0e\x32[.google.ads.googleads.v17.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType\x12 \n\x12search_subcategory\x18\x9b\x01 \x01(\tH@\x88\x01\x01\x12\x19\n\x0bsearch_term\x18\x9c\x01 \x01(\tHA\x88\x01\x01\x12k\n\x16search_term_match_type\x18\x16 \x01(\x0e\x32K.google.ads.googleads.v17.enums.SearchTermMatchTypeEnum.SearchTermMatchType\x12;\n\x04slot\x18\x17 \x01(\x0e\x32-.google.ads.googleads.v17.enums.SlotEnum.Slot\x12\x9d\x01\n\'conversion_value_rule_primary_dimension\x18\x8a\x01 \x01(\x0e\x32k.google.ads.googleads.v17.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension\x12\x15\n\x07webpage\x18\x81\x01 \x01(\tHB\x88\x01\x01\x12\x12\n\x04week\x18\x82\x01 \x01(\tHC\x88\x01\x01\x12\x12\n\x04year\x18\x83\x01 \x01(\x05HD\x88\x01\x01\x12\x31\n#sk_ad_network_fine_conversion_value\x18\x89\x01 \x01(\x03HE\x88\x01\x01\x12?\n1sk_ad_network_redistributed_fine_conversion_value\x18\xbe\x01 \x01(\x03HF\x88\x01\x01\x12m\n\x17sk_ad_network_user_type\x18\x8d\x01 \x01(\x0e\x32K.google.ads.googleads.v17.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType\x12w\n\x1bsk_ad_network_ad_event_type\x18\x8e\x01 \x01(\x0e\x32Q.google.ads.googleads.v17.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType\x12]\n\x18sk_ad_network_source_app\x18\x8f\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.common.SkAdNetworkSourceAppHG\x88\x01\x01\x12\x88\x01\n sk_ad_network_attribution_credit\x18\x90\x01 \x01(\x0e\x32].google.ads.googleads.v17.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit\x12\x95\x01\n%sk_ad_network_coarse_conversion_value\x18\x97\x01 \x01(\x0e\x32\x65.google.ads.googleads.v17.enums.SkAdNetworkCoarseConversionValueEnum.SkAdNetworkCoarseConversionValue\x12)\n\x1bsk_ad_network_source_domain\x18\x98\x01 \x01(\tHH\x88\x01\x01\x12s\n\x19sk_ad_network_source_type\x18\x99\x01 \x01(\x0e\x32O.google.ads.googleads.v17.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType\x12\x33\n%sk_ad_network_postback_sequence_index\x18\x9a\x01 \x01(\x03HI\x88\x01\x01\x12_\n\x18\x61sset_interaction_target\x18\x8b\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.common.AssetInteractionTargetHJ\x88\x01\x01\x12\xa8\x01\n\x1enew_versus_returning_customers\x18\xa0\x01 \x01(\x0e\x32\x7f.google.ads.googleads.v17.enums.ConvertingUserPriorEngagementTypeAndLtvBucketEnum.ConvertingUserPriorEngagementTypeAndLtvBucketB\x16\n\x14_activity_account_idB\x10\n\x0e_activity_cityB\x13\n\x11_activity_countryB\x12\n\x10_activity_ratingB\x11\n\x0f_activity_stateB\x17\n\x15_external_activity_idB\x0b\n\t_ad_groupB\x0e\n\x0c_asset_groupB\x19\n\x17_auction_insight_domainB\x0b\n\t_campaignB\x14\n\x12_conversion_actionB\x19\n\x17_conversion_action_nameB\x18\n\x16_conversion_adjustmentB\x07\n\x05_dateB\x15\n\x13_geo_target_airportB\x14\n\x12_geo_target_cantonB\x12\n\x10_geo_target_cityB\x15\n\x13_geo_target_countryB\x14\n\x12_geo_target_countyB\x16\n\x14_geo_target_districtB\x13\n\x11_geo_target_metroB$\n\"_geo_target_most_specific_locationB\x19\n\x17_geo_target_postal_codeB\x16\n\x14_geo_target_provinceB\x14\n\x12_geo_target_regionB\x13\n\x11_geo_target_stateB\x1c\n\x1a_hotel_booking_window_daysB\x12\n\x10_hotel_center_idB\x16\n\x14_hotel_check_in_dateB\r\n\x0b_hotel_cityB\x0e\n\x0c_hotel_classB\x10\n\x0e_hotel_countryB\x17\n\x15_hotel_length_of_stayB\x15\n\x13_hotel_rate_rule_idB\x0e\n\x0c_hotel_stateB\x07\n\x05_hourB \n\x1e_interaction_on_this_extensionB\x08\n\x06_monthB\x13\n\x11_partner_hotel_idB\x18\n\x16_product_aggregator_idB\x1a\n\x18_product_category_level1B\x1a\n\x18_product_category_level2B\x1a\n\x18_product_category_level3B\x1a\n\x18_product_category_level4B\x1a\n\x18_product_category_level5B\x10\n\x0e_product_brandB\x12\n\x10_product_countryB\x1c\n\x1a_product_custom_attribute0B\x1c\n\x1a_product_custom_attribute1B\x1c\n\x1a_product_custom_attribute2B\x1c\n\x1a_product_custom_attribute3B\x1c\n\x1a_product_custom_attribute4B\x15\n\x13_product_feed_labelB\x12\n\x10_product_item_idB\x13\n\x11_product_languageB\x16\n\x14_product_merchant_idB\x13\n\x11_product_store_idB\x10\n\x0e_product_titleB\x12\n\x10_product_type_l1B\x12\n\x10_product_type_l2B\x12\n\x10_product_type_l3B\x12\n\x10_product_type_l4B\x12\n\x10_product_type_l5B\n\n\x08_quarterB\x15\n\x13_search_subcategoryB\x0e\n\x0c_search_termB\n\n\x08_webpageB\x07\n\x05_weekB\x07\n\x05_yearB&\n$_sk_ad_network_fine_conversion_valueB4\n2_sk_ad_network_redistributed_fine_conversion_valueB\x1b\n\x19_sk_ad_network_source_appB\x1e\n\x1c_sk_ad_network_source_domainB(\n&_sk_ad_network_postback_sequence_indexB\x1b\n\x19_asset_interaction_target\"}\n\x07Keyword\x12\x1f\n\x12\x61\x64_group_criterion\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x04info\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v17.common.KeywordInfoB\x15\n\x13_ad_group_criterion\"\xba\x01\n\x1f\x42udgetCampaignAssociationStatus\x12\x15\n\x08\x63\x61mpaign\x18\x01 \x01(\tH\x00\x88\x01\x01\x12s\n\x06status\x18\x02 \x01(\x0e\x32\x63.google.ads.googleads.v17.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatusB\x0b\n\t_campaign\"J\n\x16\x41ssetInteractionTarget\x12\r\n\x05\x61sset\x18\x01 \x01(\t\x12!\n\x19interaction_on_this_asset\x18\x02 \x01(\x08\"`\n\x14SkAdNetworkSourceApp\x12(\n\x1bsk_ad_network_source_app_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x1e\n\x1c_sk_ad_network_source_app_idB\xed\x01\n#com.google.ads.googleads.v17.commonB\rSegmentsProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/common;common\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Common\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Common\xea\x02#Google::Ads::GoogleAds::V17::Commonb\x06proto3"
+descriptor_data = "\n.google/ads/googleads/v17/common/segments.proto\x12\x1fgoogle.ads.googleads.v17.common\x1a.google/ads/googleads/v17/common/criteria.proto\x1a\x38google/ads/googleads/v17/enums/ad_destination_type.proto\x1a\x33google/ads/googleads/v17/enums/ad_format_type.proto\x1a\x34google/ads/googleads/v17/enums/ad_network_type.proto\x1aGgoogle/ads/googleads/v17/enums/budget_campaign_association_status.proto\x1a/google/ads/googleads/v17/enums/click_type.proto\x1a?google/ads/googleads/v17/enums/conversion_action_category.proto\x1a\x46google/ads/googleads/v17/enums/conversion_attribution_event_type.proto\x1a:google/ads/googleads/v17/enums/conversion_lag_bucket.proto\x1aHgoogle/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto\x1aLgoogle/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto\x1aYgoogle/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto\x1a\x30google/ads/googleads/v17/enums/day_of_week.proto\x1a+google/ads/googleads/v17/enums/device.proto\x1a?google/ads/googleads/v17/enums/external_conversion_source.proto\x1a>google/ads/googleads/v17/enums/hotel_date_selection_type.proto\x1a\x37google/ads/googleads/v17/enums/hotel_price_bucket.proto\x1a\x34google/ads/googleads/v17/enums/hotel_rate_type.proto\x1a\x32google/ads/googleads/v17/enums/month_of_year.proto\x1a\x35google/ads/googleads/v17/enums/placeholder_type.proto\x1a\x34google/ads/googleads/v17/enums/product_channel.proto\x1a@google/ads/googleads/v17/enums/product_channel_exclusivity.proto\x1a\x36google/ads/googleads/v17/enums/product_condition.proto\x1a\x38google/ads/googleads/v17/enums/recommendation_type.proto\x1a\x44google/ads/googleads/v17/enums/search_engine_results_page_type.proto\x1a;google/ads/googleads/v17/enums/search_term_match_type.proto\x1a@google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto\x1a\x45google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto\x1aJgoogle/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto\x1a>google/ads/googleads/v17/enums/sk_ad_network_source_type.proto\x1a<google/ads/googleads/v17/enums/sk_ad_network_user_type.proto\x1a)google/ads/googleads/v17/enums/slot.proto\x1a\x19google/api/resource.proto\"\xe7>\n\x08Segments\x12!\n\x13\x61\x63tivity_account_id\x18\x94\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1b\n\ractivity_city\x18\xb9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x10\x61\x63tivity_country\x18\xba\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0f\x61\x63tivity_rating\x18\x95\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1c\n\x0e\x61\x63tivity_state\x18\xbb\x01 \x01(\tH\x04\x88\x01\x01\x12\"\n\x14\x65xternal_activity_id\x18\x96\x01 \x01(\tH\x05\x88\x01\x01\x12\x65\n\x13\x61\x64_destination_type\x18\x88\x01 \x01(\x0e\x32G.google.ads.googleads.v17.enums.AdDestinationTypeEnum.AdDestinationType\x12V\n\x0e\x61\x64_format_type\x18\xbf\x01 \x01(\x0e\x32=.google.ads.googleads.v17.enums.AdFormatTypeEnum.AdFormatType\x12X\n\x0f\x61\x64_network_type\x18\x03 \x01(\x0e\x32?.google.ads.googleads.v17.enums.AdNetworkTypeEnum.AdNetworkType\x12\x16\n\x08\x61\x64_group\x18\x9e\x01 \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0b\x61sset_group\x18\x9f\x01 \x01(\tH\x07\x88\x01\x01\x12$\n\x16\x61uction_insight_domain\x18\x91\x01 \x01(\tH\x08\x88\x01\x01\x12m\n\"budget_campaign_association_status\x18\x86\x01 \x01(\x0b\x32@.google.ads.googleads.v17.common.BudgetCampaignAssociationStatus\x12\x16\n\x08\x63\x61mpaign\x18\x9d\x01 \x01(\tH\t\x88\x01\x01\x12K\n\nclick_type\x18\x1a \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.ClickTypeEnum.ClickType\x12N\n\x11\x63onversion_action\x18q \x01(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionActionH\n\x88\x01\x01\x12y\n\x1a\x63onversion_action_category\x18\x35 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ConversionActionCategoryEnum.ConversionActionCategory\x12#\n\x16\x63onversion_action_name\x18r \x01(\tH\x0b\x88\x01\x01\x12\"\n\x15\x63onversion_adjustment\x18s \x01(\x08H\x0c\x88\x01\x01\x12\x8c\x01\n!conversion_attribution_event_type\x18\x02 \x01(\x0e\x32\x61.google.ads.googleads.v17.enums.ConversionAttributionEventTypeEnum.ConversionAttributionEventType\x12j\n\x15\x63onversion_lag_bucket\x18\x32 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ConversionLagBucketEnum.ConversionLagBucket\x12\x90\x01\n#conversion_or_adjustment_lag_bucket\x18\x33 \x01(\x0e\x32\x63.google.ads.googleads.v17.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket\x12\x11\n\x04\x64\x61te\x18O \x01(\tH\r\x88\x01\x01\x12L\n\x0b\x64\x61y_of_week\x18\x05 \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek\x12\x41\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x31.google.ads.googleads.v17.enums.DeviceEnum.Device\x12y\n\x1a\x65xternal_conversion_source\x18\x37 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ExternalConversionSourceEnum.ExternalConversionSource\x12\x1f\n\x12geo_target_airport\x18t \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\x11geo_target_canton\x18u \x01(\tH\x0f\x88\x01\x01\x12\x1c\n\x0fgeo_target_city\x18v \x01(\tH\x10\x88\x01\x01\x12\x1f\n\x12geo_target_country\x18w \x01(\tH\x11\x88\x01\x01\x12\x1e\n\x11geo_target_county\x18x \x01(\tH\x12\x88\x01\x01\x12 \n\x13geo_target_district\x18y \x01(\tH\x13\x88\x01\x01\x12\x1d\n\x10geo_target_metro\x18z \x01(\tH\x14\x88\x01\x01\x12.\n!geo_target_most_specific_location\x18{ \x01(\tH\x15\x88\x01\x01\x12#\n\x16geo_target_postal_code\x18| \x01(\tH\x16\x88\x01\x01\x12 \n\x13geo_target_province\x18} \x01(\tH\x17\x88\x01\x01\x12\x1e\n\x11geo_target_region\x18~ \x01(\tH\x18\x88\x01\x01\x12\x1d\n\x10geo_target_state\x18\x7f \x01(\tH\x19\x88\x01\x01\x12\'\n\x19hotel_booking_window_days\x18\x87\x01 \x01(\x03H\x1a\x88\x01\x01\x12\x1c\n\x0fhotel_center_id\x18P \x01(\x03H\x1b\x88\x01\x01\x12 \n\x13hotel_check_in_date\x18Q \x01(\tH\x1c\x88\x01\x01\x12[\n\x1ahotel_check_in_day_of_week\x18\t \x01(\x0e\x32\x37.google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek\x12\x17\n\nhotel_city\x18R \x01(\tH\x1d\x88\x01\x01\x12\x18\n\x0bhotel_class\x18S \x01(\x05H\x1e\x88\x01\x01\x12\x1a\n\rhotel_country\x18T \x01(\tH\x1f\x88\x01\x01\x12t\n\x19hotel_date_selection_type\x18\r \x01(\x0e\x32Q.google.ads.googleads.v17.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType\x12!\n\x14hotel_length_of_stay\x18U \x01(\x05H \x88\x01\x01\x12\x1f\n\x12hotel_rate_rule_id\x18V \x01(\tH!\x88\x01\x01\x12X\n\x0fhotel_rate_type\x18J \x01(\x0e\x32?.google.ads.googleads.v17.enums.HotelRateTypeEnum.HotelRateType\x12\x61\n\x12hotel_price_bucket\x18N \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.HotelPriceBucketEnum.HotelPriceBucket\x12\x18\n\x0bhotel_state\x18W \x01(\tH\"\x88\x01\x01\x12\x11\n\x04hour\x18X \x01(\x05H#\x88\x01\x01\x12*\n\x1dinteraction_on_this_extension\x18Y \x01(\x08H$\x88\x01\x01\x12\x39\n\x07keyword\x18= \x01(\x0b\x32(.google.ads.googleads.v17.common.Keyword\x12\x12\n\x05month\x18Z \x01(\tH%\x88\x01\x01\x12R\n\rmonth_of_year\x18\x12 \x01(\x0e\x32;.google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear\x12\x1d\n\x10partner_hotel_id\x18[ \x01(\tH&\x88\x01\x01\x12]\n\x10placeholder_type\x18\x14 \x01(\x0e\x32\x43.google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType\x12#\n\x15product_aggregator_id\x18\x84\x01 \x01(\x03H\'\x88\x01\x01\x12%\n\x17product_category_level1\x18\xa1\x01 \x01(\tH(\x88\x01\x01\x12%\n\x17product_category_level2\x18\xa2\x01 \x01(\tH)\x88\x01\x01\x12%\n\x17product_category_level3\x18\xa3\x01 \x01(\tH*\x88\x01\x01\x12%\n\x17product_category_level4\x18\xa4\x01 \x01(\tH+\x88\x01\x01\x12%\n\x17product_category_level5\x18\xa5\x01 \x01(\tH,\x88\x01\x01\x12\x1a\n\rproduct_brand\x18\x61 \x01(\tH-\x88\x01\x01\x12Z\n\x0fproduct_channel\x18\x1e \x01(\x0e\x32\x41.google.ads.googleads.v17.enums.ProductChannelEnum.ProductChannel\x12|\n\x1bproduct_channel_exclusivity\x18\x1f \x01(\x0e\x32W.google.ads.googleads.v17.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity\x12`\n\x11product_condition\x18  \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.ProductConditionEnum.ProductCondition\x12\x1c\n\x0fproduct_country\x18\x62 \x01(\tH.\x88\x01\x01\x12&\n\x19product_custom_attribute0\x18\x63 \x01(\tH/\x88\x01\x01\x12&\n\x19product_custom_attribute1\x18\x64 \x01(\tH0\x88\x01\x01\x12&\n\x19product_custom_attribute2\x18\x65 \x01(\tH1\x88\x01\x01\x12&\n\x19product_custom_attribute3\x18\x66 \x01(\tH2\x88\x01\x01\x12&\n\x19product_custom_attribute4\x18g \x01(\tH3\x88\x01\x01\x12 \n\x12product_feed_label\x18\x93\x01 \x01(\tH4\x88\x01\x01\x12\x1c\n\x0fproduct_item_id\x18h \x01(\tH5\x88\x01\x01\x12\x1d\n\x10product_language\x18i \x01(\tH6\x88\x01\x01\x12!\n\x13product_merchant_id\x18\x85\x01 \x01(\x03H7\x88\x01\x01\x12\x1d\n\x10product_store_id\x18j \x01(\tH8\x88\x01\x01\x12\x1a\n\rproduct_title\x18k \x01(\tH9\x88\x01\x01\x12\x1c\n\x0fproduct_type_l1\x18l \x01(\tH:\x88\x01\x01\x12\x1c\n\x0fproduct_type_l2\x18m \x01(\tH;\x88\x01\x01\x12\x1c\n\x0fproduct_type_l3\x18n \x01(\tH<\x88\x01\x01\x12\x1c\n\x0fproduct_type_l4\x18o \x01(\tH=\x88\x01\x01\x12\x1c\n\x0fproduct_type_l5\x18p \x01(\tH>\x88\x01\x01\x12\x15\n\x07quarter\x18\x80\x01 \x01(\tH?\x88\x01\x01\x12g\n\x13recommendation_type\x18\x8c\x01 \x01(\x0e\x32I.google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType\x12\x84\x01\n\x1fsearch_engine_results_page_type\x18\x46 \x01(\x0e\x32[.google.ads.googleads.v17.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType\x12 \n\x12search_subcategory\x18\x9b\x01 \x01(\tH@\x88\x01\x01\x12\x19\n\x0bsearch_term\x18\x9c\x01 \x01(\tHA\x88\x01\x01\x12k\n\x16search_term_match_type\x18\x16 \x01(\x0e\x32K.google.ads.googleads.v17.enums.SearchTermMatchTypeEnum.SearchTermMatchType\x12;\n\x04slot\x18\x17 \x01(\x0e\x32-.google.ads.googleads.v17.enums.SlotEnum.Slot\x12\x9d\x01\n\'conversion_value_rule_primary_dimension\x18\x8a\x01 \x01(\x0e\x32k.google.ads.googleads.v17.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension\x12\x15\n\x07webpage\x18\x81\x01 \x01(\tHB\x88\x01\x01\x12\x12\n\x04week\x18\x82\x01 \x01(\tHC\x88\x01\x01\x12\x12\n\x04year\x18\x83\x01 \x01(\x05HD\x88\x01\x01\x12\x31\n#sk_ad_network_fine_conversion_value\x18\x89\x01 \x01(\x03HE\x88\x01\x01\x12?\n1sk_ad_network_redistributed_fine_conversion_value\x18\xbe\x01 \x01(\x03HF\x88\x01\x01\x12m\n\x17sk_ad_network_user_type\x18\x8d\x01 \x01(\x0e\x32K.google.ads.googleads.v17.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType\x12w\n\x1bsk_ad_network_ad_event_type\x18\x8e\x01 \x01(\x0e\x32Q.google.ads.googleads.v17.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType\x12]\n\x18sk_ad_network_source_app\x18\x8f\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.common.SkAdNetworkSourceAppHG\x88\x01\x01\x12\x88\x01\n sk_ad_network_attribution_credit\x18\x90\x01 \x01(\x0e\x32].google.ads.googleads.v17.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit\x12\x95\x01\n%sk_ad_network_coarse_conversion_value\x18\x97\x01 \x01(\x0e\x32\x65.google.ads.googleads.v17.enums.SkAdNetworkCoarseConversionValueEnum.SkAdNetworkCoarseConversionValue\x12)\n\x1bsk_ad_network_source_domain\x18\x98\x01 \x01(\tHH\x88\x01\x01\x12s\n\x19sk_ad_network_source_type\x18\x99\x01 \x01(\x0e\x32O.google.ads.googleads.v17.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType\x12\x33\n%sk_ad_network_postback_sequence_index\x18\x9a\x01 \x01(\x03HI\x88\x01\x01\x12#\n\x15sk_ad_network_version\x18\xc0\x01 \x01(\tHJ\x88\x01\x01\x12_\n\x18\x61sset_interaction_target\x18\x8b\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.common.AssetInteractionTargetHK\x88\x01\x01\x12\xa8\x01\n\x1enew_versus_returning_customers\x18\xa0\x01 \x01(\x0e\x32\x7f.google.ads.googleads.v17.enums.ConvertingUserPriorEngagementTypeAndLtvBucketEnum.ConvertingUserPriorEngagementTypeAndLtvBucketB\x16\n\x14_activity_account_idB\x10\n\x0e_activity_cityB\x13\n\x11_activity_countryB\x12\n\x10_activity_ratingB\x11\n\x0f_activity_stateB\x17\n\x15_external_activity_idB\x0b\n\t_ad_groupB\x0e\n\x0c_asset_groupB\x19\n\x17_auction_insight_domainB\x0b\n\t_campaignB\x14\n\x12_conversion_actionB\x19\n\x17_conversion_action_nameB\x18\n\x16_conversion_adjustmentB\x07\n\x05_dateB\x15\n\x13_geo_target_airportB\x14\n\x12_geo_target_cantonB\x12\n\x10_geo_target_cityB\x15\n\x13_geo_target_countryB\x14\n\x12_geo_target_countyB\x16\n\x14_geo_target_districtB\x13\n\x11_geo_target_metroB$\n\"_geo_target_most_specific_locationB\x19\n\x17_geo_target_postal_codeB\x16\n\x14_geo_target_provinceB\x14\n\x12_geo_target_regionB\x13\n\x11_geo_target_stateB\x1c\n\x1a_hotel_booking_window_daysB\x12\n\x10_hotel_center_idB\x16\n\x14_hotel_check_in_dateB\r\n\x0b_hotel_cityB\x0e\n\x0c_hotel_classB\x10\n\x0e_hotel_countryB\x17\n\x15_hotel_length_of_stayB\x15\n\x13_hotel_rate_rule_idB\x0e\n\x0c_hotel_stateB\x07\n\x05_hourB \n\x1e_interaction_on_this_extensionB\x08\n\x06_monthB\x13\n\x11_partner_hotel_idB\x18\n\x16_product_aggregator_idB\x1a\n\x18_product_category_level1B\x1a\n\x18_product_category_level2B\x1a\n\x18_product_category_level3B\x1a\n\x18_product_category_level4B\x1a\n\x18_product_category_level5B\x10\n\x0e_product_brandB\x12\n\x10_product_countryB\x1c\n\x1a_product_custom_attribute0B\x1c\n\x1a_product_custom_attribute1B\x1c\n\x1a_product_custom_attribute2B\x1c\n\x1a_product_custom_attribute3B\x1c\n\x1a_product_custom_attribute4B\x15\n\x13_product_feed_labelB\x12\n\x10_product_item_idB\x13\n\x11_product_languageB\x16\n\x14_product_merchant_idB\x13\n\x11_product_store_idB\x10\n\x0e_product_titleB\x12\n\x10_product_type_l1B\x12\n\x10_product_type_l2B\x12\n\x10_product_type_l3B\x12\n\x10_product_type_l4B\x12\n\x10_product_type_l5B\n\n\x08_quarterB\x15\n\x13_search_subcategoryB\x0e\n\x0c_search_termB\n\n\x08_webpageB\x07\n\x05_weekB\x07\n\x05_yearB&\n$_sk_ad_network_fine_conversion_valueB4\n2_sk_ad_network_redistributed_fine_conversion_valueB\x1b\n\x19_sk_ad_network_source_appB\x1e\n\x1c_sk_ad_network_source_domainB(\n&_sk_ad_network_postback_sequence_indexB\x18\n\x16_sk_ad_network_versionB\x1b\n\x19_asset_interaction_target\"}\n\x07Keyword\x12\x1f\n\x12\x61\x64_group_criterion\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x04info\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v17.common.KeywordInfoB\x15\n\x13_ad_group_criterion\"\xba\x01\n\x1f\x42udgetCampaignAssociationStatus\x12\x15\n\x08\x63\x61mpaign\x18\x01 \x01(\tH\x00\x88\x01\x01\x12s\n\x06status\x18\x02 \x01(\x0e\x32\x63.google.ads.googleads.v17.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatusB\x0b\n\t_campaign\"J\n\x16\x41ssetInteractionTarget\x12\r\n\x05\x61sset\x18\x01 \x01(\t\x12!\n\x19interaction_on_this_asset\x18\x02 \x01(\x08\"`\n\x14SkAdNetworkSourceApp\x12(\n\x1bsk_ad_network_source_app_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x1e\n\x1c_sk_ad_network_source_app_idB\xed\x01\n#com.google.ads.googleads.v17.commonB\rSegmentsProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/common;common\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Common\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Common\xea\x02#Google::Ads::GoogleAds::V17::Commonb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/enums/ad_format_type_pb.rb b/lib/google/ads/google_ads/v17/enums/ad_format_type_pb.rb
new file mode 100644
index 00000000..a1d70796
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/enums/ad_format_type_pb.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/enums/ad_format_type.proto
+
+require 'google/protobuf'
+
+
+descriptor_data = "\n3google/ads/googleads/v17/enums/ad_format_type.proto\x12\x1egoogle.ads.googleads.v17.enums\"\xdd\x01\n\x10\x41\x64\x46ormatTypeEnum\"\xc8\x01\n\x0c\x41\x64\x46ormatType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05OTHER\x10\x02\x12\x0f\n\x0bUNSEGMENTED\x10\x03\x12\x16\n\x12INSTREAM_SKIPPABLE\x10\x04\x12\x1a\n\x16INSTREAM_NON_SKIPPABLE\x10\x05\x12\n\n\x06INFEED\x10\x06\x12\n\n\x06\x42UMPER\x10\x07\x12\r\n\tOUTSTREAM\x10\x08\x12\x0c\n\x08MASTHEAD\x10\t\x12\t\n\x05\x41UDIO\x10\n\x12\n\n\x06SHORTS\x10\x0b\x42\xeb\x01\n\"com.google.ads.googleads.v17.enumsB\x11\x41\x64\x46ormatTypeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Enums
+          AdFormatTypeEnum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.AdFormatTypeEnum").msgclass
+          AdFormatTypeEnum::AdFormatType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.AdFormatTypeEnum.AdFormatType").enummodule
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/enums/bidding_strategy_type_pb.rb b/lib/google/ads/google_ads/v17/enums/bidding_strategy_type_pb.rb
index 488a4aed..dfa0338d 100644
--- a/lib/google/ads/google_ads/v17/enums/bidding_strategy_type_pb.rb
+++ b/lib/google/ads/google_ads/v17/enums/bidding_strategy_type_pb.rb
@@ -5,7 +5,7 @@
 require 'google/protobuf'
 
 
-descriptor_data = "\n:google/ads/googleads/v17/enums/bidding_strategy_type.proto\x12\x1egoogle.ads.googleads.v17.enums\"\x99\x03\n\x17\x42iddingStrategyTypeEnum\"\xfd\x02\n\x13\x42iddingStrategyType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nCOMMISSION\x10\x10\x12\x10\n\x0c\x45NHANCED_CPC\x10\x02\x12\x0b\n\x07INVALID\x10\x11\x12\x0e\n\nMANUAL_CPA\x10\x12\x12\x0e\n\nMANUAL_CPC\x10\x03\x12\x0e\n\nMANUAL_CPM\x10\x04\x12\x0e\n\nMANUAL_CPV\x10\r\x12\x18\n\x14MAXIMIZE_CONVERSIONS\x10\n\x12\x1d\n\x19MAXIMIZE_CONVERSION_VALUE\x10\x0b\x12\x15\n\x11PAGE_ONE_PROMOTED\x10\x05\x12\x0f\n\x0bPERCENT_CPC\x10\x0c\x12\x0e\n\nTARGET_CPA\x10\x06\x12\x0e\n\nTARGET_CPM\x10\x0e\x12\x1b\n\x17TARGET_IMPRESSION_SHARE\x10\x0f\x12\x18\n\x14TARGET_OUTRANK_SHARE\x10\x07\x12\x0f\n\x0bTARGET_ROAS\x10\x08\x12\x10\n\x0cTARGET_SPEND\x10\tB\xf2\x01\n\"com.google.ads.googleads.v17.enumsB\x18\x42iddingStrategyTypeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+descriptor_data = "\n:google/ads/googleads/v17/enums/bidding_strategy_type.proto\x12\x1egoogle.ads.googleads.v17.enums\"\xb8\x03\n\x17\x42iddingStrategyTypeEnum\"\x9c\x03\n\x13\x42iddingStrategyType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nCOMMISSION\x10\x10\x12\x10\n\x0c\x45NHANCED_CPC\x10\x02\x12\r\n\tFIXED_CPM\x10\x13\x12\x0b\n\x07INVALID\x10\x11\x12\x0e\n\nMANUAL_CPA\x10\x12\x12\x0e\n\nMANUAL_CPC\x10\x03\x12\x0e\n\nMANUAL_CPM\x10\x04\x12\x0e\n\nMANUAL_CPV\x10\r\x12\x18\n\x14MAXIMIZE_CONVERSIONS\x10\n\x12\x1d\n\x19MAXIMIZE_CONVERSION_VALUE\x10\x0b\x12\x15\n\x11PAGE_ONE_PROMOTED\x10\x05\x12\x0f\n\x0bPERCENT_CPC\x10\x0c\x12\x0e\n\nTARGET_CPA\x10\x06\x12\x0e\n\nTARGET_CPM\x10\x0e\x12\x0e\n\nTARGET_CPV\x10\x14\x12\x1b\n\x17TARGET_IMPRESSION_SHARE\x10\x0f\x12\x18\n\x14TARGET_OUTRANK_SHARE\x10\x07\x12\x0f\n\x0bTARGET_ROAS\x10\x08\x12\x10\n\x0cTARGET_SPEND\x10\tB\xf2\x01\n\"com.google.ads.googleads.v17.enumsB\x18\x42iddingStrategyTypeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/enums/change_status_resource_type_pb.rb b/lib/google/ads/google_ads/v17/enums/change_status_resource_type_pb.rb
index f5cba605..24034c53 100644
--- a/lib/google/ads/google_ads/v17/enums/change_status_resource_type_pb.rb
+++ b/lib/google/ads/google_ads/v17/enums/change_status_resource_type_pb.rb
@@ -5,7 +5,7 @@
 require 'google/protobuf'
 
 
-descriptor_data = "\n@google/ads/googleads/v17/enums/change_status_resource_type.proto\x12\x1egoogle.ads.googleads.v17.enums\"\x97\x03\n\x1c\x43hangeStatusResourceTypeEnum\"\xf6\x02\n\x18\x43hangeStatusResourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x41\x44_GROUP\x10\x03\x12\x0f\n\x0b\x41\x44_GROUP_AD\x10\x04\x12\x16\n\x12\x41\x44_GROUP_CRITERION\x10\x05\x12\x0c\n\x08\x43\x41MPAIGN\x10\x06\x12\x16\n\x12\x43\x41MPAIGN_CRITERION\x10\x07\x12\x08\n\x04\x46\x45\x45\x44\x10\t\x12\r\n\tFEED_ITEM\x10\n\x12\x11\n\rAD_GROUP_FEED\x10\x0b\x12\x11\n\rCAMPAIGN_FEED\x10\x0c\x12\x19\n\x15\x41\x44_GROUP_BID_MODIFIER\x10\r\x12\x0e\n\nSHARED_SET\x10\x0e\x12\x17\n\x13\x43\x41MPAIGN_SHARED_SET\x10\x0f\x12\t\n\x05\x41SSET\x10\x10\x12\x12\n\x0e\x43USTOMER_ASSET\x10\x11\x12\x12\n\x0e\x43\x41MPAIGN_ASSET\x10\x12\x12\x12\n\x0e\x41\x44_GROUP_ASSET\x10\x13\x12\x15\n\x11\x43OMBINED_AUDIENCE\x10\x14\x42\xf7\x01\n\"com.google.ads.googleads.v17.enumsB\x1d\x43hangeStatusResourceTypeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+descriptor_data = "\n@google/ads/googleads/v17/enums/change_status_resource_type.proto\x12\x1egoogle.ads.googleads.v17.enums\"\xa8\x03\n\x1c\x43hangeStatusResourceTypeEnum\"\x87\x03\n\x18\x43hangeStatusResourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x41\x44_GROUP\x10\x03\x12\x0f\n\x0b\x41\x44_GROUP_AD\x10\x04\x12\x16\n\x12\x41\x44_GROUP_CRITERION\x10\x05\x12\x0c\n\x08\x43\x41MPAIGN\x10\x06\x12\x16\n\x12\x43\x41MPAIGN_CRITERION\x10\x07\x12\x08\n\x04\x46\x45\x45\x44\x10\t\x12\r\n\tFEED_ITEM\x10\n\x12\x11\n\rAD_GROUP_FEED\x10\x0b\x12\x11\n\rCAMPAIGN_FEED\x10\x0c\x12\x19\n\x15\x41\x44_GROUP_BID_MODIFIER\x10\r\x12\x0e\n\nSHARED_SET\x10\x0e\x12\x17\n\x13\x43\x41MPAIGN_SHARED_SET\x10\x0f\x12\t\n\x05\x41SSET\x10\x10\x12\x12\n\x0e\x43USTOMER_ASSET\x10\x11\x12\x12\n\x0e\x43\x41MPAIGN_ASSET\x10\x12\x12\x12\n\x0e\x41\x44_GROUP_ASSET\x10\x13\x12\x15\n\x11\x43OMBINED_AUDIENCE\x10\x14\x12\x0f\n\x0b\x41SSET_GROUP\x10\x15\x42\xf7\x01\n\"com.google.ads.googleads.v17.enumsB\x1d\x43hangeStatusResourceTypeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/enums/fixed_cpm_goal_pb.rb b/lib/google/ads/google_ads/v17/enums/fixed_cpm_goal_pb.rb
new file mode 100644
index 00000000..b4ba5e35
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/enums/fixed_cpm_goal_pb.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/enums/fixed_cpm_goal.proto
+
+require 'google/protobuf'
+
+
+descriptor_data = "\n3google/ads/googleads/v17/enums/fixed_cpm_goal.proto\x12\x1egoogle.ads.googleads.v17.enums\"a\n\x10\x46ixedCpmGoalEnum\"M\n\x0c\x46ixedCpmGoal\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05REACH\x10\x02\x12\x14\n\x10TARGET_FREQUENCY\x10\x03\x42\xeb\x01\n\"com.google.ads.googleads.v17.enumsB\x11\x46ixedCpmGoalProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Enums
+          FixedCpmGoalEnum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.FixedCpmGoalEnum").msgclass
+          FixedCpmGoalEnum::FixedCpmGoal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.FixedCpmGoalEnum.FixedCpmGoal").enummodule
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb.rb b/lib/google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb.rb
new file mode 100644
index 00000000..0d79c048
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto
+
+require 'google/protobuf'
+
+
+descriptor_data = "\nIgoogle/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto\x12\x1egoogle.ads.googleads.v17.enums\"s\n#FixedCpmTargetFrequencyTimeUnitEnum\"L\n\x1f\x46ixedCpmTargetFrequencyTimeUnit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07MONTHLY\x10\x02\x42\xfe\x01\n\"com.google.ads.googleads.v17.enumsB$FixedCpmTargetFrequencyTimeUnitProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Enums
+          FixedCpmTargetFrequencyTimeUnitEnum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.FixedCpmTargetFrequencyTimeUnitEnum").msgclass
+          FixedCpmTargetFrequencyTimeUnitEnum::FixedCpmTargetFrequencyTimeUnit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.enums.FixedCpmTargetFrequencyTimeUnitEnum.FixedCpmTargetFrequencyTimeUnit").enummodule
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/enums/user_list_customer_type_category_pb.rb b/lib/google/ads/google_ads/v17/enums/user_list_customer_type_category_pb.rb
index a4583566..f83f0e96 100644
--- a/lib/google/ads/google_ads/v17/enums/user_list_customer_type_category_pb.rb
+++ b/lib/google/ads/google_ads/v17/enums/user_list_customer_type_category_pb.rb
@@ -5,7 +5,7 @@
 require 'google/protobuf'
 
 
-descriptor_data = "\nEgoogle/ads/googleads/v17/enums/user_list_customer_type_category.proto\x12\x1egoogle.ads.googleads.v17.enums\"\xa3\x02\n UserListCustomerTypeCategoryEnum\"\xfe\x01\n\x1cUserListCustomerTypeCategory\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rALL_CUSTOMERS\x10\x02\x12\x0e\n\nPURCHASERS\x10\x03\x12\x18\n\x14HIGH_VALUE_CUSTOMERS\x10\x04\x12\x18\n\x14\x44ISENGAGED_CUSTOMERS\x10\x05\x12\x13\n\x0fQUALIFIED_LEADS\x10\x06\x12\x13\n\x0f\x43ONVERTED_LEADS\x10\x07\x12\x14\n\x10PAID_SUBSCRIBERS\x10\x08\x12\x14\n\x10LOYALTY_SIGN_UPS\x10\t\x12\x13\n\x0f\x43\x41RT_ABANDONERS\x10\nB\xfb\x01\n\"com.google.ads.googleads.v17.enumsB!UserListCustomerTypeCategoryProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
+descriptor_data = "\nEgoogle/ads/googleads/v17/enums/user_list_customer_type_category.proto\x12\x1egoogle.ads.googleads.v17.enums\"\xe7\x03\n UserListCustomerTypeCategoryEnum\"\xc2\x03\n\x1cUserListCustomerTypeCategory\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rALL_CUSTOMERS\x10\x02\x12\x0e\n\nPURCHASERS\x10\x03\x12\x18\n\x14HIGH_VALUE_CUSTOMERS\x10\x04\x12\x18\n\x14\x44ISENGAGED_CUSTOMERS\x10\x05\x12\x13\n\x0fQUALIFIED_LEADS\x10\x06\x12\x13\n\x0f\x43ONVERTED_LEADS\x10\x07\x12\x14\n\x10PAID_SUBSCRIBERS\x10\x08\x12\x14\n\x10LOYALTY_SIGN_UPS\x10\t\x12\x13\n\x0f\x43\x41RT_ABANDONERS\x10\n\x12\x1a\n\x16LOYALTY_TIER_1_MEMBERS\x10\x0b\x12\x1a\n\x16LOYALTY_TIER_2_MEMBERS\x10\x0c\x12\x1a\n\x16LOYALTY_TIER_3_MEMBERS\x10\r\x12\x1a\n\x16LOYALTY_TIER_4_MEMBERS\x10\x0e\x12\x1a\n\x16LOYALTY_TIER_5_MEMBERS\x10\x0f\x12\x1a\n\x16LOYALTY_TIER_6_MEMBERS\x10\x10\x12\x1a\n\x16LOYALTY_TIER_7_MEMBERS\x10\x11\x42\xfb\x01\n\"com.google.ads.googleads.v17.enumsB!UserListCustomerTypeCategoryProtoP\x01ZCgoogle.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V17.Enums\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V17\\Enums\xea\x02\"Google::Ads::GoogleAds::V17::Enumsb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb.rb b/lib/google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb.rb
new file mode 100644
index 00000000..ef3166d8
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto
+
+require 'google/protobuf'
+
+
+descriptor_data = "\nOgoogle/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto\x12\x1fgoogle.ads.googleads.v17.errors\"\x86\x02\n)AutomaticallyCreatedAssetRemovalErrorEnum\"\xd8\x01\n%AutomaticallyCreatedAssetRemovalError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11\x41\x44_DOES_NOT_EXIST\x10\x02\x12\x13\n\x0fINVALID_AD_TYPE\x10\x03\x12\x18\n\x14\x41SSET_DOES_NOT_EXIST\x10\x04\x12#\n\x1f\x41SSET_FIELD_TYPE_DOES_NOT_MATCH\x10\x05\x12&\n\"NOT_AN_AUTOMATICALLY_CREATED_ASSET\x10\x06\x42\x8a\x02\n#com.google.ads.googleads.v17.errorsB*AutomaticallyCreatedAssetRemovalErrorProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Errors\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Errors\xea\x02#Google::Ads::GoogleAds::V17::Errorsb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Errors
+          AutomaticallyCreatedAssetRemovalErrorEnum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.errors.AutomaticallyCreatedAssetRemovalErrorEnum").msgclass
+          AutomaticallyCreatedAssetRemovalErrorEnum::AutomaticallyCreatedAssetRemovalError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.errors.AutomaticallyCreatedAssetRemovalErrorEnum.AutomaticallyCreatedAssetRemovalError").enummodule
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/errors/errors_pb.rb b/lib/google/ads/google_ads/v17/errors/errors_pb.rb
index 4705ce63..f5e96f7e 100644
--- a/lib/google/ads/google_ads/v17/errors/errors_pb.rb
+++ b/lib/google/ads/google_ads/v17/errors/errors_pb.rb
@@ -35,6 +35,7 @@
 require 'google/ads/google_ads/v17/errors/audience_insights_error_pb'
 require 'google/ads/google_ads/v17/errors/authentication_error_pb'
 require 'google/ads/google_ads/v17/errors/authorization_error_pb'
+require 'google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb'
 require 'google/ads/google_ads/v17/errors/batch_job_error_pb'
 require 'google/ads/google_ads/v17/errors/bidding_error_pb'
 require 'google/ads/google_ads/v17/errors/bidding_strategy_error_pb'
@@ -146,6 +147,7 @@
 require 'google/ads/google_ads/v17/errors/resource_count_limit_exceeded_error_pb'
 require 'google/ads/google_ads/v17/errors/search_term_insight_error_pb'
 require 'google/ads/google_ads/v17/errors/setting_error_pb'
+require 'google/ads/google_ads/v17/errors/shareable_preview_error_pb'
 require 'google/ads/google_ads/v17/errors/shared_criterion_error_pb'
 require 'google/ads/google_ads/v17/errors/shared_set_error_pb'
 require 'google/ads/google_ads/v17/errors/shopping_product_error_pb'
@@ -164,7 +166,7 @@
 require 'google/protobuf/duration_pb'
 
 
-descriptor_data = "\n,google/ads/googleads/v17/errors/errors.proto\x12\x1fgoogle.ads.googleads.v17.errors\x1a,google/ads/googleads/v17/common/policy.proto\x1a+google/ads/googleads/v17/common/value.proto\x1a\x38google/ads/googleads/v17/enums/resource_limit_type.proto\x1a=google/ads/googleads/v17/errors/access_invitation_error.proto\x1a\x43google/ads/googleads/v17/errors/account_budget_proposal_error.proto\x1a\x38google/ads/googleads/v17/errors/account_link_error.proto\x1a\x39google/ads/googleads/v17/errors/ad_customizer_error.proto\x1a.google/ads/googleads/v17/errors/ad_error.proto\x1a\x37google/ads/googleads/v17/errors/ad_group_ad_error.proto\x1a\x41google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto\x1aIgoogle/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto\x1a>google/ads/googleads/v17/errors/ad_group_criterion_error.proto\x1a?google/ads/googleads/v17/errors/ad_group_customizer_error.proto\x1a\x34google/ads/googleads/v17/errors/ad_group_error.proto\x1a\x39google/ads/googleads/v17/errors/ad_group_feed_error.proto\x1a\x38google/ads/googleads/v17/errors/ad_parameter_error.proto\x1a\x36google/ads/googleads/v17/errors/ad_sharing_error.proto\x1a/google/ads/googleads/v17/errors/adx_error.proto\x1a\x31google/ads/googleads/v17/errors/asset_error.proto\x1a=google/ads/googleads/v17/errors/asset_group_asset_error.proto\x1a\x37google/ads/googleads/v17/errors/asset_group_error.proto\x1aLgoogle/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto\x1a>google/ads/googleads/v17/errors/asset_group_signal_error.proto\x1a\x36google/ads/googleads/v17/errors/asset_link_error.proto\x1a;google/ads/googleads/v17/errors/asset_set_asset_error.proto\x1a\x35google/ads/googleads/v17/errors/asset_set_error.proto\x1a:google/ads/googleads/v17/errors/asset_set_link_error.proto\x1a\x34google/ads/googleads/v17/errors/audience_error.proto\x1a=google/ads/googleads/v17/errors/audience_insights_error.proto\x1a:google/ads/googleads/v17/errors/authentication_error.proto\x1a\x39google/ads/googleads/v17/errors/authorization_error.proto\x1a\x35google/ads/googleads/v17/errors/batch_job_error.proto\x1a\x33google/ads/googleads/v17/errors/bidding_error.proto\x1a<google/ads/googleads/v17/errors/bidding_strategy_error.proto\x1a\x39google/ads/googleads/v17/errors/billing_setup_error.proto\x1a;google/ads/googleads/v17/errors/campaign_budget_error.proto\x1a\x44google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto\x1a>google/ads/googleads/v17/errors/campaign_criterion_error.proto\x1a?google/ads/googleads/v17/errors/campaign_customizer_error.proto\x1a:google/ads/googleads/v17/errors/campaign_draft_error.proto\x1a\x34google/ads/googleads/v17/errors/campaign_error.proto\x1a?google/ads/googleads/v17/errors/campaign_experiment_error.proto\x1a\x39google/ads/googleads/v17/errors/campaign_feed_error.proto\x1a\x43google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto\x1a?google/ads/googleads/v17/errors/campaign_shared_set_error.proto\x1a\x38google/ads/googleads/v17/errors/change_event_error.proto\x1a\x39google/ads/googleads/v17/errors/change_status_error.proto\x1a;google/ads/googleads/v17/errors/collection_size_error.proto\x1a\x33google/ads/googleads/v17/errors/context_error.proto\x1a=google/ads/googleads/v17/errors/conversion_action_error.proto\x1aHgoogle/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto\x1a\x46google/ads/googleads/v17/errors/conversion_custom_variable_error.proto\x1aKgoogle/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto\x1a=google/ads/googleads/v17/errors/conversion_upload_error.proto\x1a\x41google/ads/googleads/v17/errors/conversion_value_rule_error.proto\x1a\x45google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto\x1a\x38google/ads/googleads/v17/errors/country_code_error.proto\x1a\x35google/ads/googleads/v17/errors/criterion_error.proto\x1a\x39google/ads/googleads/v17/errors/currency_code_error.proto\x1a\x34google/ads/googleads/v17/errors/currency_error.proto\x1a;google/ads/googleads/v17/errors/custom_audience_error.proto\x1a\x42google/ads/googleads/v17/errors/custom_conversion_goal_error.proto\x1a;google/ads/googleads/v17/errors/custom_interest_error.proto\x1a@google/ads/googleads/v17/errors/customer_client_link_error.proto\x1a?google/ads/googleads/v17/errors/customer_customizer_error.proto\x1a\x34google/ads/googleads/v17/errors/customer_error.proto\x1a\x39google/ads/googleads/v17/errors/customer_feed_error.proto\x1a\x43google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto\x1a\x41google/ads/googleads/v17/errors/customer_manager_link_error.proto\x1aZgoogle/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto\x1a@google/ads/googleads/v17/errors/customer_user_access_error.proto\x1a@google/ads/googleads/v17/errors/customizer_attribute_error.proto\x1a\x34google/ads/googleads/v17/errors/database_error.proto\x1a\x30google/ads/googleads/v17/errors/date_error.proto\x1a\x36google/ads/googleads/v17/errors/date_range_error.proto\x1a\x34google/ads/googleads/v17/errors/distinct_error.proto\x1a\x30google/ads/googleads/v17/errors/enum_error.proto\x1a:google/ads/googleads/v17/errors/experiment_arm_error.proto\x1a\x36google/ads/googleads/v17/errors/experiment_error.proto\x1a?google/ads/googleads/v17/errors/extension_feed_item_error.proto\x1a=google/ads/googleads/v17/errors/extension_setting_error.proto\x1a\x44google/ads/googleads/v17/errors/feed_attribute_reference_error.proto\x1a\x30google/ads/googleads/v17/errors/feed_error.proto\x1a\x35google/ads/googleads/v17/errors/feed_item_error.proto\x1a\x39google/ads/googleads/v17/errors/feed_item_set_error.proto\x1a>google/ads/googleads/v17/errors/feed_item_set_link_error.proto\x1a<google/ads/googleads/v17/errors/feed_item_target_error.proto\x1a@google/ads/googleads/v17/errors/feed_item_validation_error.proto\x1a\x38google/ads/googleads/v17/errors/feed_mapping_error.proto\x1a\x31google/ads/googleads/v17/errors/field_error.proto\x1a\x36google/ads/googleads/v17/errors/field_mask_error.proto\x1a\x34google/ads/googleads/v17/errors/function_error.proto\x1a<google/ads/googleads/v17/errors/function_parsing_error.proto\x1aJgoogle/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto\x1a\x32google/ads/googleads/v17/errors/header_error.proto\x1a.google/ads/googleads/v17/errors/id_error.proto\x1a\x41google/ads/googleads/v17/errors/identity_verification_error.proto\x1a\x31google/ads/googleads/v17/errors/image_error.proto\x1a\x34google/ads/googleads/v17/errors/internal_error.proto\x1a\x33google/ads/googleads/v17/errors/invoice_error.proto\x1a\x41google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto\x1aIgoogle/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto\x1a\x41google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto\x1aIgoogle/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto\x1a\x38google/ads/googleads/v17/errors/keyword_plan_error.proto\x1a=google/ads/googleads/v17/errors/keyword_plan_idea_error.proto\x1a\x31google/ads/googleads/v17/errors/label_error.proto\x1a\x39google/ads/googleads/v17/errors/language_code_error.proto\x1a:google/ads/googleads/v17/errors/list_operation_error.proto\x1a\x38google/ads/googleads/v17/errors/manager_link_error.proto\x1a\x38google/ads/googleads/v17/errors/media_bundle_error.proto\x1a\x36google/ads/googleads/v17/errors/media_file_error.proto\x1a\x38google/ads/googleads/v17/errors/media_upload_error.proto\x1a;google/ads/googleads/v17/errors/merchant_center_error.proto\x1a\x36google/ads/googleads/v17/errors/multiplier_error.proto\x1a\x32google/ads/googleads/v17/errors/mutate_error.proto\x1a\x41google/ads/googleads/v17/errors/new_resource_creation_error.proto\x1a;google/ads/googleads/v17/errors/not_allowlisted_error.proto\x1a\x35google/ads/googleads/v17/errors/not_empty_error.proto\x1a\x30google/ads/googleads/v17/errors/null_error.proto\x1a\x41google/ads/googleads/v17/errors/offline_user_data_job_error.proto\x1a\x43google/ads/googleads/v17/errors/operation_access_denied_error.proto\x1a\x34google/ads/googleads/v17/errors/operator_error.proto\x1a;google/ads/googleads/v17/errors/partial_failure_error.proto\x1a<google/ads/googleads/v17/errors/payments_account_error.proto\x1a:google/ads/googleads/v17/errors/policy_finding_error.proto\x1aGgoogle/ads/googleads/v17/errors/policy_validation_parameter_error.proto\x1a<google/ads/googleads/v17/errors/policy_violation_error.proto\x1a\x38google/ads/googleads/v17/errors/product_link_error.proto\x1a\x43google/ads/googleads/v17/errors/product_link_invitation_error.proto\x1a\x31google/ads/googleads/v17/errors/query_error.proto\x1a\x31google/ads/googleads/v17/errors/quota_error.proto\x1a\x31google/ads/googleads/v17/errors/range_error.proto\x1a\x36google/ads/googleads/v17/errors/reach_plan_error.proto\x1a:google/ads/googleads/v17/errors/recommendation_error.proto\x1aGgoogle/ads/googleads/v17/errors/recommendation_subscription_error.proto\x1a\x37google/ads/googleads/v17/errors/region_code_error.proto\x1a\x33google/ads/googleads/v17/errors/request_error.proto\x1a\x42google/ads/googleads/v17/errors/resource_access_denied_error.proto\x1aIgoogle/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto\x1a?google/ads/googleads/v17/errors/search_term_insight_error.proto\x1a\x33google/ads/googleads/v17/errors/setting_error.proto\x1a<google/ads/googleads/v17/errors/shared_criterion_error.proto\x1a\x36google/ads/googleads/v17/errors/shared_set_error.proto\x1a<google/ads/googleads/v17/errors/shopping_product_error.proto\x1a\x36google/ads/googleads/v17/errors/size_limit_error.proto\x1a:google/ads/googleads/v17/errors/smart_campaign_error.proto\x1a\x39google/ads/googleads/v17/errors/string_format_error.proto\x1a\x39google/ads/googleads/v17/errors/string_length_error.proto\x1aJgoogle/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto\x1a\x35google/ads/googleads/v17/errors/time_zone_error.proto\x1a\x35google/ads/googleads/v17/errors/url_field_error.proto\x1a\x35google/ads/googleads/v17/errors/user_data_error.proto\x1a\x43google/ads/googleads/v17/errors/user_list_customer_type_error.proto\x1a\x35google/ads/googleads/v17/errors/user_list_error.proto\x1a:google/ads/googleads/v17/errors/video_campaign_error.proto\x1a\x46google/ads/googleads/v17/errors/youtube_video_registration_error.proto\x1a\x1egoogle/protobuf/duration.proto\"g\n\x10GoogleAdsFailure\x12?\n\x06\x65rrors\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.errors.GoogleAdsError\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x9c\x02\n\x0eGoogleAdsError\x12>\n\nerror_code\x18\x01 \x01(\x0b\x32*.google.ads.googleads.v17.errors.ErrorCode\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x37\n\x07trigger\x18\x03 \x01(\x0b\x32&.google.ads.googleads.v17.common.Value\x12@\n\x08location\x18\x04 \x01(\x0b\x32..google.ads.googleads.v17.errors.ErrorLocation\x12>\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32-.google.ads.googleads.v17.errors.ErrorDetails\"\x8a\x85\x01\n\tErrorCode\x12W\n\rrequest_error\x18\x01 \x01(\x0e\x32>.google.ads.googleads.v17.errors.RequestErrorEnum.RequestErrorH\x00\x12p\n\x16\x62idding_strategy_error\x18\x02 \x01(\x0e\x32N.google.ads.googleads.v17.errors.BiddingStrategyErrorEnum.BiddingStrategyErrorH\x00\x12[\n\x0furl_field_error\x18\x03 \x01(\x0e\x32@.google.ads.googleads.v17.errors.UrlFieldErrorEnum.UrlFieldErrorH\x00\x12j\n\x14list_operation_error\x18\x04 \x01(\x0e\x32J.google.ads.googleads.v17.errors.ListOperationErrorEnum.ListOperationErrorH\x00\x12Q\n\x0bquery_error\x18\x05 \x01(\x0e\x32:.google.ads.googleads.v17.errors.QueryErrorEnum.QueryErrorH\x00\x12T\n\x0cmutate_error\x18\x07 \x01(\x0e\x32<.google.ads.googleads.v17.errors.MutateErrorEnum.MutateErrorH\x00\x12^\n\x10\x66ield_mask_error\x18\x08 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.FieldMaskErrorEnum.FieldMaskErrorH\x00\x12i\n\x13\x61uthorization_error\x18\t \x01(\x0e\x32J.google.ads.googleads.v17.errors.AuthorizationErrorEnum.AuthorizationErrorH\x00\x12Z\n\x0einternal_error\x18\n \x01(\x0e\x32@.google.ads.googleads.v17.errors.InternalErrorEnum.InternalErrorH\x00\x12Q\n\x0bquota_error\x18\x0b \x01(\x0e\x32:.google.ads.googleads.v17.errors.QuotaErrorEnum.QuotaErrorH\x00\x12H\n\x08\x61\x64_error\x18\x0c \x01(\x0e\x32\x34.google.ads.googleads.v17.errors.AdErrorEnum.AdErrorH\x00\x12X\n\x0e\x61\x64_group_error\x18\r \x01(\x0e\x32>.google.ads.googleads.v17.errors.AdGroupErrorEnum.AdGroupErrorH\x00\x12m\n\x15\x63\x61mpaign_budget_error\x18\x0e \x01(\x0e\x32L.google.ads.googleads.v17.errors.CampaignBudgetErrorEnum.CampaignBudgetErrorH\x00\x12Z\n\x0e\x63\x61mpaign_error\x18\x0f \x01(\x0e\x32@.google.ads.googleads.v17.errors.CampaignErrorEnum.CampaignErrorH\x00\x12k\n\x14video_campaign_error\x18\xb6\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.VideoCampaignErrorEnum.VideoCampaignErrorH\x00\x12l\n\x14\x61uthentication_error\x18\x11 \x01(\x0e\x32L.google.ads.googleads.v17.errors.AuthenticationErrorEnum.AuthenticationErrorH\x00\x12\x94\x01\n#ad_group_criterion_customizer_error\x18\xa1\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.AdGroupCriterionCustomizerErrorEnum.AdGroupCriterionCustomizerErrorH\x00\x12t\n\x18\x61\x64_group_criterion_error\x18\x12 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AdGroupCriterionErrorEnum.AdGroupCriterionErrorH\x00\x12x\n\x19\x61\x64_group_customizer_error\x18\x9f\x01 \x01(\x0e\x32R.google.ads.googleads.v17.errors.AdGroupCustomizerErrorEnum.AdGroupCustomizerErrorH\x00\x12g\n\x13\x61\x64_customizer_error\x18\x13 \x01(\x0e\x32H.google.ads.googleads.v17.errors.AdCustomizerErrorEnum.AdCustomizerErrorH\x00\x12_\n\x11\x61\x64_group_ad_error\x18\x15 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AdGroupAdErrorEnum.AdGroupAdErrorH\x00\x12^\n\x10\x61\x64_sharing_error\x18\x18 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AdSharingErrorEnum.AdSharingErrorH\x00\x12K\n\tadx_error\x18\x19 \x01(\x0e\x32\x36.google.ads.googleads.v17.errors.AdxErrorEnum.AdxErrorH\x00\x12Q\n\x0b\x61sset_error\x18k \x01(\x0e\x32:.google.ads.googleads.v17.errors.AssetErrorEnum.AssetErrorH\x00\x12r\n\x17\x61sset_group_asset_error\x18\x95\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.AssetGroupAssetErrorEnum.AssetGroupAssetErrorH\x00\x12\x9b\x01\n&asset_group_listing_group_filter_error\x18\x9b\x01 \x01(\x0e\x32h.google.ads.googleads.v17.errors.AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterErrorH\x00\x12\x62\n\x11\x61sset_group_error\x18\x94\x01 \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.AssetGroupErrorEnum.AssetGroupErrorH\x00\x12l\n\x15\x61sset_set_asset_error\x18\x99\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.AssetSetAssetErrorEnum.AssetSetAssetErrorH\x00\x12i\n\x14\x61sset_set_link_error\x18\x9a\x01 \x01(\x0e\x32H.google.ads.googleads.v17.errors.AssetSetLinkErrorEnum.AssetSetLinkErrorH\x00\x12\\\n\x0f\x61sset_set_error\x18\x98\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.AssetSetErrorEnum.AssetSetErrorH\x00\x12W\n\rbidding_error\x18\x1a \x01(\x0e\x32>.google.ads.googleads.v17.errors.BiddingErrorEnum.BiddingErrorH\x00\x12v\n\x18\x63\x61mpaign_criterion_error\x18\x1d \x01(\x0e\x32R.google.ads.googleads.v17.errors.CampaignCriterionErrorEnum.CampaignCriterionErrorH\x00\x12\x87\x01\n\x1e\x63\x61mpaign_conversion_goal_error\x18\xa6\x01 \x01(\x0e\x32\\.google.ads.googleads.v17.errors.CampaignConversionGoalErrorEnum.CampaignConversionGoalErrorH\x00\x12z\n\x19\x63\x61mpaign_customizer_error\x18\xa0\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CampaignCustomizerErrorEnum.CampaignCustomizerErrorH\x00\x12m\n\x15\x63ollection_size_error\x18\x1f \x01(\x0e\x32L.google.ads.googleads.v17.errors.CollectionSizeErrorEnum.CollectionSizeErrorH\x00\x12\x9a\x01\n%conversion_goal_campaign_config_error\x18\xa5\x01 \x01(\x0e\x32h.google.ads.googleads.v17.errors.ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigErrorH\x00\x12\x64\n\x12\x63ountry_code_error\x18m \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.CountryCodeErrorEnum.CountryCodeErrorH\x00\x12]\n\x0f\x63riterion_error\x18  \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.CriterionErrorEnum.CriterionErrorH\x00\x12\x81\x01\n\x1c\x63ustom_conversion_goal_error\x18\x96\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.CustomConversionGoalErrorEnum.CustomConversionGoalErrorH\x00\x12z\n\x19\x63ustomer_customizer_error\x18\x9e\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerCustomizerErrorEnum.CustomerCustomizerErrorH\x00\x12Z\n\x0e\x63ustomer_error\x18Z \x01(\x0e\x32@.google.ads.googleads.v17.errors.CustomerErrorEnum.CustomerErrorH\x00\x12}\n\x1a\x63ustomizer_attribute_error\x18\x97\x01 \x01(\x0e\x32V.google.ads.googleads.v17.errors.CustomizerAttributeErrorEnum.CustomizerAttributeErrorH\x00\x12N\n\ndate_error\x18! \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.DateErrorEnum.DateErrorH\x00\x12^\n\x10\x64\x61te_range_error\x18\" \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.DateRangeErrorEnum.DateRangeErrorH\x00\x12Z\n\x0e\x64istinct_error\x18# \x01(\x0e\x32@.google.ads.googleads.v17.errors.DistinctErrorEnum.DistinctErrorH\x00\x12\x86\x01\n\x1e\x66\x65\x65\x64_attribute_reference_error\x18$ \x01(\x0e\x32\\.google.ads.googleads.v17.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceErrorH\x00\x12Z\n\x0e\x66unction_error\x18% \x01(\x0e\x32@.google.ads.googleads.v17.errors.FunctionErrorEnum.FunctionErrorH\x00\x12p\n\x16\x66unction_parsing_error\x18& \x01(\x0e\x32N.google.ads.googleads.v17.errors.FunctionParsingErrorEnum.FunctionParsingErrorH\x00\x12H\n\x08id_error\x18\' \x01(\x0e\x32\x34.google.ads.googleads.v17.errors.IdErrorEnum.IdErrorH\x00\x12Q\n\x0bimage_error\x18( \x01(\x0e\x32:.google.ads.googleads.v17.errors.ImageErrorEnum.ImageErrorH\x00\x12g\n\x13language_code_error\x18n \x01(\x0e\x32H.google.ads.googleads.v17.errors.LanguageCodeErrorEnum.LanguageCodeErrorH\x00\x12\x64\n\x12media_bundle_error\x18* \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.MediaBundleErrorEnum.MediaBundleErrorH\x00\x12\x64\n\x12media_upload_error\x18t \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.MediaUploadErrorEnum.MediaUploadErrorH\x00\x12^\n\x10media_file_error\x18V \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.MediaFileErrorEnum.MediaFileErrorH\x00\x12n\n\x15merchant_center_error\x18\xa2\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.MerchantCenterErrorEnum.MerchantCenterErrorH\x00\x12`\n\x10multiplier_error\x18, \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.MultiplierErrorEnum.MultiplierErrorH\x00\x12}\n\x1bnew_resource_creation_error\x18- \x01(\x0e\x32V.google.ads.googleads.v17.errors.NewResourceCreationErrorEnum.NewResourceCreationErrorH\x00\x12[\n\x0fnot_empty_error\x18. \x01(\x0e\x32@.google.ads.googleads.v17.errors.NotEmptyErrorEnum.NotEmptyErrorH\x00\x12N\n\nnull_error\x18/ \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.NullErrorEnum.NullErrorH\x00\x12Z\n\x0eoperator_error\x18\x30 \x01(\x0e\x32@.google.ads.googleads.v17.errors.OperatorErrorEnum.OperatorErrorH\x00\x12Q\n\x0brange_error\x18\x31 \x01(\x0e\x32:.google.ads.googleads.v17.errors.RangeErrorEnum.RangeErrorH\x00\x12l\n\x14recommendation_error\x18: \x01(\x0e\x32L.google.ads.googleads.v17.errors.RecommendationErrorEnum.RecommendationErrorH\x00\x12\x92\x01\n!recommendation_subscription_error\x18\xb4\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.RecommendationSubscriptionErrorEnum.RecommendationSubscriptionErrorH\x00\x12\x61\n\x11region_code_error\x18\x33 \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.RegionCodeErrorEnum.RegionCodeErrorH\x00\x12W\n\rsetting_error\x18\x34 \x01(\x0e\x32>.google.ads.googleads.v17.errors.SettingErrorEnum.SettingErrorH\x00\x12g\n\x13string_format_error\x18\x35 \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringFormatErrorEnum.StringFormatErrorH\x00\x12g\n\x13string_length_error\x18\x36 \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringLengthErrorEnum.StringLengthErrorH\x00\x12\x83\x01\n\x1doperation_access_denied_error\x18\x37 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedErrorH\x00\x12\x80\x01\n\x1cresource_access_denied_error\x18\x38 \x01(\x0e\x32X.google.ads.googleads.v17.errors.ResourceAccessDeniedErrorEnum.ResourceAccessDeniedErrorH\x00\x12\x93\x01\n#resource_count_limit_exceeded_error\x18\x39 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededErrorH\x00\x12\x8c\x01\n youtube_video_registration_error\x18u \x01(\x0e\x32`.google.ads.googleads.v17.errors.YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationErrorH\x00\x12{\n\x1b\x61\x64_group_bid_modifier_error\x18; \x01(\x0e\x32T.google.ads.googleads.v17.errors.AdGroupBidModifierErrorEnum.AdGroupBidModifierErrorH\x00\x12W\n\rcontext_error\x18< \x01(\x0e\x32>.google.ads.googleads.v17.errors.ContextErrorEnum.ContextErrorH\x00\x12Q\n\x0b\x66ield_error\x18= \x01(\x0e\x32:.google.ads.googleads.v17.errors.FieldErrorEnum.FieldErrorH\x00\x12^\n\x10shared_set_error\x18> \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.SharedSetErrorEnum.SharedSetErrorH\x00\x12p\n\x16shared_criterion_error\x18? \x01(\x0e\x32N.google.ads.googleads.v17.errors.SharedCriterionErrorEnum.SharedCriterionErrorH\x00\x12w\n\x19\x63\x61mpaign_shared_set_error\x18@ \x01(\x0e\x32R.google.ads.googleads.v17.errors.CampaignSharedSetErrorEnum.CampaignSharedSetErrorH\x00\x12s\n\x17\x63onversion_action_error\x18\x41 \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionActionErrorEnum.ConversionActionErrorH\x00\x12\x92\x01\n\"conversion_adjustment_upload_error\x18s \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadErrorH\x00\x12\x8d\x01\n conversion_custom_variable_error\x18\x8f\x01 \x01(\x0e\x32`.google.ads.googleads.v17.errors.ConversionCustomVariableErrorEnum.ConversionCustomVariableErrorH\x00\x12s\n\x17\x63onversion_upload_error\x18o \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionUploadErrorEnum.ConversionUploadErrorH\x00\x12~\n\x1b\x63onversion_value_rule_error\x18\x91\x01 \x01(\x0e\x32V.google.ads.googleads.v17.errors.ConversionValueRuleErrorEnum.ConversionValueRuleErrorH\x00\x12\x88\x01\n\x1f\x63onversion_value_rule_set_error\x18\x92\x01 \x01(\x0e\x32\\.google.ads.googleads.v17.errors.ConversionValueRuleSetErrorEnum.ConversionValueRuleSetErrorH\x00\x12T\n\x0cheader_error\x18\x42 \x01(\x0e\x32<.google.ads.googleads.v17.errors.HeaderErrorEnum.HeaderErrorH\x00\x12Z\n\x0e\x64\x61tabase_error\x18\x43 \x01(\x0e\x32@.google.ads.googleads.v17.errors.DatabaseErrorEnum.DatabaseErrorH\x00\x12j\n\x14policy_finding_error\x18\x44 \x01(\x0e\x32J.google.ads.googleads.v17.errors.PolicyFindingErrorEnum.PolicyFindingErrorH\x00\x12N\n\nenum_error\x18\x46 \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.EnumErrorEnum.EnumErrorH\x00\x12\x64\n\x12keyword_plan_error\x18G \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.KeywordPlanErrorEnum.KeywordPlanErrorH\x00\x12}\n\x1bkeyword_plan_campaign_error\x18H \x01(\x0e\x32V.google.ads.googleads.v17.errors.KeywordPlanCampaignErrorEnum.KeywordPlanCampaignErrorH\x00\x12\x94\x01\n#keyword_plan_campaign_keyword_error\x18\x84\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordErrorH\x00\x12{\n\x1bkeyword_plan_ad_group_error\x18J \x01(\x0e\x32T.google.ads.googleads.v17.errors.KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupErrorH\x00\x12\x92\x01\n#keyword_plan_ad_group_keyword_error\x18\x85\x01 \x01(\x0e\x32\x62.google.ads.googleads.v17.errors.KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordErrorH\x00\x12q\n\x17keyword_plan_idea_error\x18L \x01(\x0e\x32N.google.ads.googleads.v17.errors.KeywordPlanIdeaErrorEnum.KeywordPlanIdeaErrorH\x00\x12\x83\x01\n\x1d\x61\x63\x63ount_budget_proposal_error\x18M \x01(\x0e\x32Z.google.ads.googleads.v17.errors.AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorH\x00\x12[\n\x0fuser_list_error\x18N \x01(\x0e\x32@.google.ads.googleads.v17.errors.UserListErrorEnum.UserListErrorH\x00\x12\x65\n\x12\x63hange_event_error\x18\x88\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ChangeEventErrorEnum.ChangeEventErrorH\x00\x12g\n\x13\x63hange_status_error\x18O \x01(\x0e\x32H.google.ads.googleads.v17.errors.ChangeStatusErrorEnum.ChangeStatusErrorH\x00\x12N\n\nfeed_error\x18P \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.FeedErrorEnum.FeedErrorH\x00\x12\x96\x01\n$geo_target_constant_suggestion_error\x18Q \x01(\x0e\x32\x66.google.ads.googleads.v17.errors.GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionErrorH\x00\x12j\n\x14\x63\x61mpaign_draft_error\x18R \x01(\x0e\x32J.google.ads.googleads.v17.errors.CampaignDraftErrorEnum.CampaignDraftErrorH\x00\x12[\n\x0f\x66\x65\x65\x64_item_error\x18S \x01(\x0e\x32@.google.ads.googleads.v17.errors.FeedItemErrorEnum.FeedItemErrorH\x00\x12Q\n\x0blabel_error\x18T \x01(\x0e\x32:.google.ads.googleads.v17.errors.LabelErrorEnum.LabelErrorH\x00\x12g\n\x13\x62illing_setup_error\x18W \x01(\x0e\x32H.google.ads.googleads.v17.errors.BillingSetupErrorEnum.BillingSetupErrorH\x00\x12z\n\x1a\x63ustomer_client_link_error\x18X \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerClientLinkErrorEnum.CustomerClientLinkErrorH\x00\x12}\n\x1b\x63ustomer_manager_link_error\x18[ \x01(\x0e\x32V.google.ads.googleads.v17.errors.CustomerManagerLinkErrorEnum.CustomerManagerLinkErrorH\x00\x12\x64\n\x12\x66\x65\x65\x64_mapping_error\x18\\ \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.FeedMappingErrorEnum.FeedMappingErrorH\x00\x12g\n\x13\x63ustomer_feed_error\x18] \x01(\x0e\x32H.google.ads.googleads.v17.errors.CustomerFeedErrorEnum.CustomerFeedErrorH\x00\x12\x65\n\x13\x61\x64_group_feed_error\x18^ \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AdGroupFeedErrorEnum.AdGroupFeedErrorH\x00\x12g\n\x13\x63\x61mpaign_feed_error\x18` \x01(\x0e\x32H.google.ads.googleads.v17.errors.CampaignFeedErrorEnum.CampaignFeedErrorH\x00\x12m\n\x15\x63ustom_interest_error\x18\x61 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CustomInterestErrorEnum.CustomInterestErrorH\x00\x12y\n\x19\x63\x61mpaign_experiment_error\x18\x62 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CampaignExperimentErrorEnum.CampaignExperimentErrorH\x00\x12w\n\x19\x65xtension_feed_item_error\x18\x64 \x01(\x0e\x32R.google.ads.googleads.v17.errors.ExtensionFeedItemErrorEnum.ExtensionFeedItemErrorH\x00\x12\x64\n\x12\x61\x64_parameter_error\x18\x65 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AdParameterErrorEnum.AdParameterErrorH\x00\x12z\n\x1a\x66\x65\x65\x64_item_validation_error\x18\x66 \x01(\x0e\x32T.google.ads.googleads.v17.errors.FeedItemValidationErrorEnum.FeedItemValidationErrorH\x00\x12s\n\x17\x65xtension_setting_error\x18g \x01(\x0e\x32P.google.ads.googleads.v17.errors.ExtensionSettingErrorEnum.ExtensionSettingErrorH\x00\x12\x66\n\x13\x66\x65\x65\x64_item_set_error\x18\x8c\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.FeedItemSetErrorEnum.FeedItemSetErrorH\x00\x12s\n\x18\x66\x65\x65\x64_item_set_link_error\x18\x8d\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.FeedItemSetLinkErrorEnum.FeedItemSetLinkErrorH\x00\x12n\n\x16\x66\x65\x65\x64_item_target_error\x18h \x01(\x0e\x32L.google.ads.googleads.v17.errors.FeedItemTargetErrorEnum.FeedItemTargetErrorH\x00\x12p\n\x16policy_violation_error\x18i \x01(\x0e\x32N.google.ads.googleads.v17.errors.PolicyViolationErrorEnum.PolicyViolationErrorH\x00\x12m\n\x15partial_failure_error\x18p \x01(\x0e\x32L.google.ads.googleads.v17.errors.PartialFailureErrorEnum.PartialFailureErrorH\x00\x12\x8f\x01\n!policy_validation_parameter_error\x18r \x01(\x0e\x32\x62.google.ads.googleads.v17.errors.PolicyValidationParameterErrorEnum.PolicyValidationParameterErrorH\x00\x12^\n\x10size_limit_error\x18v \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.SizeLimitErrorEnum.SizeLimitErrorH\x00\x12{\n\x1boffline_user_data_job_error\x18w \x01(\x0e\x32T.google.ads.googleads.v17.errors.OfflineUserDataJobErrorEnum.OfflineUserDataJobErrorH\x00\x12n\n\x15not_allowlisted_error\x18\x89\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.NotAllowlistedErrorEnum.NotAllowlistedErrorH\x00\x12\x64\n\x12manager_link_error\x18y \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ManagerLinkErrorEnum.ManagerLinkErrorH\x00\x12g\n\x13\x63urrency_code_error\x18z \x01(\x0e\x32H.google.ads.googleads.v17.errors.CurrencyCodeErrorEnum.CurrencyCodeErrorH\x00\x12`\n\x10\x65xperiment_error\x18{ \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.ExperimentErrorEnum.ExperimentErrorH\x00\x12s\n\x17\x61\x63\x63\x65ss_invitation_error\x18| \x01(\x0e\x32P.google.ads.googleads.v17.errors.AccessInvitationErrorEnum.AccessInvitationErrorH\x00\x12^\n\x10reach_plan_error\x18} \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.ReachPlanErrorEnum.ReachPlanErrorH\x00\x12W\n\rinvoice_error\x18~ \x01(\x0e\x32>.google.ads.googleads.v17.errors.InvoiceErrorEnum.InvoiceErrorH\x00\x12p\n\x16payments_account_error\x18\x7f \x01(\x0e\x32N.google.ads.googleads.v17.errors.PaymentsAccountErrorEnum.PaymentsAccountErrorH\x00\x12\\\n\x0ftime_zone_error\x18\x80\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.TimeZoneErrorEnum.TimeZoneErrorH\x00\x12_\n\x10\x61sset_link_error\x18\x81\x01 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AssetLinkErrorEnum.AssetLinkErrorH\x00\x12\\\n\x0fuser_data_error\x18\x82\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.UserDataErrorEnum.UserDataErrorH\x00\x12\\\n\x0f\x62\x61tch_job_error\x18\x83\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.BatchJobErrorEnum.BatchJobErrorH\x00\x12\x65\n\x12\x61\x63\x63ount_link_error\x18\x86\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AccountLinkErrorEnum.AccountLinkErrorH\x00\x12\x95\x01\n$third_party_app_analytics_link_error\x18\x87\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkErrorH\x00\x12{\n\x1a\x63ustomer_user_access_error\x18\x8a\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerUserAccessErrorEnum.CustomerUserAccessErrorH\x00\x12n\n\x15\x63ustom_audience_error\x18\x8b\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CustomAudienceErrorEnum.CustomAudienceErrorH\x00\x12[\n\x0e\x61udience_error\x18\xa4\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.AudienceErrorEnum.AudienceErrorH\x00\x12x\n\x19search_term_insight_error\x18\xae\x01 \x01(\x0e\x32R.google.ads.googleads.v17.errors.SearchTermInsightErrorEnum.SearchTermInsightErrorH\x00\x12k\n\x14smart_campaign_error\x18\x93\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.SmartCampaignErrorEnum.SmartCampaignErrorH\x00\x12k\n\x14\x65xperiment_arm_error\x18\x9c\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.ExperimentArmErrorEnum.ExperimentArmErrorH\x00\x12t\n\x17\x61udience_insights_error\x18\xa7\x01 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AudienceInsightsErrorEnum.AudienceInsightsErrorH\x00\x12\x65\n\x12product_link_error\x18\xa9\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ProductLinkErrorEnum.ProductLinkErrorH\x00\x12\xc2\x01\n4customer_sk_ad_network_conversion_value_schema_error\x18\xaa\x01 \x01(\x0e\x32\x80\x01.google.ads.googleads.v17.errors.CustomerSkAdNetworkConversionValueSchemaErrorEnum.CustomerSkAdNetworkConversionValueSchemaErrorH\x00\x12[\n\x0e\x63urrency_error\x18\xab\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.CurrencyErrorEnum.CurrencyErrorH\x00\x12u\n\x18\x61sset_group_signal_error\x18\xb0\x01 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AssetGroupSignalErrorEnum.AssetGroupSignalErrorH\x00\x12\x84\x01\n\x1dproduct_link_invitation_error\x18\xb1\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.ProductLinkInvitationErrorEnum.ProductLinkInvitationErrorH\x00\x12\x84\x01\n\x1d\x63ustomer_lifecycle_goal_error\x18\xb2\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.CustomerLifecycleGoalErrorEnum.CustomerLifecycleGoalErrorH\x00\x12\x84\x01\n\x1d\x63\x61mpaign_lifecycle_goal_error\x18\xb3\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.CampaignLifecycleGoalErrorEnum.CampaignLifecycleGoalErrorH\x00\x12\x80\x01\n\x1bidentity_verification_error\x18\xb5\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.IdentityVerificationErrorEnum.IdentityVerificationErrorH\x00\x12\x82\x01\n\x1duser_list_customer_type_error\x18\xb7\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.UserListCustomerTypeErrorEnum.UserListCustomerTypeErrorH\x00\x12q\n\x16shopping_product_error\x18\xb8\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.ShoppingProductErrorEnum.ShoppingProductErrorH\x00\x42\x0c\n\nerror_code\"\xb3\x01\n\rErrorLocation\x12\\\n\x13\x66ield_path_elements\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v17.errors.ErrorLocation.FieldPathElement\x1a\x44\n\x10\x46ieldPathElement\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x12\n\x05index\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_index\"\x88\x03\n\x0c\x45rrorDetails\x12\x1e\n\x16unpublished_error_code\x18\x01 \x01(\t\x12Y\n\x18policy_violation_details\x18\x02 \x01(\x0b\x32\x37.google.ads.googleads.v17.errors.PolicyViolationDetails\x12U\n\x16policy_finding_details\x18\x03 \x01(\x0b\x32\x35.google.ads.googleads.v17.errors.PolicyFindingDetails\x12O\n\x13quota_error_details\x18\x04 \x01(\x0b\x32\x32.google.ads.googleads.v17.errors.QuotaErrorDetails\x12U\n\x16resource_count_details\x18\x05 \x01(\x0b\x32\x35.google.ads.googleads.v17.errors.ResourceCountDetails\"\xb4\x01\n\x16PolicyViolationDetails\x12#\n\x1b\x65xternal_policy_description\x18\x02 \x01(\t\x12@\n\x03key\x18\x04 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.PolicyViolationKey\x12\x1c\n\x14\x65xternal_policy_name\x18\x05 \x01(\t\x12\x15\n\ris_exemptible\x18\x06 \x01(\x08\"g\n\x14PolicyFindingDetails\x12O\n\x14policy_topic_entries\x18\x01 \x03(\x0b\x32\x31.google.ads.googleads.v17.common.PolicyTopicEntry\"\xf9\x01\n\x11QuotaErrorDetails\x12U\n\nrate_scope\x18\x01 \x01(\x0e\x32\x41.google.ads.googleads.v17.errors.QuotaErrorDetails.QuotaRateScope\x12\x11\n\trate_name\x18\x02 \x01(\t\x12.\n\x0bretry_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"J\n\x0eQuotaRateScope\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x41\x43\x43OUNT\x10\x02\x12\r\n\tDEVELOPER\x10\x03\"\xcc\x01\n\x14ResourceCountDetails\x12\x14\n\x0c\x65nclosing_id\x18\x01 \x01(\t\x12\x1a\n\x12\x65nclosing_resource\x18\x05 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12[\n\nlimit_type\x18\x03 \x01(\x0e\x32G.google.ads.googleads.v17.enums.ResourceLimitTypeEnum.ResourceLimitType\x12\x16\n\x0e\x65xisting_count\x18\x04 \x01(\x05\x42\xeb\x01\n#com.google.ads.googleads.v17.errorsB\x0b\x45rrorsProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Errors\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Errors\xea\x02#Google::Ads::GoogleAds::V17::Errorsb\x06proto3"
+descriptor_data = "\n,google/ads/googleads/v17/errors/errors.proto\x12\x1fgoogle.ads.googleads.v17.errors\x1a,google/ads/googleads/v17/common/policy.proto\x1a+google/ads/googleads/v17/common/value.proto\x1a\x38google/ads/googleads/v17/enums/resource_limit_type.proto\x1a=google/ads/googleads/v17/errors/access_invitation_error.proto\x1a\x43google/ads/googleads/v17/errors/account_budget_proposal_error.proto\x1a\x38google/ads/googleads/v17/errors/account_link_error.proto\x1a\x39google/ads/googleads/v17/errors/ad_customizer_error.proto\x1a.google/ads/googleads/v17/errors/ad_error.proto\x1a\x37google/ads/googleads/v17/errors/ad_group_ad_error.proto\x1a\x41google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto\x1aIgoogle/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto\x1a>google/ads/googleads/v17/errors/ad_group_criterion_error.proto\x1a?google/ads/googleads/v17/errors/ad_group_customizer_error.proto\x1a\x34google/ads/googleads/v17/errors/ad_group_error.proto\x1a\x39google/ads/googleads/v17/errors/ad_group_feed_error.proto\x1a\x38google/ads/googleads/v17/errors/ad_parameter_error.proto\x1a\x36google/ads/googleads/v17/errors/ad_sharing_error.proto\x1a/google/ads/googleads/v17/errors/adx_error.proto\x1a\x31google/ads/googleads/v17/errors/asset_error.proto\x1a=google/ads/googleads/v17/errors/asset_group_asset_error.proto\x1a\x37google/ads/googleads/v17/errors/asset_group_error.proto\x1aLgoogle/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto\x1a>google/ads/googleads/v17/errors/asset_group_signal_error.proto\x1a\x36google/ads/googleads/v17/errors/asset_link_error.proto\x1a;google/ads/googleads/v17/errors/asset_set_asset_error.proto\x1a\x35google/ads/googleads/v17/errors/asset_set_error.proto\x1a:google/ads/googleads/v17/errors/asset_set_link_error.proto\x1a\x34google/ads/googleads/v17/errors/audience_error.proto\x1a=google/ads/googleads/v17/errors/audience_insights_error.proto\x1a:google/ads/googleads/v17/errors/authentication_error.proto\x1a\x39google/ads/googleads/v17/errors/authorization_error.proto\x1aOgoogle/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto\x1a\x35google/ads/googleads/v17/errors/batch_job_error.proto\x1a\x33google/ads/googleads/v17/errors/bidding_error.proto\x1a<google/ads/googleads/v17/errors/bidding_strategy_error.proto\x1a\x39google/ads/googleads/v17/errors/billing_setup_error.proto\x1a;google/ads/googleads/v17/errors/campaign_budget_error.proto\x1a\x44google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto\x1a>google/ads/googleads/v17/errors/campaign_criterion_error.proto\x1a?google/ads/googleads/v17/errors/campaign_customizer_error.proto\x1a:google/ads/googleads/v17/errors/campaign_draft_error.proto\x1a\x34google/ads/googleads/v17/errors/campaign_error.proto\x1a?google/ads/googleads/v17/errors/campaign_experiment_error.proto\x1a\x39google/ads/googleads/v17/errors/campaign_feed_error.proto\x1a\x43google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto\x1a?google/ads/googleads/v17/errors/campaign_shared_set_error.proto\x1a\x38google/ads/googleads/v17/errors/change_event_error.proto\x1a\x39google/ads/googleads/v17/errors/change_status_error.proto\x1a;google/ads/googleads/v17/errors/collection_size_error.proto\x1a\x33google/ads/googleads/v17/errors/context_error.proto\x1a=google/ads/googleads/v17/errors/conversion_action_error.proto\x1aHgoogle/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto\x1a\x46google/ads/googleads/v17/errors/conversion_custom_variable_error.proto\x1aKgoogle/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto\x1a=google/ads/googleads/v17/errors/conversion_upload_error.proto\x1a\x41google/ads/googleads/v17/errors/conversion_value_rule_error.proto\x1a\x45google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto\x1a\x38google/ads/googleads/v17/errors/country_code_error.proto\x1a\x35google/ads/googleads/v17/errors/criterion_error.proto\x1a\x39google/ads/googleads/v17/errors/currency_code_error.proto\x1a\x34google/ads/googleads/v17/errors/currency_error.proto\x1a;google/ads/googleads/v17/errors/custom_audience_error.proto\x1a\x42google/ads/googleads/v17/errors/custom_conversion_goal_error.proto\x1a;google/ads/googleads/v17/errors/custom_interest_error.proto\x1a@google/ads/googleads/v17/errors/customer_client_link_error.proto\x1a?google/ads/googleads/v17/errors/customer_customizer_error.proto\x1a\x34google/ads/googleads/v17/errors/customer_error.proto\x1a\x39google/ads/googleads/v17/errors/customer_feed_error.proto\x1a\x43google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto\x1a\x41google/ads/googleads/v17/errors/customer_manager_link_error.proto\x1aZgoogle/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto\x1a@google/ads/googleads/v17/errors/customer_user_access_error.proto\x1a@google/ads/googleads/v17/errors/customizer_attribute_error.proto\x1a\x34google/ads/googleads/v17/errors/database_error.proto\x1a\x30google/ads/googleads/v17/errors/date_error.proto\x1a\x36google/ads/googleads/v17/errors/date_range_error.proto\x1a\x34google/ads/googleads/v17/errors/distinct_error.proto\x1a\x30google/ads/googleads/v17/errors/enum_error.proto\x1a:google/ads/googleads/v17/errors/experiment_arm_error.proto\x1a\x36google/ads/googleads/v17/errors/experiment_error.proto\x1a?google/ads/googleads/v17/errors/extension_feed_item_error.proto\x1a=google/ads/googleads/v17/errors/extension_setting_error.proto\x1a\x44google/ads/googleads/v17/errors/feed_attribute_reference_error.proto\x1a\x30google/ads/googleads/v17/errors/feed_error.proto\x1a\x35google/ads/googleads/v17/errors/feed_item_error.proto\x1a\x39google/ads/googleads/v17/errors/feed_item_set_error.proto\x1a>google/ads/googleads/v17/errors/feed_item_set_link_error.proto\x1a<google/ads/googleads/v17/errors/feed_item_target_error.proto\x1a@google/ads/googleads/v17/errors/feed_item_validation_error.proto\x1a\x38google/ads/googleads/v17/errors/feed_mapping_error.proto\x1a\x31google/ads/googleads/v17/errors/field_error.proto\x1a\x36google/ads/googleads/v17/errors/field_mask_error.proto\x1a\x34google/ads/googleads/v17/errors/function_error.proto\x1a<google/ads/googleads/v17/errors/function_parsing_error.proto\x1aJgoogle/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto\x1a\x32google/ads/googleads/v17/errors/header_error.proto\x1a.google/ads/googleads/v17/errors/id_error.proto\x1a\x41google/ads/googleads/v17/errors/identity_verification_error.proto\x1a\x31google/ads/googleads/v17/errors/image_error.proto\x1a\x34google/ads/googleads/v17/errors/internal_error.proto\x1a\x33google/ads/googleads/v17/errors/invoice_error.proto\x1a\x41google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto\x1aIgoogle/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto\x1a\x41google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto\x1aIgoogle/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto\x1a\x38google/ads/googleads/v17/errors/keyword_plan_error.proto\x1a=google/ads/googleads/v17/errors/keyword_plan_idea_error.proto\x1a\x31google/ads/googleads/v17/errors/label_error.proto\x1a\x39google/ads/googleads/v17/errors/language_code_error.proto\x1a:google/ads/googleads/v17/errors/list_operation_error.proto\x1a\x38google/ads/googleads/v17/errors/manager_link_error.proto\x1a\x38google/ads/googleads/v17/errors/media_bundle_error.proto\x1a\x36google/ads/googleads/v17/errors/media_file_error.proto\x1a\x38google/ads/googleads/v17/errors/media_upload_error.proto\x1a;google/ads/googleads/v17/errors/merchant_center_error.proto\x1a\x36google/ads/googleads/v17/errors/multiplier_error.proto\x1a\x32google/ads/googleads/v17/errors/mutate_error.proto\x1a\x41google/ads/googleads/v17/errors/new_resource_creation_error.proto\x1a;google/ads/googleads/v17/errors/not_allowlisted_error.proto\x1a\x35google/ads/googleads/v17/errors/not_empty_error.proto\x1a\x30google/ads/googleads/v17/errors/null_error.proto\x1a\x41google/ads/googleads/v17/errors/offline_user_data_job_error.proto\x1a\x43google/ads/googleads/v17/errors/operation_access_denied_error.proto\x1a\x34google/ads/googleads/v17/errors/operator_error.proto\x1a;google/ads/googleads/v17/errors/partial_failure_error.proto\x1a<google/ads/googleads/v17/errors/payments_account_error.proto\x1a:google/ads/googleads/v17/errors/policy_finding_error.proto\x1aGgoogle/ads/googleads/v17/errors/policy_validation_parameter_error.proto\x1a<google/ads/googleads/v17/errors/policy_violation_error.proto\x1a\x38google/ads/googleads/v17/errors/product_link_error.proto\x1a\x43google/ads/googleads/v17/errors/product_link_invitation_error.proto\x1a\x31google/ads/googleads/v17/errors/query_error.proto\x1a\x31google/ads/googleads/v17/errors/quota_error.proto\x1a\x31google/ads/googleads/v17/errors/range_error.proto\x1a\x36google/ads/googleads/v17/errors/reach_plan_error.proto\x1a:google/ads/googleads/v17/errors/recommendation_error.proto\x1aGgoogle/ads/googleads/v17/errors/recommendation_subscription_error.proto\x1a\x37google/ads/googleads/v17/errors/region_code_error.proto\x1a\x33google/ads/googleads/v17/errors/request_error.proto\x1a\x42google/ads/googleads/v17/errors/resource_access_denied_error.proto\x1aIgoogle/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto\x1a?google/ads/googleads/v17/errors/search_term_insight_error.proto\x1a\x33google/ads/googleads/v17/errors/setting_error.proto\x1a=google/ads/googleads/v17/errors/shareable_preview_error.proto\x1a<google/ads/googleads/v17/errors/shared_criterion_error.proto\x1a\x36google/ads/googleads/v17/errors/shared_set_error.proto\x1a<google/ads/googleads/v17/errors/shopping_product_error.proto\x1a\x36google/ads/googleads/v17/errors/size_limit_error.proto\x1a:google/ads/googleads/v17/errors/smart_campaign_error.proto\x1a\x39google/ads/googleads/v17/errors/string_format_error.proto\x1a\x39google/ads/googleads/v17/errors/string_length_error.proto\x1aJgoogle/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto\x1a\x35google/ads/googleads/v17/errors/time_zone_error.proto\x1a\x35google/ads/googleads/v17/errors/url_field_error.proto\x1a\x35google/ads/googleads/v17/errors/user_data_error.proto\x1a\x43google/ads/googleads/v17/errors/user_list_customer_type_error.proto\x1a\x35google/ads/googleads/v17/errors/user_list_error.proto\x1a:google/ads/googleads/v17/errors/video_campaign_error.proto\x1a\x46google/ads/googleads/v17/errors/youtube_video_registration_error.proto\x1a\x1egoogle/protobuf/duration.proto\"g\n\x10GoogleAdsFailure\x12?\n\x06\x65rrors\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.errors.GoogleAdsError\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x9c\x02\n\x0eGoogleAdsError\x12>\n\nerror_code\x18\x01 \x01(\x0b\x32*.google.ads.googleads.v17.errors.ErrorCode\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x37\n\x07trigger\x18\x03 \x01(\x0b\x32&.google.ads.googleads.v17.common.Value\x12@\n\x08location\x18\x04 \x01(\x0b\x32..google.ads.googleads.v17.errors.ErrorLocation\x12>\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32-.google.ads.googleads.v17.errors.ErrorDetails\"\xa9\x87\x01\n\tErrorCode\x12W\n\rrequest_error\x18\x01 \x01(\x0e\x32>.google.ads.googleads.v17.errors.RequestErrorEnum.RequestErrorH\x00\x12p\n\x16\x62idding_strategy_error\x18\x02 \x01(\x0e\x32N.google.ads.googleads.v17.errors.BiddingStrategyErrorEnum.BiddingStrategyErrorH\x00\x12[\n\x0furl_field_error\x18\x03 \x01(\x0e\x32@.google.ads.googleads.v17.errors.UrlFieldErrorEnum.UrlFieldErrorH\x00\x12j\n\x14list_operation_error\x18\x04 \x01(\x0e\x32J.google.ads.googleads.v17.errors.ListOperationErrorEnum.ListOperationErrorH\x00\x12Q\n\x0bquery_error\x18\x05 \x01(\x0e\x32:.google.ads.googleads.v17.errors.QueryErrorEnum.QueryErrorH\x00\x12T\n\x0cmutate_error\x18\x07 \x01(\x0e\x32<.google.ads.googleads.v17.errors.MutateErrorEnum.MutateErrorH\x00\x12^\n\x10\x66ield_mask_error\x18\x08 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.FieldMaskErrorEnum.FieldMaskErrorH\x00\x12i\n\x13\x61uthorization_error\x18\t \x01(\x0e\x32J.google.ads.googleads.v17.errors.AuthorizationErrorEnum.AuthorizationErrorH\x00\x12Z\n\x0einternal_error\x18\n \x01(\x0e\x32@.google.ads.googleads.v17.errors.InternalErrorEnum.InternalErrorH\x00\x12Q\n\x0bquota_error\x18\x0b \x01(\x0e\x32:.google.ads.googleads.v17.errors.QuotaErrorEnum.QuotaErrorH\x00\x12H\n\x08\x61\x64_error\x18\x0c \x01(\x0e\x32\x34.google.ads.googleads.v17.errors.AdErrorEnum.AdErrorH\x00\x12X\n\x0e\x61\x64_group_error\x18\r \x01(\x0e\x32>.google.ads.googleads.v17.errors.AdGroupErrorEnum.AdGroupErrorH\x00\x12m\n\x15\x63\x61mpaign_budget_error\x18\x0e \x01(\x0e\x32L.google.ads.googleads.v17.errors.CampaignBudgetErrorEnum.CampaignBudgetErrorH\x00\x12Z\n\x0e\x63\x61mpaign_error\x18\x0f \x01(\x0e\x32@.google.ads.googleads.v17.errors.CampaignErrorEnum.CampaignErrorH\x00\x12k\n\x14video_campaign_error\x18\xb6\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.VideoCampaignErrorEnum.VideoCampaignErrorH\x00\x12l\n\x14\x61uthentication_error\x18\x11 \x01(\x0e\x32L.google.ads.googleads.v17.errors.AuthenticationErrorEnum.AuthenticationErrorH\x00\x12\x94\x01\n#ad_group_criterion_customizer_error\x18\xa1\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.AdGroupCriterionCustomizerErrorEnum.AdGroupCriterionCustomizerErrorH\x00\x12t\n\x18\x61\x64_group_criterion_error\x18\x12 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AdGroupCriterionErrorEnum.AdGroupCriterionErrorH\x00\x12x\n\x19\x61\x64_group_customizer_error\x18\x9f\x01 \x01(\x0e\x32R.google.ads.googleads.v17.errors.AdGroupCustomizerErrorEnum.AdGroupCustomizerErrorH\x00\x12g\n\x13\x61\x64_customizer_error\x18\x13 \x01(\x0e\x32H.google.ads.googleads.v17.errors.AdCustomizerErrorEnum.AdCustomizerErrorH\x00\x12_\n\x11\x61\x64_group_ad_error\x18\x15 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AdGroupAdErrorEnum.AdGroupAdErrorH\x00\x12^\n\x10\x61\x64_sharing_error\x18\x18 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AdSharingErrorEnum.AdSharingErrorH\x00\x12K\n\tadx_error\x18\x19 \x01(\x0e\x32\x36.google.ads.googleads.v17.errors.AdxErrorEnum.AdxErrorH\x00\x12Q\n\x0b\x61sset_error\x18k \x01(\x0e\x32:.google.ads.googleads.v17.errors.AssetErrorEnum.AssetErrorH\x00\x12r\n\x17\x61sset_group_asset_error\x18\x95\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.AssetGroupAssetErrorEnum.AssetGroupAssetErrorH\x00\x12\x9b\x01\n&asset_group_listing_group_filter_error\x18\x9b\x01 \x01(\x0e\x32h.google.ads.googleads.v17.errors.AssetGroupListingGroupFilterErrorEnum.AssetGroupListingGroupFilterErrorH\x00\x12\x62\n\x11\x61sset_group_error\x18\x94\x01 \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.AssetGroupErrorEnum.AssetGroupErrorH\x00\x12l\n\x15\x61sset_set_asset_error\x18\x99\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.AssetSetAssetErrorEnum.AssetSetAssetErrorH\x00\x12i\n\x14\x61sset_set_link_error\x18\x9a\x01 \x01(\x0e\x32H.google.ads.googleads.v17.errors.AssetSetLinkErrorEnum.AssetSetLinkErrorH\x00\x12\\\n\x0f\x61sset_set_error\x18\x98\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.AssetSetErrorEnum.AssetSetErrorH\x00\x12W\n\rbidding_error\x18\x1a \x01(\x0e\x32>.google.ads.googleads.v17.errors.BiddingErrorEnum.BiddingErrorH\x00\x12v\n\x18\x63\x61mpaign_criterion_error\x18\x1d \x01(\x0e\x32R.google.ads.googleads.v17.errors.CampaignCriterionErrorEnum.CampaignCriterionErrorH\x00\x12\x87\x01\n\x1e\x63\x61mpaign_conversion_goal_error\x18\xa6\x01 \x01(\x0e\x32\\.google.ads.googleads.v17.errors.CampaignConversionGoalErrorEnum.CampaignConversionGoalErrorH\x00\x12z\n\x19\x63\x61mpaign_customizer_error\x18\xa0\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CampaignCustomizerErrorEnum.CampaignCustomizerErrorH\x00\x12m\n\x15\x63ollection_size_error\x18\x1f \x01(\x0e\x32L.google.ads.googleads.v17.errors.CollectionSizeErrorEnum.CollectionSizeErrorH\x00\x12\x9a\x01\n%conversion_goal_campaign_config_error\x18\xa5\x01 \x01(\x0e\x32h.google.ads.googleads.v17.errors.ConversionGoalCampaignConfigErrorEnum.ConversionGoalCampaignConfigErrorH\x00\x12\x64\n\x12\x63ountry_code_error\x18m \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.CountryCodeErrorEnum.CountryCodeErrorH\x00\x12]\n\x0f\x63riterion_error\x18  \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.CriterionErrorEnum.CriterionErrorH\x00\x12\x81\x01\n\x1c\x63ustom_conversion_goal_error\x18\x96\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.CustomConversionGoalErrorEnum.CustomConversionGoalErrorH\x00\x12z\n\x19\x63ustomer_customizer_error\x18\x9e\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerCustomizerErrorEnum.CustomerCustomizerErrorH\x00\x12Z\n\x0e\x63ustomer_error\x18Z \x01(\x0e\x32@.google.ads.googleads.v17.errors.CustomerErrorEnum.CustomerErrorH\x00\x12}\n\x1a\x63ustomizer_attribute_error\x18\x97\x01 \x01(\x0e\x32V.google.ads.googleads.v17.errors.CustomizerAttributeErrorEnum.CustomizerAttributeErrorH\x00\x12N\n\ndate_error\x18! \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.DateErrorEnum.DateErrorH\x00\x12^\n\x10\x64\x61te_range_error\x18\" \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.DateRangeErrorEnum.DateRangeErrorH\x00\x12Z\n\x0e\x64istinct_error\x18# \x01(\x0e\x32@.google.ads.googleads.v17.errors.DistinctErrorEnum.DistinctErrorH\x00\x12\x86\x01\n\x1e\x66\x65\x65\x64_attribute_reference_error\x18$ \x01(\x0e\x32\\.google.ads.googleads.v17.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceErrorH\x00\x12Z\n\x0e\x66unction_error\x18% \x01(\x0e\x32@.google.ads.googleads.v17.errors.FunctionErrorEnum.FunctionErrorH\x00\x12p\n\x16\x66unction_parsing_error\x18& \x01(\x0e\x32N.google.ads.googleads.v17.errors.FunctionParsingErrorEnum.FunctionParsingErrorH\x00\x12H\n\x08id_error\x18\' \x01(\x0e\x32\x34.google.ads.googleads.v17.errors.IdErrorEnum.IdErrorH\x00\x12Q\n\x0bimage_error\x18( \x01(\x0e\x32:.google.ads.googleads.v17.errors.ImageErrorEnum.ImageErrorH\x00\x12g\n\x13language_code_error\x18n \x01(\x0e\x32H.google.ads.googleads.v17.errors.LanguageCodeErrorEnum.LanguageCodeErrorH\x00\x12\x64\n\x12media_bundle_error\x18* \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.MediaBundleErrorEnum.MediaBundleErrorH\x00\x12\x64\n\x12media_upload_error\x18t \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.MediaUploadErrorEnum.MediaUploadErrorH\x00\x12^\n\x10media_file_error\x18V \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.MediaFileErrorEnum.MediaFileErrorH\x00\x12n\n\x15merchant_center_error\x18\xa2\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.MerchantCenterErrorEnum.MerchantCenterErrorH\x00\x12`\n\x10multiplier_error\x18, \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.MultiplierErrorEnum.MultiplierErrorH\x00\x12}\n\x1bnew_resource_creation_error\x18- \x01(\x0e\x32V.google.ads.googleads.v17.errors.NewResourceCreationErrorEnum.NewResourceCreationErrorH\x00\x12[\n\x0fnot_empty_error\x18. \x01(\x0e\x32@.google.ads.googleads.v17.errors.NotEmptyErrorEnum.NotEmptyErrorH\x00\x12N\n\nnull_error\x18/ \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.NullErrorEnum.NullErrorH\x00\x12Z\n\x0eoperator_error\x18\x30 \x01(\x0e\x32@.google.ads.googleads.v17.errors.OperatorErrorEnum.OperatorErrorH\x00\x12Q\n\x0brange_error\x18\x31 \x01(\x0e\x32:.google.ads.googleads.v17.errors.RangeErrorEnum.RangeErrorH\x00\x12l\n\x14recommendation_error\x18: \x01(\x0e\x32L.google.ads.googleads.v17.errors.RecommendationErrorEnum.RecommendationErrorH\x00\x12\x92\x01\n!recommendation_subscription_error\x18\xb4\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.RecommendationSubscriptionErrorEnum.RecommendationSubscriptionErrorH\x00\x12\x61\n\x11region_code_error\x18\x33 \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.RegionCodeErrorEnum.RegionCodeErrorH\x00\x12W\n\rsetting_error\x18\x34 \x01(\x0e\x32>.google.ads.googleads.v17.errors.SettingErrorEnum.SettingErrorH\x00\x12g\n\x13string_format_error\x18\x35 \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringFormatErrorEnum.StringFormatErrorH\x00\x12g\n\x13string_length_error\x18\x36 \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringLengthErrorEnum.StringLengthErrorH\x00\x12\x83\x01\n\x1doperation_access_denied_error\x18\x37 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedErrorH\x00\x12\x80\x01\n\x1cresource_access_denied_error\x18\x38 \x01(\x0e\x32X.google.ads.googleads.v17.errors.ResourceAccessDeniedErrorEnum.ResourceAccessDeniedErrorH\x00\x12\x93\x01\n#resource_count_limit_exceeded_error\x18\x39 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededErrorH\x00\x12\x8c\x01\n youtube_video_registration_error\x18u \x01(\x0e\x32`.google.ads.googleads.v17.errors.YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationErrorH\x00\x12{\n\x1b\x61\x64_group_bid_modifier_error\x18; \x01(\x0e\x32T.google.ads.googleads.v17.errors.AdGroupBidModifierErrorEnum.AdGroupBidModifierErrorH\x00\x12W\n\rcontext_error\x18< \x01(\x0e\x32>.google.ads.googleads.v17.errors.ContextErrorEnum.ContextErrorH\x00\x12Q\n\x0b\x66ield_error\x18= \x01(\x0e\x32:.google.ads.googleads.v17.errors.FieldErrorEnum.FieldErrorH\x00\x12^\n\x10shared_set_error\x18> \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.SharedSetErrorEnum.SharedSetErrorH\x00\x12p\n\x16shared_criterion_error\x18? \x01(\x0e\x32N.google.ads.googleads.v17.errors.SharedCriterionErrorEnum.SharedCriterionErrorH\x00\x12w\n\x19\x63\x61mpaign_shared_set_error\x18@ \x01(\x0e\x32R.google.ads.googleads.v17.errors.CampaignSharedSetErrorEnum.CampaignSharedSetErrorH\x00\x12s\n\x17\x63onversion_action_error\x18\x41 \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionActionErrorEnum.ConversionActionErrorH\x00\x12\x92\x01\n\"conversion_adjustment_upload_error\x18s \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadErrorH\x00\x12\x8d\x01\n conversion_custom_variable_error\x18\x8f\x01 \x01(\x0e\x32`.google.ads.googleads.v17.errors.ConversionCustomVariableErrorEnum.ConversionCustomVariableErrorH\x00\x12s\n\x17\x63onversion_upload_error\x18o \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionUploadErrorEnum.ConversionUploadErrorH\x00\x12~\n\x1b\x63onversion_value_rule_error\x18\x91\x01 \x01(\x0e\x32V.google.ads.googleads.v17.errors.ConversionValueRuleErrorEnum.ConversionValueRuleErrorH\x00\x12\x88\x01\n\x1f\x63onversion_value_rule_set_error\x18\x92\x01 \x01(\x0e\x32\\.google.ads.googleads.v17.errors.ConversionValueRuleSetErrorEnum.ConversionValueRuleSetErrorH\x00\x12T\n\x0cheader_error\x18\x42 \x01(\x0e\x32<.google.ads.googleads.v17.errors.HeaderErrorEnum.HeaderErrorH\x00\x12Z\n\x0e\x64\x61tabase_error\x18\x43 \x01(\x0e\x32@.google.ads.googleads.v17.errors.DatabaseErrorEnum.DatabaseErrorH\x00\x12j\n\x14policy_finding_error\x18\x44 \x01(\x0e\x32J.google.ads.googleads.v17.errors.PolicyFindingErrorEnum.PolicyFindingErrorH\x00\x12N\n\nenum_error\x18\x46 \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.EnumErrorEnum.EnumErrorH\x00\x12\x64\n\x12keyword_plan_error\x18G \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.KeywordPlanErrorEnum.KeywordPlanErrorH\x00\x12}\n\x1bkeyword_plan_campaign_error\x18H \x01(\x0e\x32V.google.ads.googleads.v17.errors.KeywordPlanCampaignErrorEnum.KeywordPlanCampaignErrorH\x00\x12\x94\x01\n#keyword_plan_campaign_keyword_error\x18\x84\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordErrorH\x00\x12{\n\x1bkeyword_plan_ad_group_error\x18J \x01(\x0e\x32T.google.ads.googleads.v17.errors.KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupErrorH\x00\x12\x92\x01\n#keyword_plan_ad_group_keyword_error\x18\x85\x01 \x01(\x0e\x32\x62.google.ads.googleads.v17.errors.KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordErrorH\x00\x12q\n\x17keyword_plan_idea_error\x18L \x01(\x0e\x32N.google.ads.googleads.v17.errors.KeywordPlanIdeaErrorEnum.KeywordPlanIdeaErrorH\x00\x12\x83\x01\n\x1d\x61\x63\x63ount_budget_proposal_error\x18M \x01(\x0e\x32Z.google.ads.googleads.v17.errors.AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorH\x00\x12[\n\x0fuser_list_error\x18N \x01(\x0e\x32@.google.ads.googleads.v17.errors.UserListErrorEnum.UserListErrorH\x00\x12\x65\n\x12\x63hange_event_error\x18\x88\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ChangeEventErrorEnum.ChangeEventErrorH\x00\x12g\n\x13\x63hange_status_error\x18O \x01(\x0e\x32H.google.ads.googleads.v17.errors.ChangeStatusErrorEnum.ChangeStatusErrorH\x00\x12N\n\nfeed_error\x18P \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.FeedErrorEnum.FeedErrorH\x00\x12\x96\x01\n$geo_target_constant_suggestion_error\x18Q \x01(\x0e\x32\x66.google.ads.googleads.v17.errors.GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionErrorH\x00\x12j\n\x14\x63\x61mpaign_draft_error\x18R \x01(\x0e\x32J.google.ads.googleads.v17.errors.CampaignDraftErrorEnum.CampaignDraftErrorH\x00\x12[\n\x0f\x66\x65\x65\x64_item_error\x18S \x01(\x0e\x32@.google.ads.googleads.v17.errors.FeedItemErrorEnum.FeedItemErrorH\x00\x12Q\n\x0blabel_error\x18T \x01(\x0e\x32:.google.ads.googleads.v17.errors.LabelErrorEnum.LabelErrorH\x00\x12g\n\x13\x62illing_setup_error\x18W \x01(\x0e\x32H.google.ads.googleads.v17.errors.BillingSetupErrorEnum.BillingSetupErrorH\x00\x12z\n\x1a\x63ustomer_client_link_error\x18X \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerClientLinkErrorEnum.CustomerClientLinkErrorH\x00\x12}\n\x1b\x63ustomer_manager_link_error\x18[ \x01(\x0e\x32V.google.ads.googleads.v17.errors.CustomerManagerLinkErrorEnum.CustomerManagerLinkErrorH\x00\x12\x64\n\x12\x66\x65\x65\x64_mapping_error\x18\\ \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.FeedMappingErrorEnum.FeedMappingErrorH\x00\x12g\n\x13\x63ustomer_feed_error\x18] \x01(\x0e\x32H.google.ads.googleads.v17.errors.CustomerFeedErrorEnum.CustomerFeedErrorH\x00\x12\x65\n\x13\x61\x64_group_feed_error\x18^ \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AdGroupFeedErrorEnum.AdGroupFeedErrorH\x00\x12g\n\x13\x63\x61mpaign_feed_error\x18` \x01(\x0e\x32H.google.ads.googleads.v17.errors.CampaignFeedErrorEnum.CampaignFeedErrorH\x00\x12m\n\x15\x63ustom_interest_error\x18\x61 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CustomInterestErrorEnum.CustomInterestErrorH\x00\x12y\n\x19\x63\x61mpaign_experiment_error\x18\x62 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CampaignExperimentErrorEnum.CampaignExperimentErrorH\x00\x12w\n\x19\x65xtension_feed_item_error\x18\x64 \x01(\x0e\x32R.google.ads.googleads.v17.errors.ExtensionFeedItemErrorEnum.ExtensionFeedItemErrorH\x00\x12\x64\n\x12\x61\x64_parameter_error\x18\x65 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AdParameterErrorEnum.AdParameterErrorH\x00\x12z\n\x1a\x66\x65\x65\x64_item_validation_error\x18\x66 \x01(\x0e\x32T.google.ads.googleads.v17.errors.FeedItemValidationErrorEnum.FeedItemValidationErrorH\x00\x12s\n\x17\x65xtension_setting_error\x18g \x01(\x0e\x32P.google.ads.googleads.v17.errors.ExtensionSettingErrorEnum.ExtensionSettingErrorH\x00\x12\x66\n\x13\x66\x65\x65\x64_item_set_error\x18\x8c\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.FeedItemSetErrorEnum.FeedItemSetErrorH\x00\x12s\n\x18\x66\x65\x65\x64_item_set_link_error\x18\x8d\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.FeedItemSetLinkErrorEnum.FeedItemSetLinkErrorH\x00\x12n\n\x16\x66\x65\x65\x64_item_target_error\x18h \x01(\x0e\x32L.google.ads.googleads.v17.errors.FeedItemTargetErrorEnum.FeedItemTargetErrorH\x00\x12p\n\x16policy_violation_error\x18i \x01(\x0e\x32N.google.ads.googleads.v17.errors.PolicyViolationErrorEnum.PolicyViolationErrorH\x00\x12m\n\x15partial_failure_error\x18p \x01(\x0e\x32L.google.ads.googleads.v17.errors.PartialFailureErrorEnum.PartialFailureErrorH\x00\x12\x8f\x01\n!policy_validation_parameter_error\x18r \x01(\x0e\x32\x62.google.ads.googleads.v17.errors.PolicyValidationParameterErrorEnum.PolicyValidationParameterErrorH\x00\x12^\n\x10size_limit_error\x18v \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.SizeLimitErrorEnum.SizeLimitErrorH\x00\x12{\n\x1boffline_user_data_job_error\x18w \x01(\x0e\x32T.google.ads.googleads.v17.errors.OfflineUserDataJobErrorEnum.OfflineUserDataJobErrorH\x00\x12n\n\x15not_allowlisted_error\x18\x89\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.NotAllowlistedErrorEnum.NotAllowlistedErrorH\x00\x12\x64\n\x12manager_link_error\x18y \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ManagerLinkErrorEnum.ManagerLinkErrorH\x00\x12g\n\x13\x63urrency_code_error\x18z \x01(\x0e\x32H.google.ads.googleads.v17.errors.CurrencyCodeErrorEnum.CurrencyCodeErrorH\x00\x12`\n\x10\x65xperiment_error\x18{ \x01(\x0e\x32\x44.google.ads.googleads.v17.errors.ExperimentErrorEnum.ExperimentErrorH\x00\x12s\n\x17\x61\x63\x63\x65ss_invitation_error\x18| \x01(\x0e\x32P.google.ads.googleads.v17.errors.AccessInvitationErrorEnum.AccessInvitationErrorH\x00\x12^\n\x10reach_plan_error\x18} \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.ReachPlanErrorEnum.ReachPlanErrorH\x00\x12W\n\rinvoice_error\x18~ \x01(\x0e\x32>.google.ads.googleads.v17.errors.InvoiceErrorEnum.InvoiceErrorH\x00\x12p\n\x16payments_account_error\x18\x7f \x01(\x0e\x32N.google.ads.googleads.v17.errors.PaymentsAccountErrorEnum.PaymentsAccountErrorH\x00\x12\\\n\x0ftime_zone_error\x18\x80\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.TimeZoneErrorEnum.TimeZoneErrorH\x00\x12_\n\x10\x61sset_link_error\x18\x81\x01 \x01(\x0e\x32\x42.google.ads.googleads.v17.errors.AssetLinkErrorEnum.AssetLinkErrorH\x00\x12\\\n\x0fuser_data_error\x18\x82\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.UserDataErrorEnum.UserDataErrorH\x00\x12\\\n\x0f\x62\x61tch_job_error\x18\x83\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.BatchJobErrorEnum.BatchJobErrorH\x00\x12\x65\n\x12\x61\x63\x63ount_link_error\x18\x86\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.AccountLinkErrorEnum.AccountLinkErrorH\x00\x12\x95\x01\n$third_party_app_analytics_link_error\x18\x87\x01 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkErrorH\x00\x12{\n\x1a\x63ustomer_user_access_error\x18\x8a\x01 \x01(\x0e\x32T.google.ads.googleads.v17.errors.CustomerUserAccessErrorEnum.CustomerUserAccessErrorH\x00\x12n\n\x15\x63ustom_audience_error\x18\x8b\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CustomAudienceErrorEnum.CustomAudienceErrorH\x00\x12[\n\x0e\x61udience_error\x18\xa4\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.AudienceErrorEnum.AudienceErrorH\x00\x12x\n\x19search_term_insight_error\x18\xae\x01 \x01(\x0e\x32R.google.ads.googleads.v17.errors.SearchTermInsightErrorEnum.SearchTermInsightErrorH\x00\x12k\n\x14smart_campaign_error\x18\x93\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.SmartCampaignErrorEnum.SmartCampaignErrorH\x00\x12k\n\x14\x65xperiment_arm_error\x18\x9c\x01 \x01(\x0e\x32J.google.ads.googleads.v17.errors.ExperimentArmErrorEnum.ExperimentArmErrorH\x00\x12t\n\x17\x61udience_insights_error\x18\xa7\x01 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AudienceInsightsErrorEnum.AudienceInsightsErrorH\x00\x12\x65\n\x12product_link_error\x18\xa9\x01 \x01(\x0e\x32\x46.google.ads.googleads.v17.errors.ProductLinkErrorEnum.ProductLinkErrorH\x00\x12\xc2\x01\n4customer_sk_ad_network_conversion_value_schema_error\x18\xaa\x01 \x01(\x0e\x32\x80\x01.google.ads.googleads.v17.errors.CustomerSkAdNetworkConversionValueSchemaErrorEnum.CustomerSkAdNetworkConversionValueSchemaErrorH\x00\x12[\n\x0e\x63urrency_error\x18\xab\x01 \x01(\x0e\x32@.google.ads.googleads.v17.errors.CurrencyErrorEnum.CurrencyErrorH\x00\x12u\n\x18\x61sset_group_signal_error\x18\xb0\x01 \x01(\x0e\x32P.google.ads.googleads.v17.errors.AssetGroupSignalErrorEnum.AssetGroupSignalErrorH\x00\x12\x84\x01\n\x1dproduct_link_invitation_error\x18\xb1\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.ProductLinkInvitationErrorEnum.ProductLinkInvitationErrorH\x00\x12\x84\x01\n\x1d\x63ustomer_lifecycle_goal_error\x18\xb2\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.CustomerLifecycleGoalErrorEnum.CustomerLifecycleGoalErrorH\x00\x12\x84\x01\n\x1d\x63\x61mpaign_lifecycle_goal_error\x18\xb3\x01 \x01(\x0e\x32Z.google.ads.googleads.v17.errors.CampaignLifecycleGoalErrorEnum.CampaignLifecycleGoalErrorH\x00\x12\x80\x01\n\x1bidentity_verification_error\x18\xb5\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.IdentityVerificationErrorEnum.IdentityVerificationErrorH\x00\x12\x82\x01\n\x1duser_list_customer_type_error\x18\xb7\x01 \x01(\x0e\x32X.google.ads.googleads.v17.errors.UserListCustomerTypeErrorEnum.UserListCustomerTypeErrorH\x00\x12q\n\x16shopping_product_error\x18\xb8\x01 \x01(\x0e\x32N.google.ads.googleads.v17.errors.ShoppingProductErrorEnum.ShoppingProductErrorH\x00\x12\xa6\x01\n)automatically_created_asset_removal_error\x18\xb9\x01 \x01(\x0e\x32p.google.ads.googleads.v17.errors.AutomaticallyCreatedAssetRemovalErrorEnum.AutomaticallyCreatedAssetRemovalErrorH\x00\x12t\n\x17shareable_preview_error\x18\xba\x01 \x01(\x0e\x32P.google.ads.googleads.v17.errors.ShareablePreviewErrorEnum.ShareablePreviewErrorH\x00\x42\x0c\n\nerror_code\"\xb3\x01\n\rErrorLocation\x12\\\n\x13\x66ield_path_elements\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v17.errors.ErrorLocation.FieldPathElement\x1a\x44\n\x10\x46ieldPathElement\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x12\n\x05index\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_index\"\x88\x03\n\x0c\x45rrorDetails\x12\x1e\n\x16unpublished_error_code\x18\x01 \x01(\t\x12Y\n\x18policy_violation_details\x18\x02 \x01(\x0b\x32\x37.google.ads.googleads.v17.errors.PolicyViolationDetails\x12U\n\x16policy_finding_details\x18\x03 \x01(\x0b\x32\x35.google.ads.googleads.v17.errors.PolicyFindingDetails\x12O\n\x13quota_error_details\x18\x04 \x01(\x0b\x32\x32.google.ads.googleads.v17.errors.QuotaErrorDetails\x12U\n\x16resource_count_details\x18\x05 \x01(\x0b\x32\x35.google.ads.googleads.v17.errors.ResourceCountDetails\"\xb4\x01\n\x16PolicyViolationDetails\x12#\n\x1b\x65xternal_policy_description\x18\x02 \x01(\t\x12@\n\x03key\x18\x04 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.PolicyViolationKey\x12\x1c\n\x14\x65xternal_policy_name\x18\x05 \x01(\t\x12\x15\n\ris_exemptible\x18\x06 \x01(\x08\"g\n\x14PolicyFindingDetails\x12O\n\x14policy_topic_entries\x18\x01 \x03(\x0b\x32\x31.google.ads.googleads.v17.common.PolicyTopicEntry\"\xf9\x01\n\x11QuotaErrorDetails\x12U\n\nrate_scope\x18\x01 \x01(\x0e\x32\x41.google.ads.googleads.v17.errors.QuotaErrorDetails.QuotaRateScope\x12\x11\n\trate_name\x18\x02 \x01(\t\x12.\n\x0bretry_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"J\n\x0eQuotaRateScope\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x41\x43\x43OUNT\x10\x02\x12\r\n\tDEVELOPER\x10\x03\"\xcc\x01\n\x14ResourceCountDetails\x12\x14\n\x0c\x65nclosing_id\x18\x01 \x01(\t\x12\x1a\n\x12\x65nclosing_resource\x18\x05 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12[\n\nlimit_type\x18\x03 \x01(\x0e\x32G.google.ads.googleads.v17.enums.ResourceLimitTypeEnum.ResourceLimitType\x12\x16\n\x0e\x65xisting_count\x18\x04 \x01(\x05\x42\xeb\x01\n#com.google.ads.googleads.v17.errorsB\x0b\x45rrorsProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Errors\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Errors\xea\x02#Google::Ads::GoogleAds::V17::Errorsb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/errors/shareable_preview_error_pb.rb b/lib/google/ads/google_ads/v17/errors/shareable_preview_error_pb.rb
new file mode 100644
index 00000000..1743fe78
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/errors/shareable_preview_error_pb.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/errors/shareable_preview_error.proto
+
+require 'google/protobuf'
+
+
+descriptor_data = "\n=google/ads/googleads/v17/errors/shareable_preview_error.proto\x12\x1fgoogle.ads.googleads.v17.errors\"\xad\x01\n\x19ShareablePreviewErrorEnum\"\x8f\x01\n\x15ShareablePreviewError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12$\n TOO_MANY_ASSET_GROUPS_IN_REQUEST\x10\x02\x12\x32\n.ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER\x10\x03\x42\xfa\x01\n#com.google.ads.googleads.v17.errorsB\x1aShareablePreviewErrorProtoP\x01ZEgoogle.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors\xa2\x02\x03GAA\xaa\x02\x1fGoogle.Ads.GoogleAds.V17.Errors\xca\x02\x1fGoogle\\Ads\\GoogleAds\\V17\\Errors\xea\x02#Google::Ads::GoogleAds::V17::Errorsb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Errors
+          ShareablePreviewErrorEnum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.errors.ShareablePreviewErrorEnum").msgclass
+          ShareablePreviewErrorEnum::ShareablePreviewError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.errors.ShareablePreviewErrorEnum.ShareablePreviewError").enummodule
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/resources/ad_group_pb.rb b/lib/google/ads/google_ads/v17/resources/ad_group_pb.rb
index aac454ad..96bb76e3 100644
--- a/lib/google/ads/google_ads/v17/resources/ad_group_pb.rb
+++ b/lib/google/ads/google_ads/v17/resources/ad_group_pb.rb
@@ -19,7 +19,7 @@
 require 'google/api/resource_pb'
 
 
-descriptor_data = "\n1google/ads/googleads/v17/resources/ad_group.proto\x12\"google.ads.googleads.v17.resources\x1a\x36google/ads/googleads/v17/common/custom_parameter.proto\x1a\x37google/ads/googleads/v17/common/targeting_setting.proto\x1a>google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto\x1a<google/ads/googleads/v17/enums/ad_group_primary_status.proto\x1a\x43google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto\x1a\x34google/ads/googleads/v17/enums/ad_group_status.proto\x1a\x32google/ads/googleads/v17/enums/ad_group_type.proto\x1a\x35google/ads/googleads/v17/enums/asset_field_type.proto\x1a\x33google/ads/googleads/v17/enums/asset_set_type.proto\x1a\x33google/ads/googleads/v17/enums/bidding_source.proto\x1a\x38google/ads/googleads/v17/enums/targeting_dimension.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xdf\x13\n\x07\x41\x64Group\x12?\n\rresource_name\x18\x01 \x01(\tB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroup\x12\x14\n\x02id\x18\" \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x11\n\x04name\x18# \x01(\tH\x01\x88\x01\x01\x12O\n\x06status\x18\x05 \x01(\x0e\x32?.google.ads.googleads.v17.enums.AdGroupStatusEnum.AdGroupStatus\x12N\n\x04type\x18\x0c \x01(\x0e\x32;.google.ads.googleads.v17.enums.AdGroupTypeEnum.AdGroupTypeB\x03\xe0\x41\x05\x12i\n\x10\x61\x64_rotation_mode\x18\x16 \x01(\x0e\x32O.google.ads.googleads.v17.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode\x12\x44\n\rbase_ad_group\x18$ \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12\"\n\x15tracking_url_template\x18% \x01(\tH\x03\x88\x01\x01\x12O\n\x15url_custom_parameters\x18\x06 \x03(\x0b\x32\x30.google.ads.googleads.v17.common.CustomParameter\x12@\n\x08\x63\x61mpaign\x18& \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/CampaignH\x04\x88\x01\x01\x12\x1b\n\x0e\x63pc_bid_micros\x18\' \x01(\x03H\x05\x88\x01\x01\x12*\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_micros\x18\x39 \x01(\x03\x42\x03\xe0\x41\x03H\x06\x88\x01\x01\x12\x1b\n\x0e\x63pm_bid_micros\x18( \x01(\x03H\x07\x88\x01\x01\x12\x1e\n\x11target_cpa_micros\x18) \x01(\x03H\x08\x88\x01\x01\x12\x1b\n\x0e\x63pv_bid_micros\x18* \x01(\x03H\t\x88\x01\x01\x12\x1e\n\x11target_cpm_micros\x18+ \x01(\x03H\n\x88\x01\x01\x12\x18\n\x0btarget_roas\x18, \x01(\x01H\x0b\x88\x01\x01\x12#\n\x16percent_cpc_bid_micros\x18- \x01(\x03H\x0c\x88\x01\x01\x12#\n\x1boptimized_targeting_enabled\x18; \x01(\x08\x12o\n\x1c\x64isplay_custom_bid_dimension\x18\x17 \x01(\x0e\x32I.google.ads.googleads.v17.enums.TargetingDimensionEnum.TargetingDimension\x12\x1d\n\x10\x66inal_url_suffix\x18. \x01(\tH\r\x88\x01\x01\x12L\n\x11targeting_setting\x18\x19 \x01(\x0b\x32\x31.google.ads.googleads.v17.common.TargetingSetting\x12Z\n\x10\x61udience_setting\x18\x38 \x01(\x0b\x32;.google.ads.googleads.v17.resources.AdGroup.AudienceSettingB\x03\xe0\x41\x05\x12-\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_micros\x18/ \x01(\x03\x42\x03\xe0\x41\x03H\x0e\x88\x01\x01\x12i\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_source\x18\x1d \x01(\x0e\x32?.google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\'\n\x15\x65\x66\x66\x65\x63tive_target_roas\x18\x30 \x01(\x01\x42\x03\xe0\x41\x03H\x0f\x88\x01\x01\x12j\n\x1c\x65\x66\x66\x65\x63tive_target_roas_source\x18  \x01(\x0e\x32?.google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12=\n\x06labels\x18\x31 \x03(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/AdGroupLabel\x12l\n!excluded_parent_asset_field_types\x18\x36 \x03(\x0e\x32\x41.google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType\x12\x66\n\x1f\x65xcluded_parent_asset_set_types\x18: \x03(\x0e\x32=.google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType\x12j\n\x0eprimary_status\x18> \x01(\x0e\x32M.google.ads.googleads.v17.enums.AdGroupPrimaryStatusEnum.AdGroupPrimaryStatusB\x03\xe0\x41\x03\x12~\n\x16primary_status_reasons\x18? \x03(\x0e\x32Y.google.ads.googleads.v17.enums.AdGroupPrimaryStatusReasonEnum.AdGroupPrimaryStatusReasonB\x03\xe0\x41\x03\x1a\x34\n\x0f\x41udienceSetting\x12!\n\x14use_audience_grouped\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05:U\xea\x41R\n googleads.googleapis.com/AdGroup\x12.customers/{customer_id}/adGroups/{ad_group_id}B\x05\n\x03_idB\x07\n\x05_nameB\x10\n\x0e_base_ad_groupB\x18\n\x16_tracking_url_templateB\x0b\n\t_campaignB\x11\n\x0f_cpc_bid_microsB\x1b\n\x19_effective_cpc_bid_microsB\x11\n\x0f_cpm_bid_microsB\x14\n\x12_target_cpa_microsB\x11\n\x0f_cpv_bid_microsB\x14\n\x12_target_cpm_microsB\x0e\n\x0c_target_roasB\x19\n\x17_percent_cpc_bid_microsB\x13\n\x11_final_url_suffixB\x1e\n\x1c_effective_target_cpa_microsB\x18\n\x16_effective_target_roasB\xfe\x01\n&com.google.ads.googleads.v17.resourcesB\x0c\x41\x64GroupProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
+descriptor_data = "\n1google/ads/googleads/v17/resources/ad_group.proto\x12\"google.ads.googleads.v17.resources\x1a\x36google/ads/googleads/v17/common/custom_parameter.proto\x1a\x37google/ads/googleads/v17/common/targeting_setting.proto\x1a>google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto\x1a<google/ads/googleads/v17/enums/ad_group_primary_status.proto\x1a\x43google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto\x1a\x34google/ads/googleads/v17/enums/ad_group_status.proto\x1a\x32google/ads/googleads/v17/enums/ad_group_type.proto\x1a\x35google/ads/googleads/v17/enums/asset_field_type.proto\x1a\x33google/ads/googleads/v17/enums/asset_set_type.proto\x1a\x33google/ads/googleads/v17/enums/bidding_source.proto\x1a\x38google/ads/googleads/v17/enums/targeting_dimension.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xc9\x14\n\x07\x41\x64Group\x12?\n\rresource_name\x18\x01 \x01(\tB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroup\x12\x14\n\x02id\x18\" \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x11\n\x04name\x18# \x01(\tH\x01\x88\x01\x01\x12O\n\x06status\x18\x05 \x01(\x0e\x32?.google.ads.googleads.v17.enums.AdGroupStatusEnum.AdGroupStatus\x12N\n\x04type\x18\x0c \x01(\x0e\x32;.google.ads.googleads.v17.enums.AdGroupTypeEnum.AdGroupTypeB\x03\xe0\x41\x05\x12i\n\x10\x61\x64_rotation_mode\x18\x16 \x01(\x0e\x32O.google.ads.googleads.v17.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode\x12\x44\n\rbase_ad_group\x18$ \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12\"\n\x15tracking_url_template\x18% \x01(\tH\x03\x88\x01\x01\x12O\n\x15url_custom_parameters\x18\x06 \x03(\x0b\x32\x30.google.ads.googleads.v17.common.CustomParameter\x12@\n\x08\x63\x61mpaign\x18& \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/CampaignH\x04\x88\x01\x01\x12\x1b\n\x0e\x63pc_bid_micros\x18\' \x01(\x03H\x05\x88\x01\x01\x12*\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_micros\x18\x39 \x01(\x03\x42\x03\xe0\x41\x03H\x06\x88\x01\x01\x12\x1b\n\x0e\x63pm_bid_micros\x18( \x01(\x03H\x07\x88\x01\x01\x12\x1e\n\x11target_cpa_micros\x18) \x01(\x03H\x08\x88\x01\x01\x12\x1b\n\x0e\x63pv_bid_micros\x18* \x01(\x03H\t\x88\x01\x01\x12\x1e\n\x11target_cpm_micros\x18+ \x01(\x03H\n\x88\x01\x01\x12\x18\n\x0btarget_roas\x18, \x01(\x01H\x0b\x88\x01\x01\x12#\n\x16percent_cpc_bid_micros\x18- \x01(\x03H\x0c\x88\x01\x01\x12\x1d\n\x10\x66ixed_cpm_micros\x18@ \x01(\x03H\r\x88\x01\x01\x12\x1e\n\x11target_cpv_micros\x18\x41 \x01(\x03H\x0e\x88\x01\x01\x12#\n\x1boptimized_targeting_enabled\x18; \x01(\x08\x12o\n\x1c\x64isplay_custom_bid_dimension\x18\x17 \x01(\x0e\x32I.google.ads.googleads.v17.enums.TargetingDimensionEnum.TargetingDimension\x12\x1d\n\x10\x66inal_url_suffix\x18. \x01(\tH\x0f\x88\x01\x01\x12L\n\x11targeting_setting\x18\x19 \x01(\x0b\x32\x31.google.ads.googleads.v17.common.TargetingSetting\x12Z\n\x10\x61udience_setting\x18\x38 \x01(\x0b\x32;.google.ads.googleads.v17.resources.AdGroup.AudienceSettingB\x03\xe0\x41\x05\x12-\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_micros\x18/ \x01(\x03\x42\x03\xe0\x41\x03H\x10\x88\x01\x01\x12i\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_source\x18\x1d \x01(\x0e\x32?.google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\'\n\x15\x65\x66\x66\x65\x63tive_target_roas\x18\x30 \x01(\x01\x42\x03\xe0\x41\x03H\x11\x88\x01\x01\x12j\n\x1c\x65\x66\x66\x65\x63tive_target_roas_source\x18  \x01(\x0e\x32?.google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12=\n\x06labels\x18\x31 \x03(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/AdGroupLabel\x12l\n!excluded_parent_asset_field_types\x18\x36 \x03(\x0e\x32\x41.google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType\x12\x66\n\x1f\x65xcluded_parent_asset_set_types\x18: \x03(\x0e\x32=.google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType\x12j\n\x0eprimary_status\x18> \x01(\x0e\x32M.google.ads.googleads.v17.enums.AdGroupPrimaryStatusEnum.AdGroupPrimaryStatusB\x03\xe0\x41\x03\x12~\n\x16primary_status_reasons\x18? \x03(\x0e\x32Y.google.ads.googleads.v17.enums.AdGroupPrimaryStatusReasonEnum.AdGroupPrimaryStatusReasonB\x03\xe0\x41\x03\x1a\x34\n\x0f\x41udienceSetting\x12!\n\x14use_audience_grouped\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05:U\xea\x41R\n googleads.googleapis.com/AdGroup\x12.customers/{customer_id}/adGroups/{ad_group_id}B\x05\n\x03_idB\x07\n\x05_nameB\x10\n\x0e_base_ad_groupB\x18\n\x16_tracking_url_templateB\x0b\n\t_campaignB\x11\n\x0f_cpc_bid_microsB\x1b\n\x19_effective_cpc_bid_microsB\x11\n\x0f_cpm_bid_microsB\x14\n\x12_target_cpa_microsB\x11\n\x0f_cpv_bid_microsB\x14\n\x12_target_cpm_microsB\x0e\n\x0c_target_roasB\x19\n\x17_percent_cpc_bid_microsB\x13\n\x11_fixed_cpm_microsB\x14\n\x12_target_cpv_microsB\x13\n\x11_final_url_suffixB\x1e\n\x1c_effective_target_cpa_microsB\x18\n\x16_effective_target_roasB\xfe\x01\n&com.google.ads.googleads.v17.resourcesB\x0c\x41\x64GroupProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/resources/campaign_pb.rb b/lib/google/ads/google_ads/v17/resources/campaign_pb.rb
index b10b7f91..1e7ea92b 100644
--- a/lib/google/ads/google_ads/v17/resources/campaign_pb.rb
+++ b/lib/google/ads/google_ads/v17/resources/campaign_pb.rb
@@ -40,7 +40,7 @@
 require 'google/api/resource_pb'
 
 
-descriptor_data = "\n1google/ads/googleads/v17/resources/campaign.proto\x12\"google.ads.googleads.v17.resources\x1a-google/ads/googleads/v17/common/bidding.proto\x1a\x36google/ads/googleads/v17/common/custom_parameter.proto\x1a\x33google/ads/googleads/v17/common/frequency_cap.proto\x1a?google/ads/googleads/v17/common/real_time_bidding_setting.proto\x1a\x37google/ads/googleads/v17/common/targeting_setting.proto\x1a\x43google/ads/googleads/v17/enums/ad_serving_optimization_status.proto\x1a\x41google/ads/googleads/v17/enums/advertising_channel_sub_type.proto\x1a=google/ads/googleads/v17/enums/advertising_channel_type.proto\x1a;google/ads/googleads/v17/enums/app_campaign_app_store.proto\x1aLgoogle/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto\x1a<google/ads/googleads/v17/enums/asset_automation_status.proto\x1a:google/ads/googleads/v17/enums/asset_automation_type.proto\x1a\x35google/ads/googleads/v17/enums/asset_field_type.proto\x1a\x33google/ads/googleads/v17/enums/asset_set_type.proto\x1a\x43google/ads/googleads/v17/enums/bidding_strategy_system_status.proto\x1a:google/ads/googleads/v17/enums/bidding_strategy_type.proto\x1a=google/ads/googleads/v17/enums/brand_safety_suitability.proto\x1a=google/ads/googleads/v17/enums/campaign_experiment_type.proto\x1a@google/ads/googleads/v17/enums/campaign_keyword_match_type.proto\x1a<google/ads/googleads/v17/enums/campaign_primary_status.proto\x1a\x43google/ads/googleads/v17/enums/campaign_primary_status_reason.proto\x1a<google/ads/googleads/v17/enums/campaign_serving_status.proto\x1a\x34google/ads/googleads/v17/enums/campaign_status.proto\x1a\x31google/ads/googleads/v17/enums/listing_type.proto\x1a\x39google/ads/googleads/v17/enums/location_source_type.proto\x1a=google/ads/googleads/v17/enums/negative_geo_target_type.proto\x1a;google/ads/googleads/v17/enums/optimization_goal_type.proto\x1a\x31google/ads/googleads/v17/enums/payment_mode.proto\x1a\x43google/ads/googleads/v17/enums/performance_max_upgrade_status.proto\x1a=google/ads/googleads/v17/enums/positive_geo_target_type.proto\x1a\x43google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto\x1a\x37google/ads/googleads/v17/enums/vanity_pharma_text.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xecH\n\x08\x43\x61mpaign\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/Campaign\x12\x14\n\x02id\x18; \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x11\n\x04name\x18: \x01(\tH\x02\x88\x01\x01\x12l\n\x0eprimary_status\x18Q \x01(\x0e\x32O.google.ads.googleads.v17.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatusB\x03\xe0\x41\x03\x12\x80\x01\n\x16primary_status_reasons\x18R \x03(\x0e\x32[.google.ads.googleads.v17.enums.CampaignPrimaryStatusReasonEnum.CampaignPrimaryStatusReasonB\x03\xe0\x41\x03\x12Q\n\x06status\x18\x05 \x01(\x0e\x32\x41.google.ads.googleads.v17.enums.CampaignStatusEnum.CampaignStatus\x12l\n\x0eserving_status\x18\x15 \x01(\x0e\x32O.google.ads.googleads.v17.enums.CampaignServingStatusEnum.CampaignServingStatusB\x03\xe0\x41\x03\x12\x88\x01\n\x1e\x62idding_strategy_system_status\x18N \x01(\x0e\x32[.google.ads.googleads.v17.enums.BiddingStrategySystemStatusEnum.BiddingStrategySystemStatusB\x03\xe0\x41\x03\x12\x83\x01\n\x1e\x61\x64_serving_optimization_status\x18\x08 \x01(\x0e\x32[.google.ads.googleads.v17.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus\x12x\n\x18\x61\x64vertising_channel_type\x18\t \x01(\x0e\x32Q.google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum.AdvertisingChannelTypeB\x03\xe0\x41\x05\x12\x82\x01\n\x1c\x61\x64vertising_channel_sub_type\x18\n \x01(\x0e\x32W.google.ads.googleads.v17.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubTypeB\x03\xe0\x41\x05\x12\"\n\x15tracking_url_template\x18< \x01(\tH\x03\x88\x01\x01\x12O\n\x15url_custom_parameters\x18\x0c \x03(\x0b\x32\x30.google.ads.googleads.v17.common.CustomParameter\x12t\n local_services_campaign_settings\x18K \x01(\x0b\x32J.google.ads.googleads.v17.resources.Campaign.LocalServicesCampaignSettings\x12\x65\n\x18travel_campaign_settings\x18U \x01(\x0b\x32\x43.google.ads.googleads.v17.resources.Campaign.TravelCampaignSettings\x12l\n\x1c\x64\x65mand_gen_campaign_settings\x18[ \x01(\x0b\x32\x46.google.ads.googleads.v17.resources.Campaign.DemandGenCampaignSettings\x12Z\n\x19real_time_bidding_setting\x18\' \x01(\x0b\x32\x37.google.ads.googleads.v17.common.RealTimeBiddingSetting\x12V\n\x10network_settings\x18\x0e \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.NetworkSettings\x12Y\n\rhotel_setting\x18  \x01(\x0b\x32=.google.ads.googleads.v17.resources.Campaign.HotelSettingInfoB\x03\xe0\x41\x05\x12h\n\x1a\x64ynamic_search_ads_setting\x18! \x01(\x0b\x32\x44.google.ads.googleads.v17.resources.Campaign.DynamicSearchAdsSetting\x12V\n\x10shopping_setting\x18$ \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.ShoppingSetting\x12L\n\x11targeting_setting\x18+ \x01(\x0b\x32\x31.google.ads.googleads.v17.common.TargetingSetting\x12`\n\x10\x61udience_setting\x18I \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.AudienceSettingB\x03\xe0\x41\x05H\x04\x88\x01\x01\x12\x62\n\x17geo_target_type_setting\x18/ \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.Campaign.GeoTargetTypeSetting\x12\x61\n\x16local_campaign_setting\x18\x32 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.Campaign.LocalCampaignSetting\x12]\n\x14\x61pp_campaign_setting\x18\x33 \x01(\x0b\x32?.google.ads.googleads.v17.resources.Campaign.AppCampaignSetting\x12>\n\x06labels\x18= \x03(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CampaignLabel\x12o\n\x0f\x65xperiment_type\x18\x11 \x01(\x0e\x32Q.google.ads.googleads.v17.enums.CampaignExperimentTypeEnum.CampaignExperimentTypeB\x03\xe0\x41\x03\x12\x45\n\rbase_campaign\x18\x38 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x05\x88\x01\x01\x12J\n\x0f\x63\x61mpaign_budget\x18> \x01(\tB,\xfa\x41)\n\'googleads.googleapis.com/CampaignBudgetH\x06\x88\x01\x01\x12o\n\x15\x62idding_strategy_type\x18\x16 \x01(\x0e\x32K.google.ads.googleads.v17.enums.BiddingStrategyTypeEnum.BiddingStrategyTypeB\x03\xe0\x41\x03\x12_\n\x1b\x61\x63\x63\x65ssible_bidding_strategy\x18G \x01(\tB:\xe0\x41\x03\xfa\x41\x34\n2googleads.googleapis.com/AccessibleBiddingStrategy\x12\x17\n\nstart_date\x18? \x01(\tH\x07\x88\x01\x01\x12H\n\x0e\x63\x61mpaign_group\x18L \x01(\tB+\xfa\x41(\n&googleads.googleapis.com/CampaignGroupH\x08\x88\x01\x01\x12\x15\n\x08\x65nd_date\x18@ \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10\x66inal_url_suffix\x18\x41 \x01(\tH\n\x88\x01\x01\x12J\n\x0e\x66requency_caps\x18( \x03(\x0b\x32\x32.google.ads.googleads.v17.common.FrequencyCapEntry\x12y\n\x1evideo_brand_safety_suitability\x18* \x01(\x0e\x32Q.google.ads.googleads.v17.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability\x12P\n\rvanity_pharma\x18, \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.Campaign.VanityPharma\x12\x62\n\x16selective_optimization\x18- \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.Campaign.SelectiveOptimization\x12g\n\x19optimization_goal_setting\x18\x36 \x01(\x0b\x32\x44.google.ads.googleads.v17.resources.Campaign.OptimizationGoalSetting\x12[\n\x10tracking_setting\x18. \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.TrackingSettingB\x03\xe0\x41\x03\x12Q\n\x0cpayment_mode\x18\x34 \x01(\x0e\x32;.google.ads.googleads.v17.enums.PaymentModeEnum.PaymentMode\x12$\n\x12optimization_score\x18\x42 \x01(\x01\x42\x03\xe0\x41\x03H\x0b\x88\x01\x01\x12l\n!excluded_parent_asset_field_types\x18\x45 \x03(\x0e\x32\x41.google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType\x12\x66\n\x1f\x65xcluded_parent_asset_set_types\x18P \x03(\x0e\x32=.google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType\x12\"\n\x15url_expansion_opt_out\x18H \x01(\x08H\x0c\x88\x01\x01\x12h\n\x17performance_max_upgrade\x18M \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.Campaign.PerformanceMaxUpgradeB\x03\xe0\x41\x03\x12P\n\x18hotel_property_asset_set\x18S \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/AssetSetH\r\x88\x01\x01\x12[\n\x0clisting_type\x18V \x01(\x0e\x32;.google.ads.googleads.v17.enums.ListingTypeEnum.ListingTypeB\x03\xe0\x41\x05H\x0e\x88\x01\x01\x12\x66\n\x19\x61sset_automation_settings\x18X \x03(\x0b\x32\x43.google.ads.googleads.v17.resources.Campaign.AssetAutomationSetting\x12q\n\x12keyword_match_type\x18Z \x01(\x0e\x32U.google.ads.googleads.v17.enums.CampaignKeywordMatchTypeEnum.CampaignKeywordMatchType\x12I\n\x10\x62idding_strategy\x18\x43 \x01(\tB-\xfa\x41*\n(googleads.googleapis.com/BiddingStrategyH\x00\x12\x41\n\ncommission\x18\x31 \x01(\x0b\x32+.google.ads.googleads.v17.common.CommissionH\x00\x12@\n\nmanual_cpa\x18J \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpaH\x00\x12@\n\nmanual_cpc\x18\x18 \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpcH\x00\x12@\n\nmanual_cpm\x18\x19 \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpmH\x00\x12@\n\nmanual_cpv\x18% \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpvH\x00\x12T\n\x14maximize_conversions\x18\x1e \x01(\x0b\x32\x34.google.ads.googleads.v17.common.MaximizeConversionsH\x00\x12]\n\x19maximize_conversion_value\x18\x1f \x01(\x0b\x32\x38.google.ads.googleads.v17.common.MaximizeConversionValueH\x00\x12@\n\ntarget_cpa\x18\x1a \x01(\x0b\x32*.google.ads.googleads.v17.common.TargetCpaH\x00\x12Y\n\x17target_impression_share\x18\x30 \x01(\x0b\x32\x36.google.ads.googleads.v17.common.TargetImpressionShareH\x00\x12\x42\n\x0btarget_roas\x18\x1d \x01(\x0b\x32+.google.ads.googleads.v17.common.TargetRoasH\x00\x12\x44\n\x0ctarget_spend\x18\x1b \x01(\x0b\x32,.google.ads.googleads.v17.common.TargetSpendH\x00\x12\x42\n\x0bpercent_cpc\x18\" \x01(\x0b\x32+.google.ads.googleads.v17.common.PercentCpcH\x00\x12@\n\ntarget_cpm\x18) \x01(\x0b\x32*.google.ads.googleads.v17.common.TargetCpmH\x00\x1a\x9f\x02\n\x15PerformanceMaxUpgrade\x12K\n\x18performance_max_campaign\x18\x01 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/Campaign\x12G\n\x14pre_upgrade_campaign\x18\x02 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/Campaign\x12p\n\x06status\x18\x03 \x01(\x0e\x32[.google.ads.googleads.v17.enums.PerformanceMaxUpgradeStatusEnum.PerformanceMaxUpgradeStatusB\x03\xe0\x41\x03\x1a\x8d\x03\n\x0fNetworkSettings\x12!\n\x14target_google_search\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15target_search_network\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12#\n\x16target_content_network\x18\x07 \x01(\x08H\x02\x88\x01\x01\x12*\n\x1dtarget_partner_search_network\x18\x08 \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\x0etarget_youtube\x18\t \x01(\x08H\x04\x88\x01\x01\x12%\n\x18target_google_tv_network\x18\n \x01(\x08H\x05\x88\x01\x01\x42\x17\n\x15_target_google_searchB\x18\n\x16_target_search_networkB\x19\n\x17_target_content_networkB \n\x1e_target_partner_search_networkB\x11\n\x0f_target_youtubeB\x1b\n\x19_target_google_tv_network\x1aI\n\x10HotelSettingInfo\x12!\n\x0fhotel_center_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x12\n\x10_hotel_center_id\x1a\xc2\x01\n\x17\x44ynamicSearchAdsSetting\x12\x18\n\x0b\x64omain_name\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rlanguage_code\x18\x07 \x01(\tB\x03\xe0\x41\x02\x12#\n\x16use_supplied_urls_only\x18\x08 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\x05\x66\x65\x65\x64s\x18\t \x03(\tB\"\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/FeedB\x19\n\x17_use_supplied_urls_only\x1a\xb7\x02\n\x0fShoppingSetting\x12\x18\n\x0bmerchant_id\x18\x05 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\nfeed_label\x18\n \x01(\t\x12\x1e\n\x11\x63\x61mpaign_priority\x18\x07 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0c\x65nable_local\x18\x08 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15use_vehicle_inventory\x18\t \x01(\x08\x42\x03\xe0\x41\x05\x12$\n\x17\x61\x64vertising_partner_ids\x18\x0b \x03(\x03\x42\x03\xe0\x41\x05\x12!\n\x14\x64isable_product_feed\x18\x0c \x01(\x08H\x03\x88\x01\x01\x42\x0e\n\x0c_merchant_idB\x14\n\x12_campaign_priorityB\x0f\n\r_enable_localB\x17\n\x15_disable_product_feed\x1a\x42\n\x0fTrackingSetting\x12\x1e\n\x0ctracking_url\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x0f\n\r_tracking_url\x1a\xfc\x01\n\x14GeoTargetTypeSetting\x12q\n\x18positive_geo_target_type\x18\x01 \x01(\x0e\x32O.google.ads.googleads.v17.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType\x12q\n\x18negative_geo_target_type\x18\x02 \x01(\x0e\x32O.google.ads.googleads.v17.enums.NegativeGeoTargetTypeEnum.NegativeGeoTargetType\x1a\x7f\n\x14LocalCampaignSetting\x12g\n\x14location_source_type\x18\x01 \x01(\x0e\x32I.google.ads.googleads.v17.enums.LocationSourceTypeEnum.LocationSourceType\x1a\xae\x02\n\x12\x41ppCampaignSetting\x12\x8d\x01\n\x1a\x62idding_strategy_goal_type\x18\x01 \x01(\x0e\x32i.google.ads.googleads.v17.enums.AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType\x12\x18\n\x06\x61pp_id\x18\x04 \x01(\tB\x03\xe0\x41\x05H\x00\x88\x01\x01\x12\x63\n\tapp_store\x18\x03 \x01(\x0e\x32K.google.ads.googleads.v17.enums.AppCampaignAppStoreEnum.AppCampaignAppStoreB\x03\xe0\x41\x05\x42\t\n\x07_app_id\x1a\xf5\x01\n\x0cVanityPharma\x12\x81\x01\n\x1evanity_pharma_display_url_mode\x18\x01 \x01(\x0e\x32Y.google.ads.googleads.v17.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode\x12\x61\n\x12vanity_pharma_text\x18\x02 \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.VanityPharmaTextEnum.VanityPharmaText\x1a\x63\n\x15SelectiveOptimization\x12J\n\x12\x63onversion_actions\x18\x02 \x03(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionAction\x1a\x89\x01\n\x17OptimizationGoalSetting\x12n\n\x17optimization_goal_types\x18\x01 \x03(\x0e\x32M.google.ads.googleads.v17.enums.OptimizationGoalTypeEnum.OptimizationGoalType\x1aR\n\x0f\x41udienceSetting\x12&\n\x14use_audience_grouped\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x17\n\x15_use_audience_grouped\x1ap\n\x1dLocalServicesCampaignSettings\x12O\n\rcategory_bids\x18\x01 \x03(\x0b\x32\x38.google.ads.googleads.v17.resources.Campaign.CategoryBid\x1au\n\x0b\x43\x61tegoryBid\x12\x18\n\x0b\x63\x61tegory_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15manual_cpa_bid_micros\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\x0e\n\x0c_category_idB\x18\n\x16_manual_cpa_bid_micros\x1aS\n\x16TravelCampaignSettings\x12#\n\x11travel_account_id\x18\x01 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x14\n\x12_travel_account_id\x1aX\n\x19\x44\x65mandGenCampaignSettings\x12$\n\x12upgraded_targeting\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x15\n\x13_upgraded_targeting\x1a\xb6\x02\n\x16\x41ssetAutomationSetting\x12o\n\x15\x61sset_automation_type\x18\x01 \x01(\x0e\x32K.google.ads.googleads.v17.enums.AssetAutomationTypeEnum.AssetAutomationTypeH\x00\x88\x01\x01\x12u\n\x17\x61sset_automation_status\x18\x02 \x01(\x0e\x32O.google.ads.googleads.v17.enums.AssetAutomationStatusEnum.AssetAutomationStatusH\x01\x88\x01\x01\x42\x18\n\x16_asset_automation_typeB\x1a\n\x18_asset_automation_status:W\xea\x41T\n!googleads.googleapis.com/Campaign\x12/customers/{customer_id}/campaigns/{campaign_id}B\x1b\n\x19\x63\x61mpaign_bidding_strategyB\x05\n\x03_idB\x07\n\x05_nameB\x18\n\x16_tracking_url_templateB\x13\n\x11_audience_settingB\x10\n\x0e_base_campaignB\x12\n\x10_campaign_budgetB\r\n\x0b_start_dateB\x11\n\x0f_campaign_groupB\x0b\n\t_end_dateB\x13\n\x11_final_url_suffixB\x15\n\x13_optimization_scoreB\x18\n\x16_url_expansion_opt_outB\x1b\n\x19_hotel_property_asset_setB\x0f\n\r_listing_typeB\xff\x01\n&com.google.ads.googleads.v17.resourcesB\rCampaignProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
+descriptor_data = "\n1google/ads/googleads/v17/resources/campaign.proto\x12\"google.ads.googleads.v17.resources\x1a-google/ads/googleads/v17/common/bidding.proto\x1a\x36google/ads/googleads/v17/common/custom_parameter.proto\x1a\x33google/ads/googleads/v17/common/frequency_cap.proto\x1a?google/ads/googleads/v17/common/real_time_bidding_setting.proto\x1a\x37google/ads/googleads/v17/common/targeting_setting.proto\x1a\x43google/ads/googleads/v17/enums/ad_serving_optimization_status.proto\x1a\x41google/ads/googleads/v17/enums/advertising_channel_sub_type.proto\x1a=google/ads/googleads/v17/enums/advertising_channel_type.proto\x1a;google/ads/googleads/v17/enums/app_campaign_app_store.proto\x1aLgoogle/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto\x1a<google/ads/googleads/v17/enums/asset_automation_status.proto\x1a:google/ads/googleads/v17/enums/asset_automation_type.proto\x1a\x35google/ads/googleads/v17/enums/asset_field_type.proto\x1a\x33google/ads/googleads/v17/enums/asset_set_type.proto\x1a\x43google/ads/googleads/v17/enums/bidding_strategy_system_status.proto\x1a:google/ads/googleads/v17/enums/bidding_strategy_type.proto\x1a=google/ads/googleads/v17/enums/brand_safety_suitability.proto\x1a=google/ads/googleads/v17/enums/campaign_experiment_type.proto\x1a@google/ads/googleads/v17/enums/campaign_keyword_match_type.proto\x1a<google/ads/googleads/v17/enums/campaign_primary_status.proto\x1a\x43google/ads/googleads/v17/enums/campaign_primary_status_reason.proto\x1a<google/ads/googleads/v17/enums/campaign_serving_status.proto\x1a\x34google/ads/googleads/v17/enums/campaign_status.proto\x1a\x31google/ads/googleads/v17/enums/listing_type.proto\x1a\x39google/ads/googleads/v17/enums/location_source_type.proto\x1a=google/ads/googleads/v17/enums/negative_geo_target_type.proto\x1a;google/ads/googleads/v17/enums/optimization_goal_type.proto\x1a\x31google/ads/googleads/v17/enums/payment_mode.proto\x1a\x43google/ads/googleads/v17/enums/performance_max_upgrade_status.proto\x1a=google/ads/googleads/v17/enums/positive_geo_target_type.proto\x1a\x43google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto\x1a\x37google/ads/googleads/v17/enums/vanity_pharma_text.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x95M\n\x08\x43\x61mpaign\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/Campaign\x12\x14\n\x02id\x18; \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x11\n\x04name\x18: \x01(\tH\x02\x88\x01\x01\x12l\n\x0eprimary_status\x18Q \x01(\x0e\x32O.google.ads.googleads.v17.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatusB\x03\xe0\x41\x03\x12\x80\x01\n\x16primary_status_reasons\x18R \x03(\x0e\x32[.google.ads.googleads.v17.enums.CampaignPrimaryStatusReasonEnum.CampaignPrimaryStatusReasonB\x03\xe0\x41\x03\x12Q\n\x06status\x18\x05 \x01(\x0e\x32\x41.google.ads.googleads.v17.enums.CampaignStatusEnum.CampaignStatus\x12l\n\x0eserving_status\x18\x15 \x01(\x0e\x32O.google.ads.googleads.v17.enums.CampaignServingStatusEnum.CampaignServingStatusB\x03\xe0\x41\x03\x12\x88\x01\n\x1e\x62idding_strategy_system_status\x18N \x01(\x0e\x32[.google.ads.googleads.v17.enums.BiddingStrategySystemStatusEnum.BiddingStrategySystemStatusB\x03\xe0\x41\x03\x12\x83\x01\n\x1e\x61\x64_serving_optimization_status\x18\x08 \x01(\x0e\x32[.google.ads.googleads.v17.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus\x12x\n\x18\x61\x64vertising_channel_type\x18\t \x01(\x0e\x32Q.google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum.AdvertisingChannelTypeB\x03\xe0\x41\x05\x12\x82\x01\n\x1c\x61\x64vertising_channel_sub_type\x18\n \x01(\x0e\x32W.google.ads.googleads.v17.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubTypeB\x03\xe0\x41\x05\x12\"\n\x15tracking_url_template\x18< \x01(\tH\x03\x88\x01\x01\x12O\n\x15url_custom_parameters\x18\x0c \x03(\x0b\x32\x30.google.ads.googleads.v17.common.CustomParameter\x12t\n local_services_campaign_settings\x18K \x01(\x0b\x32J.google.ads.googleads.v17.resources.Campaign.LocalServicesCampaignSettings\x12\x65\n\x18travel_campaign_settings\x18U \x01(\x0b\x32\x43.google.ads.googleads.v17.resources.Campaign.TravelCampaignSettings\x12l\n\x1c\x64\x65mand_gen_campaign_settings\x18[ \x01(\x0b\x32\x46.google.ads.googleads.v17.resources.Campaign.DemandGenCampaignSettings\x12\x63\n\x17video_campaign_settings\x18^ \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.Campaign.VideoCampaignSettings\x12Z\n\x19real_time_bidding_setting\x18\' \x01(\x0b\x32\x37.google.ads.googleads.v17.common.RealTimeBiddingSetting\x12V\n\x10network_settings\x18\x0e \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.NetworkSettings\x12Y\n\rhotel_setting\x18  \x01(\x0b\x32=.google.ads.googleads.v17.resources.Campaign.HotelSettingInfoB\x03\xe0\x41\x05\x12h\n\x1a\x64ynamic_search_ads_setting\x18! \x01(\x0b\x32\x44.google.ads.googleads.v17.resources.Campaign.DynamicSearchAdsSetting\x12V\n\x10shopping_setting\x18$ \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.ShoppingSetting\x12L\n\x11targeting_setting\x18+ \x01(\x0b\x32\x31.google.ads.googleads.v17.common.TargetingSetting\x12`\n\x10\x61udience_setting\x18I \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.AudienceSettingB\x03\xe0\x41\x05H\x04\x88\x01\x01\x12\x62\n\x17geo_target_type_setting\x18/ \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.Campaign.GeoTargetTypeSetting\x12\x61\n\x16local_campaign_setting\x18\x32 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.Campaign.LocalCampaignSetting\x12]\n\x14\x61pp_campaign_setting\x18\x33 \x01(\x0b\x32?.google.ads.googleads.v17.resources.Campaign.AppCampaignSetting\x12>\n\x06labels\x18= \x03(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CampaignLabel\x12o\n\x0f\x65xperiment_type\x18\x11 \x01(\x0e\x32Q.google.ads.googleads.v17.enums.CampaignExperimentTypeEnum.CampaignExperimentTypeB\x03\xe0\x41\x03\x12\x45\n\rbase_campaign\x18\x38 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x05\x88\x01\x01\x12J\n\x0f\x63\x61mpaign_budget\x18> \x01(\tB,\xfa\x41)\n\'googleads.googleapis.com/CampaignBudgetH\x06\x88\x01\x01\x12o\n\x15\x62idding_strategy_type\x18\x16 \x01(\x0e\x32K.google.ads.googleads.v17.enums.BiddingStrategyTypeEnum.BiddingStrategyTypeB\x03\xe0\x41\x03\x12_\n\x1b\x61\x63\x63\x65ssible_bidding_strategy\x18G \x01(\tB:\xe0\x41\x03\xfa\x41\x34\n2googleads.googleapis.com/AccessibleBiddingStrategy\x12\x17\n\nstart_date\x18? \x01(\tH\x07\x88\x01\x01\x12H\n\x0e\x63\x61mpaign_group\x18L \x01(\tB+\xfa\x41(\n&googleads.googleapis.com/CampaignGroupH\x08\x88\x01\x01\x12\x15\n\x08\x65nd_date\x18@ \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10\x66inal_url_suffix\x18\x41 \x01(\tH\n\x88\x01\x01\x12J\n\x0e\x66requency_caps\x18( \x03(\x0b\x32\x32.google.ads.googleads.v17.common.FrequencyCapEntry\x12y\n\x1evideo_brand_safety_suitability\x18* \x01(\x0e\x32Q.google.ads.googleads.v17.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability\x12P\n\rvanity_pharma\x18, \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.Campaign.VanityPharma\x12\x62\n\x16selective_optimization\x18- \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.Campaign.SelectiveOptimization\x12g\n\x19optimization_goal_setting\x18\x36 \x01(\x0b\x32\x44.google.ads.googleads.v17.resources.Campaign.OptimizationGoalSetting\x12[\n\x10tracking_setting\x18. \x01(\x0b\x32<.google.ads.googleads.v17.resources.Campaign.TrackingSettingB\x03\xe0\x41\x03\x12Q\n\x0cpayment_mode\x18\x34 \x01(\x0e\x32;.google.ads.googleads.v17.enums.PaymentModeEnum.PaymentMode\x12$\n\x12optimization_score\x18\x42 \x01(\x01\x42\x03\xe0\x41\x03H\x0b\x88\x01\x01\x12l\n!excluded_parent_asset_field_types\x18\x45 \x03(\x0e\x32\x41.google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType\x12\x66\n\x1f\x65xcluded_parent_asset_set_types\x18P \x03(\x0e\x32=.google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType\x12\"\n\x15url_expansion_opt_out\x18H \x01(\x08H\x0c\x88\x01\x01\x12h\n\x17performance_max_upgrade\x18M \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.Campaign.PerformanceMaxUpgradeB\x03\xe0\x41\x03\x12P\n\x18hotel_property_asset_set\x18S \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/AssetSetH\r\x88\x01\x01\x12[\n\x0clisting_type\x18V \x01(\x0e\x32;.google.ads.googleads.v17.enums.ListingTypeEnum.ListingTypeB\x03\xe0\x41\x05H\x0e\x88\x01\x01\x12\x66\n\x19\x61sset_automation_settings\x18X \x03(\x0b\x32\x43.google.ads.googleads.v17.resources.Campaign.AssetAutomationSetting\x12q\n\x12keyword_match_type\x18Z \x01(\x0e\x32U.google.ads.googleads.v17.enums.CampaignKeywordMatchTypeEnum.CampaignKeywordMatchType\x12I\n\x10\x62idding_strategy\x18\x43 \x01(\tB-\xfa\x41*\n(googleads.googleapis.com/BiddingStrategyH\x00\x12\x41\n\ncommission\x18\x31 \x01(\x0b\x32+.google.ads.googleads.v17.common.CommissionH\x00\x12@\n\nmanual_cpa\x18J \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpaH\x00\x12@\n\nmanual_cpc\x18\x18 \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpcH\x00\x12@\n\nmanual_cpm\x18\x19 \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpmH\x00\x12@\n\nmanual_cpv\x18% \x01(\x0b\x32*.google.ads.googleads.v17.common.ManualCpvH\x00\x12T\n\x14maximize_conversions\x18\x1e \x01(\x0b\x32\x34.google.ads.googleads.v17.common.MaximizeConversionsH\x00\x12]\n\x19maximize_conversion_value\x18\x1f \x01(\x0b\x32\x38.google.ads.googleads.v17.common.MaximizeConversionValueH\x00\x12@\n\ntarget_cpa\x18\x1a \x01(\x0b\x32*.google.ads.googleads.v17.common.TargetCpaH\x00\x12Y\n\x17target_impression_share\x18\x30 \x01(\x0b\x32\x36.google.ads.googleads.v17.common.TargetImpressionShareH\x00\x12\x42\n\x0btarget_roas\x18\x1d \x01(\x0b\x32+.google.ads.googleads.v17.common.TargetRoasH\x00\x12\x44\n\x0ctarget_spend\x18\x1b \x01(\x0b\x32,.google.ads.googleads.v17.common.TargetSpendH\x00\x12\x42\n\x0bpercent_cpc\x18\" \x01(\x0b\x32+.google.ads.googleads.v17.common.PercentCpcH\x00\x12@\n\ntarget_cpm\x18) \x01(\x0b\x32*.google.ads.googleads.v17.common.TargetCpmH\x00\x12>\n\tfixed_cpm\x18\\ \x01(\x0b\x32).google.ads.googleads.v17.common.FixedCpmH\x00\x12@\n\ntarget_cpv\x18] \x01(\x0b\x32*.google.ads.googleads.v17.common.TargetCpvH\x00\x1a\x9f\x02\n\x15PerformanceMaxUpgrade\x12K\n\x18performance_max_campaign\x18\x01 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/Campaign\x12G\n\x14pre_upgrade_campaign\x18\x02 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/Campaign\x12p\n\x06status\x18\x03 \x01(\x0e\x32[.google.ads.googleads.v17.enums.PerformanceMaxUpgradeStatusEnum.PerformanceMaxUpgradeStatusB\x03\xe0\x41\x03\x1a\x8d\x03\n\x0fNetworkSettings\x12!\n\x14target_google_search\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15target_search_network\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12#\n\x16target_content_network\x18\x07 \x01(\x08H\x02\x88\x01\x01\x12*\n\x1dtarget_partner_search_network\x18\x08 \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\x0etarget_youtube\x18\t \x01(\x08H\x04\x88\x01\x01\x12%\n\x18target_google_tv_network\x18\n \x01(\x08H\x05\x88\x01\x01\x42\x17\n\x15_target_google_searchB\x18\n\x16_target_search_networkB\x19\n\x17_target_content_networkB \n\x1e_target_partner_search_networkB\x11\n\x0f_target_youtubeB\x1b\n\x19_target_google_tv_network\x1aI\n\x10HotelSettingInfo\x12!\n\x0fhotel_center_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x12\n\x10_hotel_center_id\x1a\xc2\x01\n\x17\x44ynamicSearchAdsSetting\x12\x18\n\x0b\x64omain_name\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rlanguage_code\x18\x07 \x01(\tB\x03\xe0\x41\x02\x12#\n\x16use_supplied_urls_only\x18\x08 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\x05\x66\x65\x65\x64s\x18\t \x03(\tB\"\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/FeedB\x19\n\x17_use_supplied_urls_only\x1a\xb7\x02\n\x0fShoppingSetting\x12\x18\n\x0bmerchant_id\x18\x05 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\nfeed_label\x18\n \x01(\t\x12\x1e\n\x11\x63\x61mpaign_priority\x18\x07 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0c\x65nable_local\x18\x08 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15use_vehicle_inventory\x18\t \x01(\x08\x42\x03\xe0\x41\x05\x12$\n\x17\x61\x64vertising_partner_ids\x18\x0b \x03(\x03\x42\x03\xe0\x41\x05\x12!\n\x14\x64isable_product_feed\x18\x0c \x01(\x08H\x03\x88\x01\x01\x42\x0e\n\x0c_merchant_idB\x14\n\x12_campaign_priorityB\x0f\n\r_enable_localB\x17\n\x15_disable_product_feed\x1a\x42\n\x0fTrackingSetting\x12\x1e\n\x0ctracking_url\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x0f\n\r_tracking_url\x1a\xfc\x01\n\x14GeoTargetTypeSetting\x12q\n\x18positive_geo_target_type\x18\x01 \x01(\x0e\x32O.google.ads.googleads.v17.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType\x12q\n\x18negative_geo_target_type\x18\x02 \x01(\x0e\x32O.google.ads.googleads.v17.enums.NegativeGeoTargetTypeEnum.NegativeGeoTargetType\x1a\x7f\n\x14LocalCampaignSetting\x12g\n\x14location_source_type\x18\x01 \x01(\x0e\x32I.google.ads.googleads.v17.enums.LocationSourceTypeEnum.LocationSourceType\x1a\xae\x02\n\x12\x41ppCampaignSetting\x12\x8d\x01\n\x1a\x62idding_strategy_goal_type\x18\x01 \x01(\x0e\x32i.google.ads.googleads.v17.enums.AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType\x12\x18\n\x06\x61pp_id\x18\x04 \x01(\tB\x03\xe0\x41\x05H\x00\x88\x01\x01\x12\x63\n\tapp_store\x18\x03 \x01(\x0e\x32K.google.ads.googleads.v17.enums.AppCampaignAppStoreEnum.AppCampaignAppStoreB\x03\xe0\x41\x05\x42\t\n\x07_app_id\x1a\xf5\x01\n\x0cVanityPharma\x12\x81\x01\n\x1evanity_pharma_display_url_mode\x18\x01 \x01(\x0e\x32Y.google.ads.googleads.v17.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode\x12\x61\n\x12vanity_pharma_text\x18\x02 \x01(\x0e\x32\x45.google.ads.googleads.v17.enums.VanityPharmaTextEnum.VanityPharmaText\x1a\x63\n\x15SelectiveOptimization\x12J\n\x12\x63onversion_actions\x18\x02 \x03(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionAction\x1a\x89\x01\n\x17OptimizationGoalSetting\x12n\n\x17optimization_goal_types\x18\x01 \x03(\x0e\x32M.google.ads.googleads.v17.enums.OptimizationGoalTypeEnum.OptimizationGoalType\x1aR\n\x0f\x41udienceSetting\x12&\n\x14use_audience_grouped\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x17\n\x15_use_audience_grouped\x1ap\n\x1dLocalServicesCampaignSettings\x12O\n\rcategory_bids\x18\x01 \x03(\x0b\x32\x38.google.ads.googleads.v17.resources.Campaign.CategoryBid\x1au\n\x0b\x43\x61tegoryBid\x12\x18\n\x0b\x63\x61tegory_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15manual_cpa_bid_micros\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\x0e\n\x0c_category_idB\x18\n\x16_manual_cpa_bid_micros\x1aS\n\x16TravelCampaignSettings\x12#\n\x11travel_account_id\x18\x01 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x14\n\x12_travel_account_id\x1aX\n\x19\x44\x65mandGenCampaignSettings\x12$\n\x12upgraded_targeting\x18\x01 \x01(\x08\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x15\n\x13_upgraded_targeting\x1a\xbf\x02\n\x15VideoCampaignSettings\x12~\n\x1avideo_ad_inventory_control\x18\x01 \x01(\x0b\x32Z.google.ads.googleads.v17.resources.Campaign.VideoCampaignSettings.VideoAdInventoryControl\x1a\xa5\x01\n\x17VideoAdInventoryControl\x12\x1c\n\x0f\x61llow_in_stream\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rallow_in_feed\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0c\x61llow_shorts\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x12\n\x10_allow_in_streamB\x10\n\x0e_allow_in_feedB\x0f\n\r_allow_shorts\x1a\xb6\x02\n\x16\x41ssetAutomationSetting\x12o\n\x15\x61sset_automation_type\x18\x01 \x01(\x0e\x32K.google.ads.googleads.v17.enums.AssetAutomationTypeEnum.AssetAutomationTypeH\x00\x88\x01\x01\x12u\n\x17\x61sset_automation_status\x18\x02 \x01(\x0e\x32O.google.ads.googleads.v17.enums.AssetAutomationStatusEnum.AssetAutomationStatusH\x01\x88\x01\x01\x42\x18\n\x16_asset_automation_typeB\x1a\n\x18_asset_automation_status:W\xea\x41T\n!googleads.googleapis.com/Campaign\x12/customers/{customer_id}/campaigns/{campaign_id}B\x1b\n\x19\x63\x61mpaign_bidding_strategyB\x05\n\x03_idB\x07\n\x05_nameB\x18\n\x16_tracking_url_templateB\x13\n\x11_audience_settingB\x10\n\x0e_base_campaignB\x12\n\x10_campaign_budgetB\r\n\x0b_start_dateB\x11\n\x0f_campaign_groupB\x0b\n\t_end_dateB\x13\n\x11_final_url_suffixB\x15\n\x13_optimization_scoreB\x18\n\x16_url_expansion_opt_outB\x1b\n\x19_hotel_property_asset_setB\x0f\n\r_listing_typeB\xff\x01\n&com.google.ads.googleads.v17.resourcesB\rCampaignProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
@@ -94,6 +94,8 @@ module Resources
           Campaign::CategoryBid = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.CategoryBid").msgclass
           Campaign::TravelCampaignSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.TravelCampaignSettings").msgclass
           Campaign::DemandGenCampaignSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.DemandGenCampaignSettings").msgclass
+          Campaign::VideoCampaignSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.VideoCampaignSettings").msgclass
+          Campaign::VideoCampaignSettings::VideoAdInventoryControl = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.VideoCampaignSettings.VideoAdInventoryControl").msgclass
           Campaign::AssetAutomationSetting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.Campaign.AssetAutomationSetting").msgclass
         end
       end
diff --git a/lib/google/ads/google_ads/v17/resources/change_status_pb.rb b/lib/google/ads/google_ads/v17/resources/change_status_pb.rb
index 92848139..7dad3596 100644
--- a/lib/google/ads/google_ads/v17/resources/change_status_pb.rb
+++ b/lib/google/ads/google_ads/v17/resources/change_status_pb.rb
@@ -10,7 +10,7 @@
 require 'google/api/resource_pb'
 
 
-descriptor_data = "\n6google/ads/googleads/v17/resources/change_status.proto\x12\"google.ads.googleads.v17.resources\x1a<google/ads/googleads/v17/enums/change_status_operation.proto\x1a@google/ads/googleads/v17/enums/change_status_resource_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xd5\x0e\n\x0c\x43hangeStatus\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/ChangeStatus\x12\'\n\x15last_change_date_time\x18\x18 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12q\n\rresource_type\x18\x04 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceTypeB\x03\xe0\x41\x03\x12@\n\x08\x63\x61mpaign\x18\x11 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x01\x88\x01\x01\x12?\n\x08\x61\x64_group\x18\x12 \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12m\n\x0fresource_status\x18\x08 \x01(\x0e\x32O.google.ads.googleads.v17.enums.ChangeStatusOperationEnum.ChangeStatusOperationB\x03\xe0\x41\x03\x12\x44\n\x0b\x61\x64_group_ad\x18\x19 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/AdGroupAdH\x03\x88\x01\x01\x12R\n\x12\x61\x64_group_criterion\x18\x1a \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterionH\x04\x88\x01\x01\x12S\n\x12\x63\x61mpaign_criterion\x18\x1b \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/CampaignCriterionH\x05\x88\x01\x01\x12\x38\n\x04\x66\x65\x65\x64\x18\x1c \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/FeedH\x06\x88\x01\x01\x12\x41\n\tfeed_item\x18\x1d \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/FeedItemH\x07\x88\x01\x01\x12H\n\rad_group_feed\x18\x1e \x01(\tB,\xe0\x41\x03\xfa\x41&\n$googleads.googleapis.com/AdGroupFeedH\x08\x88\x01\x01\x12I\n\rcampaign_feed\x18\x1f \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/CampaignFeedH\t\x88\x01\x01\x12W\n\x15\x61\x64_group_bid_modifier\x18  \x01(\tB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/AdGroupBidModifierH\n\x88\x01\x01\x12>\n\nshared_set\x18! \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/SharedSet\x12O\n\x13\x63\x61mpaign_shared_set\x18\" \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/CampaignSharedSet\x12\x35\n\x05\x61sset\x18# \x01(\tB&\xe0\x41\x03\xfa\x41 \n\x1egoogleads.googleapis.com/Asset\x12\x46\n\x0e\x63ustomer_asset\x18$ \x01(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CustomerAsset\x12\x46\n\x0e\x63\x61mpaign_asset\x18% \x01(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CampaignAsset\x12\x45\n\x0e\x61\x64_group_asset\x18& \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/AdGroupAsset\x12L\n\x11\x63ombined_audience\x18( \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/CombinedAudience:c\xea\x41`\n%googleads.googleapis.com/ChangeStatus\x12\x37\x63ustomers/{customer_id}/changeStatus/{change_status_id}B\x18\n\x16_last_change_date_timeB\x0b\n\t_campaignB\x0b\n\t_ad_groupB\x0e\n\x0c_ad_group_adB\x15\n\x13_ad_group_criterionB\x15\n\x13_campaign_criterionB\x07\n\x05_feedB\x0c\n\n_feed_itemB\x10\n\x0e_ad_group_feedB\x10\n\x0e_campaign_feedB\x18\n\x16_ad_group_bid_modifierB\x83\x02\n&com.google.ads.googleads.v17.resourcesB\x11\x43hangeStatusProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
+descriptor_data = "\n6google/ads/googleads/v17/resources/change_status.proto\x12\"google.ads.googleads.v17.resources\x1a<google/ads/googleads/v17/enums/change_status_operation.proto\x1a@google/ads/googleads/v17/enums/change_status_resource_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x97\x0f\n\x0c\x43hangeStatus\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/ChangeStatus\x12\'\n\x15last_change_date_time\x18\x18 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12q\n\rresource_type\x18\x04 \x01(\x0e\x32U.google.ads.googleads.v17.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceTypeB\x03\xe0\x41\x03\x12@\n\x08\x63\x61mpaign\x18\x11 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x01\x88\x01\x01\x12?\n\x08\x61\x64_group\x18\x12 \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12m\n\x0fresource_status\x18\x08 \x01(\x0e\x32O.google.ads.googleads.v17.enums.ChangeStatusOperationEnum.ChangeStatusOperationB\x03\xe0\x41\x03\x12\x44\n\x0b\x61\x64_group_ad\x18\x19 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/AdGroupAdH\x03\x88\x01\x01\x12R\n\x12\x61\x64_group_criterion\x18\x1a \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterionH\x04\x88\x01\x01\x12S\n\x12\x63\x61mpaign_criterion\x18\x1b \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/CampaignCriterionH\x05\x88\x01\x01\x12\x38\n\x04\x66\x65\x65\x64\x18\x1c \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/FeedH\x06\x88\x01\x01\x12\x41\n\tfeed_item\x18\x1d \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/FeedItemH\x07\x88\x01\x01\x12H\n\rad_group_feed\x18\x1e \x01(\tB,\xe0\x41\x03\xfa\x41&\n$googleads.googleapis.com/AdGroupFeedH\x08\x88\x01\x01\x12I\n\rcampaign_feed\x18\x1f \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/CampaignFeedH\t\x88\x01\x01\x12W\n\x15\x61\x64_group_bid_modifier\x18  \x01(\tB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/AdGroupBidModifierH\n\x88\x01\x01\x12>\n\nshared_set\x18! \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/SharedSet\x12O\n\x13\x63\x61mpaign_shared_set\x18\" \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/CampaignSharedSet\x12\x35\n\x05\x61sset\x18# \x01(\tB&\xe0\x41\x03\xfa\x41 \n\x1egoogleads.googleapis.com/Asset\x12\x46\n\x0e\x63ustomer_asset\x18$ \x01(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CustomerAsset\x12\x46\n\x0e\x63\x61mpaign_asset\x18% \x01(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CampaignAsset\x12\x45\n\x0e\x61\x64_group_asset\x18& \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/AdGroupAsset\x12L\n\x11\x63ombined_audience\x18( \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/CombinedAudience\x12@\n\x0b\x61sset_group\x18) \x01(\tB+\xe0\x41\x03\xfa\x41%\n#googleads.googleapis.com/AssetGroup:c\xea\x41`\n%googleads.googleapis.com/ChangeStatus\x12\x37\x63ustomers/{customer_id}/changeStatus/{change_status_id}B\x18\n\x16_last_change_date_timeB\x0b\n\t_campaignB\x0b\n\t_ad_groupB\x0e\n\x0c_ad_group_adB\x15\n\x13_ad_group_criterionB\x15\n\x13_campaign_criterionB\x07\n\x05_feedB\x0c\n\n_feed_itemB\x10\n\x0e_ad_group_feedB\x10\n\x0e_campaign_feedB\x18\n\x16_ad_group_bid_modifierB\x83\x02\n&com.google.ads.googleads.v17.resourcesB\x11\x43hangeStatusProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb.rb b/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb.rb
index 7b16028a..2b343638 100644
--- a/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb.rb
+++ b/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb.rb
@@ -20,7 +20,7 @@
 require 'google/api/resource_pb'
 
 
-descriptor_data = "\nQgoogle/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto\x12\"google.ads.googleads.v17.resources\x1aNgoogle/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto\x1a\x45google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto\x1a;google/ads/googleads/v17/errors/collection_size_error.proto\x1aHgoogle/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto\x1a=google/ads/googleads/v17/errors/conversion_upload_error.proto\x1a\x30google/ads/googleads/v17/errors/date_error.proto\x1a\x34google/ads/googleads/v17/errors/distinct_error.proto\x1a\x31google/ads/googleads/v17/errors/field_error.proto\x1a\x32google/ads/googleads/v17/errors/mutate_error.proto\x1a;google/ads/googleads/v17/errors/not_allowlisted_error.proto\x1a\x39google/ads/googleads/v17/errors/string_format_error.proto\x1a\x39google/ads/googleads/v17/errors/string_length_error.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x88\x07\n$OfflineConversionUploadClientSummary\x12\\\n\rresource_name\x18\x01 \x01(\tBE\xe0\x41\x03\xfa\x41?\n=googleads.googleapis.com/OfflineConversionUploadClientSummary\x12j\n\x06\x63lient\x18\x02 \x01(\x0e\x32U.google.ads.googleads.v17.enums.OfflineEventUploadClientEnum.OfflineEventUploadClientB\x03\xe0\x41\x03\x12|\n\x06status\x18\x03 \x01(\x0e\x32g.google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum.OfflineConversionDiagnosticStatusB\x03\xe0\x41\x03\x12\x1e\n\x11total_event_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16successful_event_count\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0csuccess_rate\x18\x06 \x01(\x01\x42\x03\xe0\x41\x03\x12\"\n\x15last_upload_date_time\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12Z\n\x0f\x64\x61ily_summaries\x18\x08 \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12X\n\rjob_summaries\x18\t \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12O\n\x06\x61lerts\x18\n \x03(\x0b\x32:.google.ads.googleads.v17.resources.OfflineConversionAlertB\x03\xe0\x41\x03:\x8c\x01\xea\x41\x88\x01\n=googleads.googleapis.com/OfflineConversionUploadClientSummary\x12Gcustomers/{customer_id}/offlineConversionUploadClientSummaries/{client}\"\x98\x01\n\x18OfflineConversionSummary\x12\x1d\n\x10successful_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0c\x66\x61iled_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x15\n\x06job_id\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x12\x1a\n\x0bupload_date\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x42\x0f\n\rdimension_key\"\x87\x01\n\x16OfflineConversionAlert\x12N\n\x05\x65rror\x18\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.OfflineConversionErrorB\x03\xe0\x41\x03\x12\x1d\n\x10\x65rror_percentage\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\"\xe7\x08\n\x16OfflineConversionError\x12r\n\x15\x63ollection_size_error\x18\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CollectionSizeErrorEnum.CollectionSizeErrorB\x03\xe0\x41\x03H\x00\x12\x97\x01\n\"conversion_adjustment_upload_error\x18\x02 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadErrorB\x03\xe0\x41\x03H\x00\x12x\n\x17\x63onversion_upload_error\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionUploadErrorEnum.ConversionUploadErrorB\x03\xe0\x41\x03H\x00\x12S\n\ndate_error\x18\x04 \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.DateErrorEnum.DateErrorB\x03\xe0\x41\x03H\x00\x12_\n\x0e\x64istinct_error\x18\x05 \x01(\x0e\x32@.google.ads.googleads.v17.errors.DistinctErrorEnum.DistinctErrorB\x03\xe0\x41\x03H\x00\x12V\n\x0b\x66ield_error\x18\x06 \x01(\x0e\x32:.google.ads.googleads.v17.errors.FieldErrorEnum.FieldErrorB\x03\xe0\x41\x03H\x00\x12Y\n\x0cmutate_error\x18\x07 \x01(\x0e\x32<.google.ads.googleads.v17.errors.MutateErrorEnum.MutateErrorB\x03\xe0\x41\x03H\x00\x12r\n\x15not_allowlisted_error\x18\x08 \x01(\x0e\x32L.google.ads.googleads.v17.errors.NotAllowlistedErrorEnum.NotAllowlistedErrorB\x03\xe0\x41\x03H\x00\x12l\n\x13string_format_error\x18\t \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringFormatErrorEnum.StringFormatErrorB\x03\xe0\x41\x03H\x00\x12l\n\x13string_length_error\x18\n \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringLengthErrorEnum.StringLengthErrorB\x03\xe0\x41\x03H\x00\x42\x0c\n\nerror_codeB\x9b\x02\n&com.google.ads.googleads.v17.resourcesB)OfflineConversionUploadClientSummaryProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
+descriptor_data = "\nQgoogle/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto\x12\"google.ads.googleads.v17.resources\x1aNgoogle/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto\x1a\x45google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto\x1a;google/ads/googleads/v17/errors/collection_size_error.proto\x1aHgoogle/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto\x1a=google/ads/googleads/v17/errors/conversion_upload_error.proto\x1a\x30google/ads/googleads/v17/errors/date_error.proto\x1a\x34google/ads/googleads/v17/errors/distinct_error.proto\x1a\x31google/ads/googleads/v17/errors/field_error.proto\x1a\x32google/ads/googleads/v17/errors/mutate_error.proto\x1a;google/ads/googleads/v17/errors/not_allowlisted_error.proto\x1a\x39google/ads/googleads/v17/errors/string_format_error.proto\x1a\x39google/ads/googleads/v17/errors/string_length_error.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xc5\x07\n$OfflineConversionUploadClientSummary\x12\\\n\rresource_name\x18\x01 \x01(\tBE\xe0\x41\x03\xfa\x41?\n=googleads.googleapis.com/OfflineConversionUploadClientSummary\x12j\n\x06\x63lient\x18\x02 \x01(\x0e\x32U.google.ads.googleads.v17.enums.OfflineEventUploadClientEnum.OfflineEventUploadClientB\x03\xe0\x41\x03\x12|\n\x06status\x18\x03 \x01(\x0e\x32g.google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum.OfflineConversionDiagnosticStatusB\x03\xe0\x41\x03\x12\x1e\n\x11total_event_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16successful_event_count\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0csuccess_rate\x18\x06 \x01(\x01\x42\x03\xe0\x41\x03\x12 \n\x13pending_event_count\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0cpending_rate\x18\x0c \x01(\x01\x42\x03\xe0\x41\x03\x12\"\n\x15last_upload_date_time\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12Z\n\x0f\x64\x61ily_summaries\x18\x08 \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12X\n\rjob_summaries\x18\t \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12O\n\x06\x61lerts\x18\n \x03(\x0b\x32:.google.ads.googleads.v17.resources.OfflineConversionAlertB\x03\xe0\x41\x03:\x8c\x01\xea\x41\x88\x01\n=googleads.googleapis.com/OfflineConversionUploadClientSummary\x12Gcustomers/{customer_id}/offlineConversionUploadClientSummaries/{client}\"\xb4\x01\n\x18OfflineConversionSummary\x12\x1d\n\x10successful_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0c\x66\x61iled_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1a\n\rpending_count\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x15\n\x06job_id\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x12\x1a\n\x0bupload_date\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x42\x0f\n\rdimension_key\"\x87\x01\n\x16OfflineConversionAlert\x12N\n\x05\x65rror\x18\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.OfflineConversionErrorB\x03\xe0\x41\x03\x12\x1d\n\x10\x65rror_percentage\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\"\xe7\x08\n\x16OfflineConversionError\x12r\n\x15\x63ollection_size_error\x18\x01 \x01(\x0e\x32L.google.ads.googleads.v17.errors.CollectionSizeErrorEnum.CollectionSizeErrorB\x03\xe0\x41\x03H\x00\x12\x97\x01\n\"conversion_adjustment_upload_error\x18\x02 \x01(\x0e\x32\x64.google.ads.googleads.v17.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadErrorB\x03\xe0\x41\x03H\x00\x12x\n\x17\x63onversion_upload_error\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v17.errors.ConversionUploadErrorEnum.ConversionUploadErrorB\x03\xe0\x41\x03H\x00\x12S\n\ndate_error\x18\x04 \x01(\x0e\x32\x38.google.ads.googleads.v17.errors.DateErrorEnum.DateErrorB\x03\xe0\x41\x03H\x00\x12_\n\x0e\x64istinct_error\x18\x05 \x01(\x0e\x32@.google.ads.googleads.v17.errors.DistinctErrorEnum.DistinctErrorB\x03\xe0\x41\x03H\x00\x12V\n\x0b\x66ield_error\x18\x06 \x01(\x0e\x32:.google.ads.googleads.v17.errors.FieldErrorEnum.FieldErrorB\x03\xe0\x41\x03H\x00\x12Y\n\x0cmutate_error\x18\x07 \x01(\x0e\x32<.google.ads.googleads.v17.errors.MutateErrorEnum.MutateErrorB\x03\xe0\x41\x03H\x00\x12r\n\x15not_allowlisted_error\x18\x08 \x01(\x0e\x32L.google.ads.googleads.v17.errors.NotAllowlistedErrorEnum.NotAllowlistedErrorB\x03\xe0\x41\x03H\x00\x12l\n\x13string_format_error\x18\t \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringFormatErrorEnum.StringFormatErrorB\x03\xe0\x41\x03H\x00\x12l\n\x13string_length_error\x18\n \x01(\x0e\x32H.google.ads.googleads.v17.errors.StringLengthErrorEnum.StringLengthErrorB\x03\xe0\x41\x03H\x00\x42\x0c\n\nerror_codeB\x9b\x02\n&com.google.ads.googleads.v17.resourcesB)OfflineConversionUploadClientSummaryProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
diff --git a/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb.rb b/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb.rb
new file mode 100644
index 00000000..af51ea74
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto
+
+require 'google/protobuf'
+
+require 'google/ads/google_ads/v17/enums/offline_conversion_diagnostic_status_enum_pb'
+require 'google/ads/google_ads/v17/enums/offline_event_upload_client_enum_pb'
+require 'google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb'
+require 'google/api/field_behavior_pb'
+require 'google/api/resource_pb'
+
+
+descriptor_data = "\n\\google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto\x12\"google.ads.googleads.v17.resources\x1aNgoogle/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto\x1a\x45google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto\x1aQgoogle/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x94\x08\n.OfflineConversionUploadConversionActionSummary\x12\x66\n\rresource_name\x18\x01 \x01(\tBO\xe0\x41\x03\xfa\x41I\nGgoogleads.googleapis.com/OfflineConversionUploadConversionActionSummary\x12j\n\x06\x63lient\x18\x02 \x01(\x0e\x32U.google.ads.googleads.v17.enums.OfflineEventUploadClientEnum.OfflineEventUploadClientB\x03\xe0\x41\x03\x12!\n\x14\x63onversion_action_id\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16\x63onversion_action_name\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12|\n\x06status\x18\x05 \x01(\x0e\x32g.google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum.OfflineConversionDiagnosticStatusB\x03\xe0\x41\x03\x12\x1e\n\x11total_event_count\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16successful_event_count\x18\x07 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13pending_event_count\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03\x12\"\n\x15last_upload_date_time\x18\t \x01(\tB\x03\xe0\x41\x03\x12Z\n\x0f\x64\x61ily_summaries\x18\n \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12X\n\rjob_summaries\x18\x0b \x03(\x0b\x32<.google.ads.googleads.v17.resources.OfflineConversionSummaryB\x03\xe0\x41\x03\x12O\n\x06\x61lerts\x18\x0c \x03(\x0b\x32:.google.ads.googleads.v17.resources.OfflineConversionAlertB\x03\xe0\x41\x03:\xb5\x01\xea\x41\xb1\x01\nGgoogleads.googleapis.com/OfflineConversionUploadConversionActionSummary\x12\x66\x63ustomers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_type_id}~{client}B\xa5\x02\n&com.google.ads.googleads.v17.resourcesB3OfflineConversionUploadConversionActionSummaryProtoP\x01ZKgoogle.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources\xa2\x02\x03GAA\xaa\x02\"Google.Ads.GoogleAds.V17.Resources\xca\x02\"Google\\Ads\\GoogleAds\\V17\\Resources\xea\x02&Google::Ads::GoogleAds::V17::Resourcesb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+    ["google.ads.googleads.v17.resources.OfflineConversionSummary", "google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto"],
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Resources
+          OfflineConversionUploadConversionActionSummary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.resources.OfflineConversionUploadConversionActionSummary").msgclass
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/services.rb b/lib/google/ads/google_ads/v17/services.rb
index d534ac22..2f8b9c2b 100644
--- a/lib/google/ads/google_ads/v17/services.rb
+++ b/lib/google/ads/google_ads/v17/services.rb
@@ -124,6 +124,7 @@
 require "google/ads/google_ads/v17/services/product_link_service"
 require "google/ads/google_ads/v17/services/reach_plan_service"
 require "google/ads/google_ads/v17/services/recommendation_service"
+require "google/ads/google_ads/v17/services/shareable_preview_service"
 require "google/ads/google_ads/v17/services/smart_campaign_suggest_service"
 require "google/ads/google_ads/v17/services/third_party_app_analytics_link_service"
 require "google/ads/google_ads/v17/services/travel_asset_suggestion_service"
diff --git a/lib/google/ads/google_ads/v17/services/ad_group_ad_service/client.rb b/lib/google/ads/google_ads/v17/services/ad_group_ad_service/client.rb
index 611ea6d7..8564b405 100644
--- a/lib/google/ads/google_ads/v17/services/ad_group_ad_service/client.rb
+++ b/lib/google/ads/google_ads/v17/services/ad_group_ad_service/client.rb
@@ -308,6 +308,108 @@ def mutate_ad_group_ads request, options = nil
                 #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
               end
 
+              ##
+              # Remove automatically created assets from an ad.
+              #
+              # List of thrown errors:
+              #   [AdError]()
+              #   [AuthenticationError]()
+              #   [AuthorizationError]()
+              #   [AutomaticallyCreatedAssetRemovalError]()
+              #   [HeaderError]()
+              #   [InternalError]()
+              #   [MutateError]()
+              #   [QuotaError]()
+              #   [RequestError]()
+              #
+              # @overload remove_automatically_created_assets(request, options = nil)
+              #   Pass arguments to `remove_automatically_created_assets` via a request object, either of type
+              #   {::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest} or an equivalent Hash.
+              #
+              #   @param request [::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest, ::Hash]
+              #     A request object representing the call parameters. Required. To specify no
+              #     parameters, or to keep all the default parameter values, pass an empty Hash.
+              #   @param options [::Gapic::CallOptions, ::Hash]
+              #     Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
+              #
+              # @overload remove_automatically_created_assets(ad_group_ad: nil, assets_with_field_type: nil)
+              #   Pass arguments to `remove_automatically_created_assets` via keyword arguments. Note that at
+              #   least one keyword argument is required. To specify no parameters, or to keep all
+              #   the default parameter values, pass an empty Hash as a request object (see above).
+              #
+              #   @param ad_group_ad [::String]
+              #     Required. The resource name of the AdGroupAd from which to remove
+              #     automatically created assets.
+              #   @param assets_with_field_type [::Array<::Google::Ads::GoogleAds::V17::Services::AssetsWithFieldType, ::Hash>]
+              #     Required. List of assets with field type to be removed from the AdGroupAd.
+              #
+              # @yield [response, operation] Access the result along with the RPC operation
+              # @yieldparam response [::Google::Protobuf::Empty]
+              # @yieldparam operation [::GRPC::ActiveCall::Operation]
+              #
+              # @return [::Google::Protobuf::Empty]
+              #
+              # @raise [Google::Ads::GoogleAds::Error] if the RPC is aborted.
+              #
+              # @example Basic example
+              #   require "google/ads/google_ads/v17/services"
+              #
+              #   # Create a client object. The client can be reused for multiple calls.
+              #   client = Google::Ads::GoogleAds::V17::Services::AdGroupAdService::Client.new
+              #
+              #   # Create a request. To set request fields, pass in keyword arguments.
+              #   request = Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest.new
+              #
+              #   # Call the remove_automatically_created_assets method.
+              #   result = client.remove_automatically_created_assets request
+              #
+              #   # The returned object is of type Google::Protobuf::Empty.
+              #   p result
+              #
+              def remove_automatically_created_assets request, options = nil
+                raise ::ArgumentError, "request must be provided" if request.nil?
+
+                request = ::Gapic::Protobuf.coerce request,
+                                                   to: ::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest
+
+                # Converts hash and nil to an options object
+                options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
+
+                # Customize the options with defaults
+                metadata = @config.rpcs.remove_automatically_created_assets.metadata.to_h
+
+                # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
+                metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
+                  lib_name: @config.lib_name, lib_version: @config.lib_version,
+                  gapic_version: ::Google::Ads::GoogleAds::VERSION
+                metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
+                metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
+
+                header_params = {}
+                if request.ad_group_ad
+                  header_params["ad_group_ad"] = request.ad_group_ad
+                end
+
+                request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
+                metadata[:"x-goog-request-params"] ||= request_params_header
+
+                options.apply_defaults timeout:      @config.rpcs.remove_automatically_created_assets.timeout,
+                                       metadata:     metadata,
+                                       retry_policy: @config.rpcs.remove_automatically_created_assets.retry_policy
+
+                options.apply_defaults timeout:      @config.timeout,
+                                       metadata:     @config.metadata,
+                                       retry_policy: @config.retry_policy
+
+                @ad_group_ad_service_stub.call_rpc :remove_automatically_created_assets, request,
+                                                   options: options do |response, operation|
+                  yield response, operation if block_given?
+                  return response
+                end
+                # rescue GRPC::BadStatus => grpc_error
+                #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
+              end
+
               ##
               # Configuration class for the AdGroupAdService API.
               #
@@ -467,11 +569,18 @@ class Rpcs
                   # @return [::Gapic::Config::Method]
                   #
                   attr_reader :mutate_ad_group_ads
+                  ##
+                  # RPC-specific configuration for `remove_automatically_created_assets`
+                  # @return [::Gapic::Config::Method]
+                  #
+                  attr_reader :remove_automatically_created_assets
 
                   # @private
                   def initialize parent_rpcs = nil
                     mutate_ad_group_ads_config = parent_rpcs.mutate_ad_group_ads if parent_rpcs.respond_to? :mutate_ad_group_ads
                     @mutate_ad_group_ads = ::Gapic::Config::Method.new mutate_ad_group_ads_config
+                    remove_automatically_created_assets_config = parent_rpcs.remove_automatically_created_assets if parent_rpcs.respond_to? :remove_automatically_created_assets
+                    @remove_automatically_created_assets = ::Gapic::Config::Method.new remove_automatically_created_assets_config
 
                     yield self if block_given?
                   end
diff --git a/lib/google/ads/google_ads/v17/services/ad_group_ad_service/paths.rb b/lib/google/ads/google_ads/v17/services/ad_group_ad_service/paths.rb
index 9ef2a649..10fc474f 100644
--- a/lib/google/ads/google_ads/v17/services/ad_group_ad_service/paths.rb
+++ b/lib/google/ads/google_ads/v17/services/ad_group_ad_service/paths.rb
@@ -99,6 +99,23 @@ def ad_group_ad_label_path customer_id:, ad_group_id:, ad_id:, label_id:
                 "customers/#{customer_id}/adGroupAdLabels/#{ad_group_id}~#{ad_id}~#{label_id}"
               end
 
+              ##
+              # Create a fully-qualified Asset resource string.
+              #
+              # The resource will be in the following format:
+              #
+              # `customers/{customer_id}/assets/{asset_id}`
+              #
+              # @param customer_id [String]
+              # @param asset_id [String]
+              #
+              # @return [::String]
+              def asset_path customer_id:, asset_id:
+                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
+
+                "customers/#{customer_id}/assets/#{asset_id}"
+              end
+
               extend self
             end
           end
diff --git a/lib/google/ads/google_ads/v17/services/ad_group_ad_service_pb.rb b/lib/google/ads/google_ads/v17/services/ad_group_ad_service_pb.rb
index c5141eca..e4db2f9e 100644
--- a/lib/google/ads/google_ads/v17/services/ad_group_ad_service_pb.rb
+++ b/lib/google/ads/google_ads/v17/services/ad_group_ad_service_pb.rb
@@ -5,17 +5,19 @@
 require 'google/protobuf'
 
 require 'google/ads/google_ads/v17/common/policy_pb'
+require 'google/ads/google_ads/v17/enums/asset_field_type_pb'
 require 'google/ads/google_ads/v17/enums/response_content_type_pb'
 require 'google/ads/google_ads/v17/resources/ad_group_ad_pb'
 require 'google/api/annotations_pb'
 require 'google/api/client_pb'
 require 'google/api/field_behavior_pb'
 require 'google/api/resource_pb'
+require 'google/protobuf/empty_pb'
 require 'google/protobuf/field_mask_pb'
 require 'google/rpc/status_pb'
 
 
-descriptor_data = "\n;google/ads/googleads/v17/services/ad_group_ad_service.proto\x12!google.ads.googleads.v17.services\x1a,google/ads/googleads/v17/common/policy.proto\x1a:google/ads/googleads/v17/enums/response_content_type.proto\x1a\x34google/ads/googleads/v17/resources/ad_group_ad.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\x9f\x02\n\x17MutateAdGroupAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12N\n\noperations\x18\x02 \x03(\x0b\x32\x35.google.ads.googleads.v17.services.AdGroupAdOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12j\n\x15response_content_type\x18\x05 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType\"\xf0\x02\n\x12\x41\x64GroupAdOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12_\n\x1bpolicy_validation_parameter\x18\x05 \x01(\x0b\x32:.google.ads.googleads.v17.common.PolicyValidationParameter\x12?\n\x06\x63reate\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAdH\x00\x12?\n\x06update\x18\x02 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAdH\x00\x12\x39\n\x06remove\x18\x03 \x01(\tB\'\xfa\x41$\n\"googleads.googleapis.com/AdGroupAdH\x00\x42\x0b\n\toperation\"\x98\x01\n\x18MutateAdGroupAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12I\n\x07results\x18\x02 \x03(\x0b\x32\x38.google.ads.googleads.v17.services.MutateAdGroupAdResult\"\x9b\x01\n\x15MutateAdGroupAdResult\x12>\n\rresource_name\x18\x01 \x01(\tB\'\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12\x42\n\x0b\x61\x64_group_ad\x18\x02 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAd2\xbd\x02\n\x10\x41\x64GroupAdService\x12\xe1\x01\n\x10MutateAdGroupAds\x12:.google.ads.googleads.v17.services.MutateAdGroupAdsRequest\x1a;.google.ads.googleads.v17.services.MutateAdGroupAdsResponse\"T\xda\x41\x16\x63ustomer_id,operations\x82\xd3\xe4\x93\x02\x35\"0/v17/customers/{customer_id=*}/adGroupAds:mutate:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x81\x02\n%com.google.ads.googleads.v17.servicesB\x15\x41\x64GroupAdServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
+descriptor_data = "\n;google/ads/googleads/v17/services/ad_group_ad_service.proto\x12!google.ads.googleads.v17.services\x1a,google/ads/googleads/v17/common/policy.proto\x1a\x35google/ads/googleads/v17/enums/asset_field_type.proto\x1a:google/ads/googleads/v17/enums/response_content_type.proto\x1a\x34google/ads/googleads/v17/resources/ad_group_ad.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\x9f\x02\n\x17MutateAdGroupAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12N\n\noperations\x18\x02 \x03(\x0b\x32\x35.google.ads.googleads.v17.services.AdGroupAdOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12j\n\x15response_content_type\x18\x05 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType\"\xf0\x02\n\x12\x41\x64GroupAdOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12_\n\x1bpolicy_validation_parameter\x18\x05 \x01(\x0b\x32:.google.ads.googleads.v17.common.PolicyValidationParameter\x12?\n\x06\x63reate\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAdH\x00\x12?\n\x06update\x18\x02 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAdH\x00\x12\x39\n\x06remove\x18\x03 \x01(\tB\'\xfa\x41$\n\"googleads.googleapis.com/AdGroupAdH\x00\x42\x0b\n\toperation\"\x98\x01\n\x18MutateAdGroupAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12I\n\x07results\x18\x02 \x03(\x0b\x32\x38.google.ads.googleads.v17.services.MutateAdGroupAdResult\"\x9b\x01\n\x15MutateAdGroupAdResult\x12>\n\rresource_name\x18\x01 \x01(\tB\'\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12\x42\n\x0b\x61\x64_group_ad\x18\x02 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAd\"\xc7\x01\n\'RemoveAutomaticallyCreatedAssetsRequest\x12?\n\x0b\x61\x64_group_ad\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12[\n\x16\x61ssets_with_field_type\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v17.services.AssetsWithFieldTypeB\x03\xe0\x41\x02\"\xae\x01\n\x13\x41ssetsWithFieldType\x12\x35\n\x05\x61sset\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1egoogleads.googleapis.com/Asset\x12`\n\x10\x61sset_field_type\x18\x02 \x01(\x0e\x32\x41.google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldTypeB\x03\xe0\x41\x02\x32\xc4\x04\n\x10\x41\x64GroupAdService\x12\xe1\x01\n\x10MutateAdGroupAds\x12:.google.ads.googleads.v17.services.MutateAdGroupAdsRequest\x1a;.google.ads.googleads.v17.services.MutateAdGroupAdsResponse\"T\xda\x41\x16\x63ustomer_id,operations\x82\xd3\xe4\x93\x02\x35\"0/v17/customers/{customer_id=*}/adGroupAds:mutate:\x01*\x12\x84\x02\n RemoveAutomaticallyCreatedAssets\x12J.google.ads.googleads.v17.services.RemoveAutomaticallyCreatedAssetsRequest\x1a\x16.google.protobuf.Empty\"|\xda\x41\"ad_group_ad,assets_with_field_type\x82\xd3\xe4\x93\x02Q\"L/v17/{ad_group_ad=customers/*/adGroupAds/*}:removeAutomaticallyCreatedAssets:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x81\x02\n%com.google.ads.googleads.v17.servicesB\x15\x41\x64GroupAdServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
@@ -54,6 +56,8 @@ module Services
           AdGroupAdOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AdGroupAdOperation").msgclass
           MutateAdGroupAdsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.MutateAdGroupAdsResponse").msgclass
           MutateAdGroupAdResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.MutateAdGroupAdResult").msgclass
+          RemoveAutomaticallyCreatedAssetsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.RemoveAutomaticallyCreatedAssetsRequest").msgclass
+          AssetsWithFieldType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AssetsWithFieldType").msgclass
         end
       end
     end
diff --git a/lib/google/ads/google_ads/v17/services/ad_group_ad_service_services_pb.rb b/lib/google/ads/google_ads/v17/services/ad_group_ad_service_services_pb.rb
index c6841c1e..1c45c75c 100644
--- a/lib/google/ads/google_ads/v17/services/ad_group_ad_service_services_pb.rb
+++ b/lib/google/ads/google_ads/v17/services/ad_group_ad_service_services_pb.rb
@@ -83,6 +83,19 @@ class Service
               #   [StringLengthError]()
               #   [UrlFieldError]()
               rpc :MutateAdGroupAds, ::Google::Ads::GoogleAds::V17::Services::MutateAdGroupAdsRequest, ::Google::Ads::GoogleAds::V17::Services::MutateAdGroupAdsResponse
+              # Remove automatically created assets from an ad.
+              #
+              # List of thrown errors:
+              #   [AdError]()
+              #   [AuthenticationError]()
+              #   [AuthorizationError]()
+              #   [AutomaticallyCreatedAssetRemovalError]()
+              #   [HeaderError]()
+              #   [InternalError]()
+              #   [MutateError]()
+              #   [QuotaError]()
+              #   [RequestError]()
+              rpc :RemoveAutomaticallyCreatedAssets, ::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest, ::Google::Protobuf::Empty
             end
 
             Stub = Service.rpc_stub_class
diff --git a/lib/google/ads/google_ads/v17/services/audience_insights_service/client.rb b/lib/google/ads/google_ads/v17/services/audience_insights_service/client.rb
index f4dffd42..d95353cb 100644
--- a/lib/google/ads/google_ads/v17/services/audience_insights_service/client.rb
+++ b/lib/google/ads/google_ads/v17/services/audience_insights_service/client.rb
@@ -292,7 +292,7 @@ def generate_insights_finder_report request, options = nil
               #   @param options [::Gapic::CallOptions, ::Hash]
               #     Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
               #
-              # @overload list_audience_insights_attributes(customer_id: nil, dimensions: nil, query_text: nil, customer_insights_group: nil, location_country_filters: nil)
+              # @overload list_audience_insights_attributes(customer_id: nil, dimensions: nil, query_text: nil, customer_insights_group: nil, location_country_filters: nil, youtube_reach_location: nil)
               #   Pass arguments to `list_audience_insights_attributes` via keyword arguments. Note that at
               #   least one keyword argument is required. To specify no parameters, or to keep all
               #   the default parameter values, pass an empty Hash as a request object (see above).
@@ -315,6 +315,12 @@ def generate_insights_finder_report request, options = nil
               #     will be located in these countries. If this field is absent, then location
               #     attributes are not filtered by country. Setting this field when
               #     SUB_COUNTRY_LOCATION attributes are not requested will return an error.
+              #   @param youtube_reach_location [::Google::Ads::GoogleAds::V17::Common::LocationInfo, ::Hash]
+              #     If present, potential YouTube reach estimates within the specified market
+              #     will be returned for attributes for which they are available.  Reach is
+              #     only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and
+              #     IN_MARKET_USER_INTEREST dimensions, and may not be available for every
+              #     attribute of those dimensions in every market.
               #
               # @yield [response, operation] Access the result along with the RPC operation
               # @yieldparam response [::Google::Ads::GoogleAds::V17::Services::ListAudienceInsightsAttributesResponse]
@@ -692,6 +698,120 @@ def generate_suggested_targeting_insights request, options = nil
                 #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
               end
 
+              ##
+              # Returns a collection of audience attributes along with estimates of the
+              # overlap between their potential YouTube reach and that of a given input
+              # attribute.
+              #
+              # List of thrown errors:
+              #   [AudienceInsightsError]()
+              #   [AuthenticationError]()
+              #   [AuthorizationError]()
+              #   [FieldError]()
+              #   [HeaderError]()
+              #   [InternalError]()
+              #   [QuotaError]()
+              #   [RangeError]()
+              #   [RequestError]()
+              #
+              # @overload generate_audience_overlap_insights(request, options = nil)
+              #   Pass arguments to `generate_audience_overlap_insights` via a request object, either of type
+              #   {::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest} or an equivalent Hash.
+              #
+              #   @param request [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest, ::Hash]
+              #     A request object representing the call parameters. Required. To specify no
+              #     parameters, or to keep all the default parameter values, pass an empty Hash.
+              #   @param options [::Gapic::CallOptions, ::Hash]
+              #     Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
+              #
+              # @overload generate_audience_overlap_insights(customer_id: nil, country_location: nil, primary_attribute: nil, dimensions: nil, customer_insights_group: nil)
+              #   Pass arguments to `generate_audience_overlap_insights` via keyword arguments. Note that at
+              #   least one keyword argument is required. To specify no parameters, or to keep all
+              #   the default parameter values, pass an empty Hash as a request object (see above).
+              #
+              #   @param customer_id [::String]
+              #     Required. The ID of the customer.
+              #   @param country_location [::Google::Ads::GoogleAds::V17::Common::LocationInfo, ::Hash]
+              #     Required. The country in which to calculate the sizes and overlaps of
+              #     audiences.
+              #   @param primary_attribute [::Google::Ads::GoogleAds::V17::Services::AudienceInsightsAttribute, ::Hash]
+              #     Required. The audience attribute that should be intersected with all other
+              #     eligible audiences.  This must be an Affinity or In-Market UserInterest, an
+              #     AgeRange or a Gender.
+              #   @param dimensions [::Array<::Google::Ads::GoogleAds::V17::Enums::AudienceInsightsDimensionEnum::AudienceInsightsDimension>]
+              #     Required. The types of attributes of which to calculate the overlap with
+              #     the primary_attribute. The values must be a subset of
+              #     AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.
+              #   @param customer_insights_group [::String]
+              #     The name of the customer being planned for.  This is a user-defined value.
+              #
+              # @yield [response, operation] Access the result along with the RPC operation
+              # @yieldparam response [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse]
+              # @yieldparam operation [::GRPC::ActiveCall::Operation]
+              #
+              # @return [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse]
+              #
+              # @raise [Google::Ads::GoogleAds::Error] if the RPC is aborted.
+              #
+              # @example Basic example
+              #   require "google/ads/google_ads/v17/services"
+              #
+              #   # Create a client object. The client can be reused for multiple calls.
+              #   client = Google::Ads::GoogleAds::V17::Services::AudienceInsightsService::Client.new
+              #
+              #   # Create a request. To set request fields, pass in keyword arguments.
+              #   request = Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest.new
+              #
+              #   # Call the generate_audience_overlap_insights method.
+              #   result = client.generate_audience_overlap_insights request
+              #
+              #   # The returned object is of type Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse.
+              #   p result
+              #
+              def generate_audience_overlap_insights request, options = nil
+                raise ::ArgumentError, "request must be provided" if request.nil?
+
+                request = ::Gapic::Protobuf.coerce request,
+                                                   to: ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest
+
+                # Converts hash and nil to an options object
+                options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
+
+                # Customize the options with defaults
+                metadata = @config.rpcs.generate_audience_overlap_insights.metadata.to_h
+
+                # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
+                metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
+                  lib_name: @config.lib_name, lib_version: @config.lib_version,
+                  gapic_version: ::Google::Ads::GoogleAds::VERSION
+                metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
+                metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
+
+                header_params = {}
+                if request.customer_id
+                  header_params["customer_id"] = request.customer_id
+                end
+
+                request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
+                metadata[:"x-goog-request-params"] ||= request_params_header
+
+                options.apply_defaults timeout:      @config.rpcs.generate_audience_overlap_insights.timeout,
+                                       metadata:     metadata,
+                                       retry_policy: @config.rpcs.generate_audience_overlap_insights.retry_policy
+
+                options.apply_defaults timeout:      @config.timeout,
+                                       metadata:     @config.metadata,
+                                       retry_policy: @config.retry_policy
+
+                @audience_insights_service_stub.call_rpc :generate_audience_overlap_insights, request,
+                                                         options: options do |response, operation|
+                  yield response, operation if block_given?
+                  return response
+                end
+                # rescue GRPC::BadStatus => grpc_error
+                #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
+              end
+
               ##
               # Configuration class for the AudienceInsightsService API.
               #
@@ -871,6 +991,11 @@ class Rpcs
                   # @return [::Gapic::Config::Method]
                   #
                   attr_reader :generate_suggested_targeting_insights
+                  ##
+                  # RPC-specific configuration for `generate_audience_overlap_insights`
+                  # @return [::Gapic::Config::Method]
+                  #
+                  attr_reader :generate_audience_overlap_insights
 
                   # @private
                   def initialize parent_rpcs = nil
@@ -884,6 +1009,8 @@ def initialize parent_rpcs = nil
                     @generate_audience_composition_insights = ::Gapic::Config::Method.new generate_audience_composition_insights_config
                     generate_suggested_targeting_insights_config = parent_rpcs.generate_suggested_targeting_insights if parent_rpcs.respond_to? :generate_suggested_targeting_insights
                     @generate_suggested_targeting_insights = ::Gapic::Config::Method.new generate_suggested_targeting_insights_config
+                    generate_audience_overlap_insights_config = parent_rpcs.generate_audience_overlap_insights if parent_rpcs.respond_to? :generate_audience_overlap_insights
+                    @generate_audience_overlap_insights = ::Gapic::Config::Method.new generate_audience_overlap_insights_config
 
                     yield self if block_given?
                   end
diff --git a/lib/google/ads/google_ads/v17/services/audience_insights_service_pb.rb b/lib/google/ads/google_ads/v17/services/audience_insights_service_pb.rb
index fd9e6fcb..af116bf6 100644
--- a/lib/google/ads/google_ads/v17/services/audience_insights_service_pb.rb
+++ b/lib/google/ads/google_ads/v17/services/audience_insights_service_pb.rb
@@ -12,7 +12,7 @@
 require 'google/api/field_behavior_pb'
 
 
-descriptor_data = "\nAgoogle/ads/googleads/v17/services/audience_insights_service.proto\x12!google.ads.googleads.v17.services\x1a.google/ads/googleads/v17/common/criteria.proto\x1a+google/ads/googleads/v17/common/dates.proto\x1a@google/ads/googleads/v17/enums/audience_insights_dimension.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"\x94\x02\n#GenerateInsightsFinderReportRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12X\n\x11\x62\x61seline_audience\x18\x02 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.BasicInsightsAudienceB\x03\xe0\x41\x02\x12X\n\x11specific_audience\x18\x03 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.BasicInsightsAudienceB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x04 \x01(\t\"@\n$GenerateInsightsFinderReportResponse\x12\x18\n\x10saved_report_url\x18\x01 \x01(\t\"\x89\x03\n*GenerateAudienceCompositionInsightsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12J\n\x08\x61udience\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x02\x12N\n\x11\x62\x61seline_audience\x18\x06 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudience\x12\x12\n\ndata_month\x18\x03 \x01(\t\x12p\n\ndimensions\x18\x04 \x03(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimensionB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x05 \x01(\t\"~\n+GenerateAudienceCompositionInsightsResponse\x12O\n\x08sections\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionSection\"\xa5\x02\n)GenerateSuggestedTargetingInsightsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12J\n\x08\x61udience\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x02\x12S\n\x11\x62\x61seline_audience\x18\x03 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x01\x12\x17\n\ndata_month\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17\x63ustomer_insights_group\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x80\x01\n*GenerateSuggestedTargetingInsightsResponse\x12R\n\x0bsuggestions\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v17.services.TargetingSuggestionMetrics\"\x95\x03\n\x1aTargetingSuggestionMetrics\x12W\n\tlocations\x18\x01 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12\x41\n\nage_ranges\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\\\n\x0euser_interests\x18\x04 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12\x10\n\x08\x63overage\x18\x05 \x01(\x01\x12\r\n\x05index\x18\x06 \x01(\x01\x12\x1f\n\x17potential_youtube_reach\x18\x07 \x01(\x03\"\xbe\x02\n%ListAudienceInsightsAttributesRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12p\n\ndimensions\x18\x02 \x03(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimensionB\x03\xe0\x41\x02\x12\x17\n\nquery_text\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x04 \x01(\t\x12O\n\x18location_country_filters\x18\x05 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\"\x82\x01\n&ListAudienceInsightsAttributesResponse\x12X\n\nattributes\x18\x01 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\"\"\n ListInsightsEligibleDatesRequest\"~\n!ListInsightsEligibleDatesResponse\x12\x13\n\x0b\x64\x61ta_months\x18\x01 \x03(\t\x12\x44\n\x10last_thirty_days\x18\x02 \x01(\x0b\x32*.google.ads.googleads.v17.common.DateRange\"\x9e\x06\n\x19\x41udienceInsightsAttribute\x12\x42\n\tage_range\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfoH\x00\x12=\n\x06gender\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfoH\x00\x12\x41\n\x08location\x18\x03 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoH\x00\x12J\n\ruser_interest\x18\x04 \x01(\x0b\x32\x31.google.ads.googleads.v17.common.UserInterestInfoH\x00\x12K\n\x06\x65ntity\x18\x05 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AudienceInsightsEntityH\x00\x12O\n\x08\x63\x61tegory\x18\x06 \x01(\x0b\x32;.google.ads.googleads.v17.services.AudienceInsightsCategoryH\x00\x12Z\n\x0e\x64ynamic_lineup\x18\x07 \x01(\x0b\x32@.google.ads.googleads.v17.services.AudienceInsightsDynamicLineupH\x00\x12N\n\x0fparental_status\x18\x08 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.ParentalStatusInfoH\x00\x12H\n\x0cincome_range\x18\t \x01(\x0b\x32\x30.google.ads.googleads.v17.common.IncomeRangeInfoH\x00\x12N\n\x0fyoutube_channel\x18\n \x01(\x0b\x32\x33.google.ads.googleads.v17.common.YouTubeChannelInfoH\x00\x42\x0b\n\tattribute\"\xbe\x01\n\x15\x41udienceInsightsTopic\x12K\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AudienceInsightsEntityH\x00\x12O\n\x08\x63\x61tegory\x18\x02 \x01(\x0b\x32;.google.ads.googleads.v17.services.AudienceInsightsCategoryH\x00\x42\x07\n\x05topic\"A\n\x16\x41udienceInsightsEntity\x12\'\n\x1aknowledge_graph_machine_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"4\n\x18\x41udienceInsightsCategory\x12\x18\n\x0b\x63\x61tegory_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"?\n\x1d\x41udienceInsightsDynamicLineup\x12\x1e\n\x11\x64ynamic_lineup_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xc8\x03\n\x15\x42\x61sicInsightsAudience\x12L\n\x10\x63ountry_location\x18\x01 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoB\x03\xe0\x41\x02\x12L\n\x15sub_country_locations\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\x41\n\nage_ranges\x18\x04 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12I\n\x0euser_interests\x18\x05 \x03(\x0b\x32\x31.google.ads.googleads.v17.common.UserInterestInfo\x12H\n\x06topics\x18\x06 \x03(\x0b\x32\x38.google.ads.googleads.v17.services.AudienceInsightsTopic\"\xd8\x04\n!AudienceInsightsAttributeMetadata\x12j\n\tdimension\x18\x01 \x01(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension\x12O\n\tattribute\x18\x02 \x01(\x0b\x32<.google.ads.googleads.v17.services.AudienceInsightsAttribute\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x14\n\x0c\x64isplay_info\x18\x05 \x01(\t\x12\x66\n\x18youtube_channel_metadata\x18\x06 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.YouTubeChannelAttributeMetadataH\x00\x12g\n\x1a\x64ynamic_attribute_metadata\x18\x07 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.DynamicLineupAttributeMetadataH\x00\x12\x63\n\x1blocation_attribute_metadata\x18\x08 \x01(\x0b\x32<.google.ads.googleads.v17.services.LocationAttributeMetadataH\x00\x42\x14\n\x12\x64imension_metadata\";\n\x1fYouTubeChannelAttributeMetadata\x12\x18\n\x10subscriber_count\x18\x01 \x01(\x03\"\x80\x05\n\x1e\x44ynamicLineupAttributeMetadata\x12H\n\x11inventory_country\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12%\n\x18median_monthly_inventory\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12&\n\x19\x63hannel_count_lower_bound\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12&\n\x19\x63hannel_count_upper_bound\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12h\n\x0fsample_channels\x18\x05 \x03(\x0b\x32O.google.ads.googleads.v17.services.DynamicLineupAttributeMetadata.SampleChannel\x1a\xd9\x01\n\rSampleChannel\x12L\n\x0fyoutube_channel\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.YouTubeChannelInfo\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x64\n\x18youtube_channel_metadata\x18\x03 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.YouTubeChannelAttributeMetadataB\x1b\n\x19_median_monthly_inventoryB\x1c\n\x1a_channel_count_lower_boundB\x1c\n\x1a_channel_count_upper_bound\"d\n\x19LocationAttributeMetadata\x12G\n\x10\x63ountry_location\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\"\x89\x05\n\x10InsightsAudience\x12M\n\x11\x63ountry_locations\x18\x01 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoB\x03\xe0\x41\x02\x12L\n\x15sub_country_locations\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\x41\n\nage_ranges\x18\x04 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12L\n\x0fparental_status\x18\x05 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.ParentalStatusInfo\x12G\n\rincome_ranges\x18\x06 \x03(\x0b\x32\x30.google.ads.googleads.v17.common.IncomeRangeInfo\x12Y\n\x0f\x64ynamic_lineups\x18\x07 \x03(\x0b\x32@.google.ads.googleads.v17.services.AudienceInsightsDynamicLineup\x12\x66\n\x1btopic_audience_combinations\x18\x08 \x03(\x0b\x32\x41.google.ads.googleads.v17.services.InsightsAudienceAttributeGroup\"w\n\x1eInsightsAudienceAttributeGroup\x12U\n\nattributes\x18\x01 \x03(\x0b\x32<.google.ads.googleads.v17.services.AudienceInsightsAttributeB\x03\xe0\x41\x02\"\xc7\x02\n\x1a\x41udienceCompositionSection\x12j\n\tdimension\x18\x01 \x01(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension\x12W\n\x0etop_attributes\x18\x03 \x03(\x0b\x32?.google.ads.googleads.v17.services.AudienceCompositionAttribute\x12\x64\n\x14\x63lustered_attributes\x18\x04 \x03(\x0b\x32\x46.google.ads.googleads.v17.services.AudienceCompositionAttributeCluster\"\xf0\x01\n#AudienceCompositionAttributeCluster\x12\x1c\n\x14\x63luster_display_name\x18\x01 \x01(\t\x12V\n\x0f\x63luster_metrics\x18\x03 \x01(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionMetrics\x12S\n\nattributes\x18\x04 \x03(\x0b\x32?.google.ads.googleads.v17.services.AudienceCompositionAttribute\"s\n\x1a\x41udienceCompositionMetrics\x12\x1f\n\x17\x62\x61seline_audience_share\x18\x01 \x01(\x01\x12\x16\n\x0e\x61udience_share\x18\x02 \x01(\x01\x12\r\n\x05index\x18\x03 \x01(\x01\x12\r\n\x05score\x18\x04 \x01(\x01\"\xd0\x01\n\x1c\x41udienceCompositionAttribute\x12`\n\x12\x61ttribute_metadata\x18\x01 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12N\n\x07metrics\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionMetrics2\xfa\x0b\n\x17\x41udienceInsightsService\x12\xa9\x02\n\x1cGenerateInsightsFinderReport\x12\x46.google.ads.googleads.v17.services.GenerateInsightsFinderReportRequest\x1aG.google.ads.googleads.v17.services.GenerateInsightsFinderReportResponse\"x\xda\x41/customer_id,baseline_audience,specific_audience\x82\xd3\xe4\x93\x02@\";/v17/customers/{customer_id=*}:generateInsightsFinderReport:\x01*\x12\xa5\x02\n\x1eListAudienceInsightsAttributes\x12H.google.ads.googleads.v17.services.ListAudienceInsightsAttributesRequest\x1aI.google.ads.googleads.v17.services.ListAudienceInsightsAttributesResponse\"n\xda\x41!customer_id,dimensions,query_text\x82\xd3\xe4\x93\x02\x44\"?/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes:\x01*\x12\xe2\x01\n\x19ListInsightsEligibleDates\x12\x43.google.ads.googleads.v17.services.ListInsightsEligibleDatesRequest\x1a\x44.google.ads.googleads.v17.services.ListInsightsEligibleDatesResponse\":\x82\xd3\xe4\x93\x02\x34\"//v17/audienceInsights:listInsightsEligibleDates:\x01*\x12\xb5\x02\n#GenerateAudienceCompositionInsights\x12M.google.ads.googleads.v17.services.GenerateAudienceCompositionInsightsRequest\x1aN.google.ads.googleads.v17.services.GenerateAudienceCompositionInsightsResponse\"o\xda\x41\x1f\x63ustomer_id,audience,dimensions\x82\xd3\xe4\x93\x02G\"B/v17/customers/{customer_id=*}:generateAudienceCompositionInsights:\x01*\x12\xa6\x02\n\"GenerateSuggestedTargetingInsights\x12L.google.ads.googleads.v17.services.GenerateSuggestedTargetingInsightsRequest\x1aM.google.ads.googleads.v17.services.GenerateSuggestedTargetingInsightsResponse\"c\xda\x41\x14\x63ustomer_id,audience\x82\xd3\xe4\x93\x02\x46\"A/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x88\x02\n%com.google.ads.googleads.v17.servicesB\x1c\x41udienceInsightsServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
+descriptor_data = "\nAgoogle/ads/googleads/v17/services/audience_insights_service.proto\x12!google.ads.googleads.v17.services\x1a.google/ads/googleads/v17/common/criteria.proto\x1a+google/ads/googleads/v17/common/dates.proto\x1a@google/ads/googleads/v17/enums/audience_insights_dimension.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"\x94\x02\n#GenerateInsightsFinderReportRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12X\n\x11\x62\x61seline_audience\x18\x02 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.BasicInsightsAudienceB\x03\xe0\x41\x02\x12X\n\x11specific_audience\x18\x03 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.BasicInsightsAudienceB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x04 \x01(\t\"@\n$GenerateInsightsFinderReportResponse\x12\x18\n\x10saved_report_url\x18\x01 \x01(\t\"\x89\x03\n*GenerateAudienceCompositionInsightsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12J\n\x08\x61udience\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x02\x12N\n\x11\x62\x61seline_audience\x18\x06 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudience\x12\x12\n\ndata_month\x18\x03 \x01(\t\x12p\n\ndimensions\x18\x04 \x03(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimensionB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x05 \x01(\t\"~\n+GenerateAudienceCompositionInsightsResponse\x12O\n\x08sections\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionSection\"\xa5\x02\n)GenerateSuggestedTargetingInsightsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12J\n\x08\x61udience\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x02\x12S\n\x11\x62\x61seline_audience\x18\x03 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.InsightsAudienceB\x03\xe0\x41\x01\x12\x17\n\ndata_month\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17\x63ustomer_insights_group\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x80\x01\n*GenerateSuggestedTargetingInsightsResponse\x12R\n\x0bsuggestions\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v17.services.TargetingSuggestionMetrics\"\x95\x03\n\x1aTargetingSuggestionMetrics\x12W\n\tlocations\x18\x01 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12\x41\n\nage_ranges\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\\\n\x0euser_interests\x18\x04 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12\x10\n\x08\x63overage\x18\x05 \x01(\x01\x12\r\n\x05index\x18\x06 \x01(\x01\x12\x1f\n\x17potential_youtube_reach\x18\x07 \x01(\x03\"\x8d\x03\n%ListAudienceInsightsAttributesRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12p\n\ndimensions\x18\x02 \x03(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimensionB\x03\xe0\x41\x02\x12\x17\n\nquery_text\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x04 \x01(\t\x12O\n\x18location_country_filters\x18\x05 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12M\n\x16youtube_reach_location\x18\x06 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\"\x82\x01\n&ListAudienceInsightsAttributesResponse\x12X\n\nattributes\x18\x01 \x03(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\"\"\n ListInsightsEligibleDatesRequest\"~\n!ListInsightsEligibleDatesResponse\x12\x13\n\x0b\x64\x61ta_months\x18\x01 \x03(\t\x12\x44\n\x10last_thirty_days\x18\x02 \x01(\x0b\x32*.google.ads.googleads.v17.common.DateRange\"\x81\x03\n&GenerateAudienceOverlapInsightsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12L\n\x10\x63ountry_location\x18\x02 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoB\x03\xe0\x41\x02\x12\\\n\x11primary_attribute\x18\x03 \x01(\x0b\x32<.google.ads.googleads.v17.services.AudienceInsightsAttributeB\x03\xe0\x41\x02\x12p\n\ndimensions\x18\x04 \x03(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimensionB\x03\xe0\x41\x02\x12\x1f\n\x17\x63ustomer_insights_group\x18\x05 \x01(\t\"\xe9\x01\n\'GenerateAudienceOverlapInsightsResponse\x12h\n\x1aprimary_attribute_metadata\x18\x01 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12T\n\x11\x64imension_results\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v17.services.DimensionOverlapResult\"\xcb\x01\n\x16\x44imensionOverlapResult\x12j\n\tdimension\x18\x01 \x01(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension\x12\x45\n\x05items\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v17.services.AudienceOverlapItem\"\xa5\x01\n\x13\x41udienceOverlapItem\x12`\n\x12\x61ttribute_metadata\x18\x01 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12,\n$potential_youtube_reach_intersection\x18\x02 \x01(\x03\"\x9e\x06\n\x19\x41udienceInsightsAttribute\x12\x42\n\tage_range\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfoH\x00\x12=\n\x06gender\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfoH\x00\x12\x41\n\x08location\x18\x03 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoH\x00\x12J\n\ruser_interest\x18\x04 \x01(\x0b\x32\x31.google.ads.googleads.v17.common.UserInterestInfoH\x00\x12K\n\x06\x65ntity\x18\x05 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AudienceInsightsEntityH\x00\x12O\n\x08\x63\x61tegory\x18\x06 \x01(\x0b\x32;.google.ads.googleads.v17.services.AudienceInsightsCategoryH\x00\x12Z\n\x0e\x64ynamic_lineup\x18\x07 \x01(\x0b\x32@.google.ads.googleads.v17.services.AudienceInsightsDynamicLineupH\x00\x12N\n\x0fparental_status\x18\x08 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.ParentalStatusInfoH\x00\x12H\n\x0cincome_range\x18\t \x01(\x0b\x32\x30.google.ads.googleads.v17.common.IncomeRangeInfoH\x00\x12N\n\x0fyoutube_channel\x18\n \x01(\x0b\x32\x33.google.ads.googleads.v17.common.YouTubeChannelInfoH\x00\x42\x0b\n\tattribute\"\xbe\x01\n\x15\x41udienceInsightsTopic\x12K\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AudienceInsightsEntityH\x00\x12O\n\x08\x63\x61tegory\x18\x02 \x01(\x0b\x32;.google.ads.googleads.v17.services.AudienceInsightsCategoryH\x00\x42\x07\n\x05topic\"A\n\x16\x41udienceInsightsEntity\x12\'\n\x1aknowledge_graph_machine_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"4\n\x18\x41udienceInsightsCategory\x12\x18\n\x0b\x63\x61tegory_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"?\n\x1d\x41udienceInsightsDynamicLineup\x12\x1e\n\x11\x64ynamic_lineup_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xc8\x03\n\x15\x42\x61sicInsightsAudience\x12L\n\x10\x63ountry_location\x18\x01 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoB\x03\xe0\x41\x02\x12L\n\x15sub_country_locations\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\x41\n\nage_ranges\x18\x04 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12I\n\x0euser_interests\x18\x05 \x03(\x0b\x32\x31.google.ads.googleads.v17.common.UserInterestInfo\x12H\n\x06topics\x18\x06 \x03(\x0b\x32\x38.google.ads.googleads.v17.services.AudienceInsightsTopic\"\xf9\x04\n!AudienceInsightsAttributeMetadata\x12j\n\tdimension\x18\x01 \x01(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension\x12O\n\tattribute\x18\x02 \x01(\x0b\x32<.google.ads.googleads.v17.services.AudienceInsightsAttribute\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x14\n\x0c\x64isplay_info\x18\x05 \x01(\t\x12\x1f\n\x17potential_youtube_reach\x18\t \x01(\x03\x12\x66\n\x18youtube_channel_metadata\x18\x06 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.YouTubeChannelAttributeMetadataH\x00\x12g\n\x1a\x64ynamic_attribute_metadata\x18\x07 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.DynamicLineupAttributeMetadataH\x00\x12\x63\n\x1blocation_attribute_metadata\x18\x08 \x01(\x0b\x32<.google.ads.googleads.v17.services.LocationAttributeMetadataH\x00\x42\x14\n\x12\x64imension_metadata\";\n\x1fYouTubeChannelAttributeMetadata\x12\x18\n\x10subscriber_count\x18\x01 \x01(\x03\"\x80\x05\n\x1e\x44ynamicLineupAttributeMetadata\x12H\n\x11inventory_country\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12%\n\x18median_monthly_inventory\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12&\n\x19\x63hannel_count_lower_bound\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12&\n\x19\x63hannel_count_upper_bound\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12h\n\x0fsample_channels\x18\x05 \x03(\x0b\x32O.google.ads.googleads.v17.services.DynamicLineupAttributeMetadata.SampleChannel\x1a\xd9\x01\n\rSampleChannel\x12L\n\x0fyoutube_channel\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.YouTubeChannelInfo\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x64\n\x18youtube_channel_metadata\x18\x03 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.YouTubeChannelAttributeMetadataB\x1b\n\x19_median_monthly_inventoryB\x1c\n\x1a_channel_count_lower_boundB\x1c\n\x1a_channel_count_upper_bound\"d\n\x19LocationAttributeMetadata\x12G\n\x10\x63ountry_location\x18\x01 \x01(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\"\x89\x05\n\x10InsightsAudience\x12M\n\x11\x63ountry_locations\x18\x01 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfoB\x03\xe0\x41\x02\x12L\n\x15sub_country_locations\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v17.common.LocationInfo\x12;\n\x06gender\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.common.GenderInfo\x12\x41\n\nage_ranges\x18\x04 \x03(\x0b\x32-.google.ads.googleads.v17.common.AgeRangeInfo\x12L\n\x0fparental_status\x18\x05 \x01(\x0b\x32\x33.google.ads.googleads.v17.common.ParentalStatusInfo\x12G\n\rincome_ranges\x18\x06 \x03(\x0b\x32\x30.google.ads.googleads.v17.common.IncomeRangeInfo\x12Y\n\x0f\x64ynamic_lineups\x18\x07 \x03(\x0b\x32@.google.ads.googleads.v17.services.AudienceInsightsDynamicLineup\x12\x66\n\x1btopic_audience_combinations\x18\x08 \x03(\x0b\x32\x41.google.ads.googleads.v17.services.InsightsAudienceAttributeGroup\"w\n\x1eInsightsAudienceAttributeGroup\x12U\n\nattributes\x18\x01 \x03(\x0b\x32<.google.ads.googleads.v17.services.AudienceInsightsAttributeB\x03\xe0\x41\x02\"\xc7\x02\n\x1a\x41udienceCompositionSection\x12j\n\tdimension\x18\x01 \x01(\x0e\x32W.google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension\x12W\n\x0etop_attributes\x18\x03 \x03(\x0b\x32?.google.ads.googleads.v17.services.AudienceCompositionAttribute\x12\x64\n\x14\x63lustered_attributes\x18\x04 \x03(\x0b\x32\x46.google.ads.googleads.v17.services.AudienceCompositionAttributeCluster\"\xf0\x01\n#AudienceCompositionAttributeCluster\x12\x1c\n\x14\x63luster_display_name\x18\x01 \x01(\t\x12V\n\x0f\x63luster_metrics\x18\x03 \x01(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionMetrics\x12S\n\nattributes\x18\x04 \x03(\x0b\x32?.google.ads.googleads.v17.services.AudienceCompositionAttribute\"s\n\x1a\x41udienceCompositionMetrics\x12\x1f\n\x17\x62\x61seline_audience_share\x18\x01 \x01(\x01\x12\x16\n\x0e\x61udience_share\x18\x02 \x01(\x01\x12\r\n\x05index\x18\x03 \x01(\x01\x12\r\n\x05score\x18\x04 \x01(\x01\"\xd0\x01\n\x1c\x41udienceCompositionAttribute\x12`\n\x12\x61ttribute_metadata\x18\x01 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.AudienceInsightsAttributeMetadata\x12N\n\x07metrics\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v17.services.AudienceCompositionMetrics2\xbd\x0e\n\x17\x41udienceInsightsService\x12\xa9\x02\n\x1cGenerateInsightsFinderReport\x12\x46.google.ads.googleads.v17.services.GenerateInsightsFinderReportRequest\x1aG.google.ads.googleads.v17.services.GenerateInsightsFinderReportResponse\"x\xda\x41/customer_id,baseline_audience,specific_audience\x82\xd3\xe4\x93\x02@\";/v17/customers/{customer_id=*}:generateInsightsFinderReport:\x01*\x12\xa5\x02\n\x1eListAudienceInsightsAttributes\x12H.google.ads.googleads.v17.services.ListAudienceInsightsAttributesRequest\x1aI.google.ads.googleads.v17.services.ListAudienceInsightsAttributesResponse\"n\xda\x41!customer_id,dimensions,query_text\x82\xd3\xe4\x93\x02\x44\"?/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes:\x01*\x12\xe2\x01\n\x19ListInsightsEligibleDates\x12\x43.google.ads.googleads.v17.services.ListInsightsEligibleDatesRequest\x1a\x44.google.ads.googleads.v17.services.ListInsightsEligibleDatesResponse\":\x82\xd3\xe4\x93\x02\x34\"//v17/audienceInsights:listInsightsEligibleDates:\x01*\x12\xb5\x02\n#GenerateAudienceCompositionInsights\x12M.google.ads.googleads.v17.services.GenerateAudienceCompositionInsightsRequest\x1aN.google.ads.googleads.v17.services.GenerateAudienceCompositionInsightsResponse\"o\xda\x41\x1f\x63ustomer_id,audience,dimensions\x82\xd3\xe4\x93\x02G\"B/v17/customers/{customer_id=*}:generateAudienceCompositionInsights:\x01*\x12\xa6\x02\n\"GenerateSuggestedTargetingInsights\x12L.google.ads.googleads.v17.services.GenerateSuggestedTargetingInsightsRequest\x1aM.google.ads.googleads.v17.services.GenerateSuggestedTargetingInsightsResponse\"c\xda\x41\x14\x63ustomer_id,audience\x82\xd3\xe4\x93\x02\x46\"A/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights:\x01*\x12\xc0\x02\n\x1fGenerateAudienceOverlapInsights\x12I.google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsRequest\x1aJ.google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsResponse\"\x85\x01\xda\x41\x39\x63ustomer_id,country_location,primary_attribute,dimensions\x82\xd3\xe4\x93\x02\x43\">/v17/customers/{customer_id=*}:generateAudienceOverlapInsights:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x88\x02\n%com.google.ads.googleads.v17.servicesB\x1c\x41udienceInsightsServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
@@ -56,6 +56,10 @@ module Services
           ListAudienceInsightsAttributesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListAudienceInsightsAttributesResponse").msgclass
           ListInsightsEligibleDatesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListInsightsEligibleDatesRequest").msgclass
           ListInsightsEligibleDatesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListInsightsEligibleDatesResponse").msgclass
+          GenerateAudienceOverlapInsightsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsRequest").msgclass
+          GenerateAudienceOverlapInsightsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsResponse").msgclass
+          DimensionOverlapResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.DimensionOverlapResult").msgclass
+          AudienceOverlapItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceOverlapItem").msgclass
           AudienceInsightsAttribute = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsAttribute").msgclass
           AudienceInsightsTopic = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsTopic").msgclass
           AudienceInsightsEntity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsEntity").msgclass
diff --git a/lib/google/ads/google_ads/v17/services/audience_insights_service_services_pb.rb b/lib/google/ads/google_ads/v17/services/audience_insights_service_services_pb.rb
index 85a58443..54640a08 100644
--- a/lib/google/ads/google_ads/v17/services/audience_insights_service_services_pb.rb
+++ b/lib/google/ads/google_ads/v17/services/audience_insights_service_services_pb.rb
@@ -103,6 +103,21 @@ class Service
               #   [RangeError]()
               #   [RequestError]()
               rpc :GenerateSuggestedTargetingInsights, ::Google::Ads::GoogleAds::V17::Services::GenerateSuggestedTargetingInsightsRequest, ::Google::Ads::GoogleAds::V17::Services::GenerateSuggestedTargetingInsightsResponse
+              # Returns a collection of audience attributes along with estimates of the
+              # overlap between their potential YouTube reach and that of a given input
+              # attribute.
+              #
+              # List of thrown errors:
+              #   [AudienceInsightsError]()
+              #   [AuthenticationError]()
+              #   [AuthorizationError]()
+              #   [FieldError]()
+              #   [HeaderError]()
+              #   [InternalError]()
+              #   [QuotaError]()
+              #   [RangeError]()
+              #   [RequestError]()
+              rpc :GenerateAudienceOverlapInsights, ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest, ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse
             end
 
             Stub = Service.rpc_stub_class
diff --git a/lib/google/ads/google_ads/v17/services/google_ads_service/paths.rb b/lib/google/ads/google_ads/v17/services/google_ads_service/paths.rb
index 4365188b..fbb55ffb 100644
--- a/lib/google/ads/google_ads/v17/services/google_ads_service/paths.rb
+++ b/lib/google/ads/google_ads/v17/services/google_ads_service/paths.rb
@@ -2750,6 +2750,25 @@ def offline_conversion_upload_client_summary_path customer_id:, client:
                 "customers/#{customer_id}/offlineConversionUploadClientSummaries/#{client}"
               end
 
+              ##
+              # Create a fully-qualified OfflineConversionUploadConversionActionSummary resource string.
+              #
+              # The resource will be in the following format:
+              #
+              # `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_type_id}~{client}`
+              #
+              # @param customer_id [String]
+              # @param conversion_type_id [String]
+              # @param client [String]
+              #
+              # @return [::String]
+              def offline_conversion_upload_conversion_action_summary_path customer_id:, conversion_type_id:, client:
+                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
+                raise ::ArgumentError, "conversion_type_id cannot contain /" if conversion_type_id.to_s.include? "/"
+
+                "customers/#{customer_id}/offlineConversionUploadConversionActionSummaries/#{conversion_type_id}~#{client}"
+              end
+
               ##
               # Create a fully-qualified OfflineUserDataJob resource string.
               #
diff --git a/lib/google/ads/google_ads/v17/services/google_ads_service_pb.rb b/lib/google/ads/google_ads/v17/services/google_ads_service_pb.rb
index 871ae44a..e7d315f9 100644
--- a/lib/google/ads/google_ads/v17/services/google_ads_service_pb.rb
+++ b/lib/google/ads/google_ads/v17/services/google_ads_service_pb.rb
@@ -154,6 +154,7 @@
 require 'google/ads/google_ads/v17/resources/mobile_app_category_constant_pb'
 require 'google/ads/google_ads/v17/resources/mobile_device_constant_pb'
 require 'google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb'
+require 'google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb'
 require 'google/ads/google_ads/v17/resources/offline_user_data_job_pb'
 require 'google/ads/google_ads/v17/resources/operating_system_version_constant_pb'
 require 'google/ads/google_ads/v17/resources/paid_organic_search_term_view_pb'
@@ -267,7 +268,7 @@
 require 'google/rpc/status_pb'
 
 
-descriptor_data = "\n:google/ads/googleads/v17/services/google_ads_service.proto\x12!google.ads.googleads.v17.services\x1a-google/ads/googleads/v17/common/metrics.proto\x1a.google/ads/googleads/v17/common/segments.proto\x1a:google/ads/googleads/v17/enums/response_content_type.proto\x1a\x38google/ads/googleads/v17/enums/summary_row_setting.proto\x1a\x44google/ads/googleads/v17/resources/accessible_bidding_strategy.proto\x1a\x37google/ads/googleads/v17/resources/account_budget.proto\x1a@google/ads/googleads/v17/resources/account_budget_proposal.proto\x1a\x35google/ads/googleads/v17/resources/account_link.proto\x1a+google/ads/googleads/v17/resources/ad.proto\x1a\x31google/ads/googleads/v17/resources/ad_group.proto\x1a\x34google/ads/googleads/v17/resources/ad_group_ad.proto\x1aKgoogle/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto\x1a?google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto\x1a:google/ads/googleads/v17/resources/ad_group_ad_label.proto\x1a\x37google/ads/googleads/v17/resources/ad_group_asset.proto\x1a;google/ads/googleads/v17/resources/ad_group_asset_set.proto\x1a?google/ads/googleads/v17/resources/ad_group_audience_view.proto\x1a>google/ads/googleads/v17/resources/ad_group_bid_modifier.proto\x1a;google/ads/googleads/v17/resources/ad_group_criterion.proto\x1a\x46google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto\x1a\x41google/ads/googleads/v17/resources/ad_group_criterion_label.proto\x1a\x46google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto\x1a<google/ads/googleads/v17/resources/ad_group_customizer.proto\x1a\x43google/ads/googleads/v17/resources/ad_group_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/ad_group_feed.proto\x1a\x37google/ads/googleads/v17/resources/ad_group_label.proto\x1a<google/ads/googleads/v17/resources/ad_group_simulation.proto\x1a\x35google/ads/googleads/v17/resources/ad_parameter.proto\x1a\x39google/ads/googleads/v17/resources/ad_schedule_view.proto\x1a\x37google/ads/googleads/v17/resources/age_range_view.proto\x1aSgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto\x1aSgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto\x1aWgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto\x1a.google/ads/googleads/v17/resources/asset.proto\x1a>google/ads/googleads/v17/resources/asset_field_type_view.proto\x1a\x34google/ads/googleads/v17/resources/asset_group.proto\x1a:google/ads/googleads/v17/resources/asset_group_asset.proto\x1aIgoogle/ads/googleads/v17/resources/asset_group_listing_group_filter.proto\x1aGgoogle/ads/googleads/v17/resources/asset_group_product_group_view.proto\x1a;google/ads/googleads/v17/resources/asset_group_signal.proto\x1aIgoogle/ads/googleads/v17/resources/asset_group_top_combination_view.proto\x1a\x32google/ads/googleads/v17/resources/asset_set.proto\x1a\x38google/ads/googleads/v17/resources/asset_set_asset.proto\x1a<google/ads/googleads/v17/resources/asset_set_type_view.proto\x1a\x31google/ads/googleads/v17/resources/audience.proto\x1a\x32google/ads/googleads/v17/resources/batch_job.proto\x1a?google/ads/googleads/v17/resources/bidding_data_exclusion.proto\x1aGgoogle/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto\x1a\x39google/ads/googleads/v17/resources/bidding_strategy.proto\x1a\x44google/ads/googleads/v17/resources/bidding_strategy_simulation.proto\x1a\x36google/ads/googleads/v17/resources/billing_setup.proto\x1a\x32google/ads/googleads/v17/resources/call_view.proto\x1a\x31google/ads/googleads/v17/resources/campaign.proto\x1a\x46google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto\x1a\x37google/ads/googleads/v17/resources/campaign_asset.proto\x1a;google/ads/googleads/v17/resources/campaign_asset_set.proto\x1a?google/ads/googleads/v17/resources/campaign_audience_view.proto\x1a>google/ads/googleads/v17/resources/campaign_bid_modifier.proto\x1a\x38google/ads/googleads/v17/resources/campaign_budget.proto\x1a\x41google/ads/googleads/v17/resources/campaign_conversion_goal.proto\x1a;google/ads/googleads/v17/resources/campaign_criterion.proto\x1a<google/ads/googleads/v17/resources/campaign_customizer.proto\x1a\x37google/ads/googleads/v17/resources/campaign_draft.proto\x1a\x43google/ads/googleads/v17/resources/campaign_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/campaign_feed.proto\x1a\x37google/ads/googleads/v17/resources/campaign_group.proto\x1a\x37google/ads/googleads/v17/resources/campaign_label.proto\x1a@google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto\x1a\x45google/ads/googleads/v17/resources/campaign_search_term_insight.proto\x1a<google/ads/googleads/v17/resources/campaign_shared_set.proto\x1a<google/ads/googleads/v17/resources/campaign_simulation.proto\x1a\x39google/ads/googleads/v17/resources/carrier_constant.proto\x1a\x35google/ads/googleads/v17/resources/change_event.proto\x1a\x36google/ads/googleads/v17/resources/change_status.proto\x1a\x45google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto\x1a\x33google/ads/googleads/v17/resources/click_view.proto\x1a:google/ads/googleads/v17/resources/combined_audience.proto\x1a:google/ads/googleads/v17/resources/conversion_action.proto\x1a\x43google/ads/googleads/v17/resources/conversion_custom_variable.proto\x1aHgoogle/ads/googleads/v17/resources/conversion_goal_campaign_config.proto\x1a>google/ads/googleads/v17/resources/conversion_value_rule.proto\x1a\x42google/ads/googleads/v17/resources/conversion_value_rule_set.proto\x1a:google/ads/googleads/v17/resources/currency_constant.proto\x1a\x38google/ads/googleads/v17/resources/custom_audience.proto\x1a?google/ads/googleads/v17/resources/custom_conversion_goal.proto\x1a\x38google/ads/googleads/v17/resources/custom_interest.proto\x1a\x31google/ads/googleads/v17/resources/customer.proto\x1a\x37google/ads/googleads/v17/resources/customer_asset.proto\x1a;google/ads/googleads/v17/resources/customer_asset_set.proto\x1a\x38google/ads/googleads/v17/resources/customer_client.proto\x1a=google/ads/googleads/v17/resources/customer_client_link.proto\x1a\x41google/ads/googleads/v17/resources/customer_conversion_goal.proto\x1a<google/ads/googleads/v17/resources/customer_customizer.proto\x1a\x43google/ads/googleads/v17/resources/customer_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/customer_feed.proto\x1a\x37google/ads/googleads/v17/resources/customer_label.proto\x1a@google/ads/googleads/v17/resources/customer_lifecycle_goal.proto\x1a>google/ads/googleads/v17/resources/customer_manager_link.proto\x1a\x44google/ads/googleads/v17/resources/customer_negative_criterion.proto\x1a\x45google/ads/googleads/v17/resources/customer_search_term_insight.proto\x1a=google/ads/googleads/v17/resources/customer_user_access.proto\x1aHgoogle/ads/googleads/v17/resources/customer_user_access_invitation.proto\x1a=google/ads/googleads/v17/resources/customizer_attribute.proto\x1a>google/ads/googleads/v17/resources/detail_placement_view.proto\x1a=google/ads/googleads/v17/resources/detailed_demographic.proto\x1a=google/ads/googleads/v17/resources/display_keyword_view.proto\x1a\x36google/ads/googleads/v17/resources/distance_view.proto\x1a\x38google/ads/googleads/v17/resources/domain_category.proto\x1aLgoogle/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto\x1a\x43google/ads/googleads/v17/resources/expanded_landing_page_view.proto\x1a\x33google/ads/googleads/v17/resources/experiment.proto\x1a\x37google/ads/googleads/v17/resources/experiment_arm.proto\x1a<google/ads/googleads/v17/resources/extension_feed_item.proto\x1a-google/ads/googleads/v17/resources/feed.proto\x1a\x32google/ads/googleads/v17/resources/feed_item.proto\x1a\x36google/ads/googleads/v17/resources/feed_item_set.proto\x1a;google/ads/googleads/v17/resources/feed_item_set_link.proto\x1a\x39google/ads/googleads/v17/resources/feed_item_target.proto\x1a\x35google/ads/googleads/v17/resources/feed_mapping.proto\x1a>google/ads/googleads/v17/resources/feed_placeholder_view.proto\x1a\x34google/ads/googleads/v17/resources/gender_view.proto\x1a<google/ads/googleads/v17/resources/geo_target_constant.proto\x1a\x38google/ads/googleads/v17/resources/geographic_view.proto\x1a=google/ads/googleads/v17/resources/group_placement_view.proto\x1a\x39google/ads/googleads/v17/resources/hotel_group_view.proto\x1a?google/ads/googleads/v17/resources/hotel_performance_view.proto\x1a=google/ads/googleads/v17/resources/hotel_reconciliation.proto\x1a:google/ads/googleads/v17/resources/income_range_view.proto\x1a\x35google/ads/googleads/v17/resources/keyword_plan.proto\x1a>google/ads/googleads/v17/resources/keyword_plan_ad_group.proto\x1a\x46google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto\x1a>google/ads/googleads/v17/resources/keyword_plan_campaign.proto\x1a\x46google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto\x1a?google/ads/googleads/v17/resources/keyword_theme_constant.proto\x1a\x35google/ads/googleads/v17/resources/keyword_view.proto\x1a.google/ads/googleads/v17/resources/label.proto\x1a:google/ads/googleads/v17/resources/landing_page_view.proto\x1a:google/ads/googleads/v17/resources/language_constant.proto\x1a\x42google/ads/googleads/v17/resources/lead_form_submission_data.proto\x1a\x33google/ads/googleads/v17/resources/life_event.proto\x1a@google/ads/googleads/v17/resources/local_services_employee.proto\x1a<google/ads/googleads/v17/resources/local_services_lead.proto\x1aIgoogle/ads/googleads/v17/resources/local_services_lead_conversation.proto\x1aMgoogle/ads/googleads/v17/resources/local_services_verification_artifact.proto\x1a\x36google/ads/googleads/v17/resources/location_view.proto\x1a?google/ads/googleads/v17/resources/managed_placement_view.proto\x1a\x33google/ads/googleads/v17/resources/media_file.proto\x1a\x45google/ads/googleads/v17/resources/mobile_app_category_constant.proto\x1a?google/ads/googleads/v17/resources/mobile_device_constant.proto\x1aQgoogle/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto\x1a>google/ads/googleads/v17/resources/offline_user_data_job.proto\x1aJgoogle/ads/googleads/v17/resources/operating_system_version_constant.proto\x1a\x46google/ads/googleads/v17/resources/paid_organic_search_term_view.proto\x1a=google/ads/googleads/v17/resources/parental_status_view.proto\x1a\x37google/ads/googleads/v17/resources/per_store_view.proto\x1a\x42google/ads/googleads/v17/resources/product_category_constant.proto\x1a;google/ads/googleads/v17/resources/product_group_view.proto\x1a\x35google/ads/googleads/v17/resources/product_link.proto\x1a@google/ads/googleads/v17/resources/product_link_invitation.proto\x1a<google/ads/googleads/v17/resources/qualifying_question.proto\x1a\x37google/ads/googleads/v17/resources/recommendation.proto\x1a\x44google/ads/googleads/v17/resources/recommendation_subscription.proto\x1a;google/ads/googleads/v17/resources/remarketing_action.proto\x1a\x39google/ads/googleads/v17/resources/search_term_view.proto\x1a\x39google/ads/googleads/v17/resources/shared_criterion.proto\x1a\x33google/ads/googleads/v17/resources/shared_set.proto\x1a\x42google/ads/googleads/v17/resources/shopping_performance_view.proto\x1a\x39google/ads/googleads/v17/resources/shopping_product.proto\x1aHgoogle/ads/googleads/v17/resources/smart_campaign_search_term_view.proto\x1a?google/ads/googleads/v17/resources/smart_campaign_setting.proto\x1aGgoogle/ads/googleads/v17/resources/third_party_app_analytics_link.proto\x1a\x37google/ads/googleads/v17/resources/topic_constant.proto\x1a\x33google/ads/googleads/v17/resources/topic_view.proto\x1a\x43google/ads/googleads/v17/resources/travel_activity_group_view.proto\x1aIgoogle/ads/googleads/v17/resources/travel_activity_performance_view.proto\x1a\x36google/ads/googleads/v17/resources/user_interest.proto\x1a\x32google/ads/googleads/v17/resources/user_list.proto\x1a@google/ads/googleads/v17/resources/user_list_customer_type.proto\x1a;google/ads/googleads/v17/resources/user_location_view.proto\x1a.google/ads/googleads/v17/resources/video.proto\x1a\x35google/ads/googleads/v17/resources/webpage_view.proto\x1a\x41google/ads/googleads/v17/services/ad_group_ad_label_service.proto\x1a;google/ads/googleads/v17/services/ad_group_ad_service.proto\x1a>google/ads/googleads/v17/services/ad_group_asset_service.proto\x1a\x45google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto\x1aMgoogle/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto\x1aHgoogle/ads/googleads/v17/services/ad_group_criterion_label_service.proto\x1a\x42google/ads/googleads/v17/services/ad_group_criterion_service.proto\x1a\x43google/ads/googleads/v17/services/ad_group_customizer_service.proto\x1aJgoogle/ads/googleads/v17/services/ad_group_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/ad_group_feed_service.proto\x1a>google/ads/googleads/v17/services/ad_group_label_service.proto\x1a\x38google/ads/googleads/v17/services/ad_group_service.proto\x1a<google/ads/googleads/v17/services/ad_parameter_service.proto\x1a\x32google/ads/googleads/v17/services/ad_service.proto\x1a\x41google/ads/googleads/v17/services/asset_group_asset_service.proto\x1aPgoogle/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto\x1a;google/ads/googleads/v17/services/asset_group_service.proto\x1a\x42google/ads/googleads/v17/services/asset_group_signal_service.proto\x1a\x35google/ads/googleads/v17/services/asset_service.proto\x1a?google/ads/googleads/v17/services/asset_set_asset_service.proto\x1a\x39google/ads/googleads/v17/services/asset_set_service.proto\x1a\x38google/ads/googleads/v17/services/audience_service.proto\x1a\x46google/ads/googleads/v17/services/bidding_data_exclusion_service.proto\x1aNgoogle/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto\x1a@google/ads/googleads/v17/services/bidding_strategy_service.proto\x1a>google/ads/googleads/v17/services/campaign_asset_service.proto\x1a\x42google/ads/googleads/v17/services/campaign_asset_set_service.proto\x1a\x45google/ads/googleads/v17/services/campaign_bid_modifier_service.proto\x1a?google/ads/googleads/v17/services/campaign_budget_service.proto\x1aHgoogle/ads/googleads/v17/services/campaign_conversion_goal_service.proto\x1a\x42google/ads/googleads/v17/services/campaign_criterion_service.proto\x1a\x43google/ads/googleads/v17/services/campaign_customizer_service.proto\x1a>google/ads/googleads/v17/services/campaign_draft_service.proto\x1aJgoogle/ads/googleads/v17/services/campaign_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/campaign_feed_service.proto\x1a>google/ads/googleads/v17/services/campaign_group_service.proto\x1a>google/ads/googleads/v17/services/campaign_label_service.proto\x1a\x38google/ads/googleads/v17/services/campaign_service.proto\x1a\x43google/ads/googleads/v17/services/campaign_shared_set_service.proto\x1a\x41google/ads/googleads/v17/services/conversion_action_service.proto\x1aJgoogle/ads/googleads/v17/services/conversion_custom_variable_service.proto\x1aOgoogle/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto\x1a\x45google/ads/googleads/v17/services/conversion_value_rule_service.proto\x1aIgoogle/ads/googleads/v17/services/conversion_value_rule_set_service.proto\x1a\x46google/ads/googleads/v17/services/custom_conversion_goal_service.proto\x1a>google/ads/googleads/v17/services/customer_asset_service.proto\x1aHgoogle/ads/googleads/v17/services/customer_conversion_goal_service.proto\x1a\x43google/ads/googleads/v17/services/customer_customizer_service.proto\x1aJgoogle/ads/googleads/v17/services/customer_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/customer_feed_service.proto\x1a>google/ads/googleads/v17/services/customer_label_service.proto\x1aKgoogle/ads/googleads/v17/services/customer_negative_criterion_service.proto\x1a\x38google/ads/googleads/v17/services/customer_service.proto\x1a\x44google/ads/googleads/v17/services/customizer_attribute_service.proto\x1a>google/ads/googleads/v17/services/experiment_arm_service.proto\x1a:google/ads/googleads/v17/services/experiment_service.proto\x1a\x43google/ads/googleads/v17/services/extension_feed_item_service.proto\x1a\x39google/ads/googleads/v17/services/feed_item_service.proto\x1a\x42google/ads/googleads/v17/services/feed_item_set_link_service.proto\x1a=google/ads/googleads/v17/services/feed_item_set_service.proto\x1a@google/ads/googleads/v17/services/feed_item_target_service.proto\x1a<google/ads/googleads/v17/services/feed_mapping_service.proto\x1a\x34google/ads/googleads/v17/services/feed_service.proto\x1aMgoogle/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto\x1a\x45google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto\x1aMgoogle/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto\x1a\x45google/ads/googleads/v17/services/keyword_plan_campaign_service.proto\x1a<google/ads/googleads/v17/services/keyword_plan_service.proto\x1a\x35google/ads/googleads/v17/services/label_service.proto\x1aKgoogle/ads/googleads/v17/services/recommendation_subscription_service.proto\x1a\x42google/ads/googleads/v17/services/remarketing_action_service.proto\x1a@google/ads/googleads/v17/services/shared_criterion_service.proto\x1a:google/ads/googleads/v17/services/shared_set_service.proto\x1a\x46google/ads/googleads/v17/services/smart_campaign_setting_service.proto\x1a\x39google/ads/googleads/v17/services/user_list_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\x8e\x02\n\x16SearchGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x15\n\rvalidate_only\x18\x05 \x01(\x08\x12\"\n\x1areturn_total_results_count\x18\x07 \x01(\x08\x12\x64\n\x13summary_row_setting\x18\x08 \x01(\x0e\x32G.google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting\"\xab\x02\n\x17SearchGoogleAdsResponse\x12@\n\x07results\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1b\n\x13total_results_count\x18\x03 \x01(\x03\x12.\n\nfield_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x0bsummary_row\x18\x06 \x01(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\"\n\x1aquery_resource_consumption\x18\x08 \x01(\x03\"\xb2\x01\n\x1cSearchGoogleAdsStreamRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\x13summary_row_setting\x18\x03 \x01(\x0e\x32G.google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting\"\x8f\x02\n\x1dSearchGoogleAdsStreamResponse\x12@\n\x07results\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12.\n\nfield_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x0bsummary_row\x18\x03 \x01(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\"\n\x1aquery_resource_consumption\x18\x06 \x01(\x03\"\x87w\n\x0cGoogleAdsRow\x12I\n\x0e\x61\x63\x63ount_budget\x18* \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.AccountBudget\x12Z\n\x17\x61\x63\x63ount_budget_proposal\x18+ \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.AccountBudgetProposal\x12\x46\n\x0c\x61\x63\x63ount_link\x18\x8f\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AccountLink\x12\x33\n\x02\x61\x64\x18\xe3\x01 \x01(\x0b\x32&.google.ads.googleads.v17.resources.Ad\x12=\n\x08\x61\x64_group\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.resources.AdGroup\x12\x42\n\x0b\x61\x64_group_ad\x18\x10 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAd\x12n\n\"ad_group_ad_asset_combination_view\x18\xc1\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.AdGroupAdAssetCombinationView\x12W\n\x16\x61\x64_group_ad_asset_view\x18\x83\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AdGroupAdAssetView\x12M\n\x11\x61\x64_group_ad_label\x18x \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.AdGroupAdLabel\x12I\n\x0e\x61\x64_group_asset\x18\x9a\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AdGroupAsset\x12P\n\x12\x61\x64_group_asset_set\x18\xc4\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.AdGroupAssetSet\x12W\n\x16\x61\x64_group_audience_view\x18\x39 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.AdGroupAudienceView\x12U\n\x15\x61\x64_group_bid_modifier\x18\x18 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AdGroupBidModifier\x12P\n\x12\x61\x64_group_criterion\x18\x11 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AdGroupCriterion\x12\x66\n\x1d\x61\x64_group_criterion_customizer\x18\xbb\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.AdGroupCriterionCustomizer\x12[\n\x18\x61\x64_group_criterion_label\x18y \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.AdGroupCriterionLabel\x12\x65\n\x1d\x61\x64_group_criterion_simulation\x18n \x01(\x0b\x32>.google.ads.googleads.v17.resources.AdGroupCriterionSimulation\x12S\n\x13\x61\x64_group_customizer\x18\xb9\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.AdGroupCustomizer\x12_\n\x1a\x61\x64_group_extension_setting\x18p \x01(\x0b\x32;.google.ads.googleads.v17.resources.AdGroupExtensionSetting\x12\x46\n\rad_group_feed\x18\x43 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AdGroupFeed\x12H\n\x0e\x61\x64_group_label\x18s \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AdGroupLabel\x12R\n\x13\x61\x64_group_simulation\x18k \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.AdGroupSimulation\x12\x46\n\x0c\x61\x64_parameter\x18\x82\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AdParameter\x12H\n\x0e\x61ge_range_view\x18\x30 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AgeRangeView\x12L\n\x10\x61\x64_schedule_view\x18Y \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.AdScheduleView\x12K\n\x0f\x64omain_category\x18[ \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.DomainCategory\x12\x38\n\x05\x61sset\x18i \x01(\x0b\x32).google.ads.googleads.v17.resources.Asset\x12V\n\x15\x61sset_field_type_view\x18\xa8\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AssetFieldTypeView\x12\x64\n\x1c\x63hannel_aggregate_asset_view\x18\xde\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.ChannelAggregateAssetView\x12\x66\n\x1d\x63\x61mpaign_aggregate_asset_view\x18\xe0\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.CampaignAggregateAssetView\x12O\n\x11\x61sset_group_asset\x18\xad\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.AssetGroupAsset\x12Q\n\x12\x61sset_group_signal\x18\xbf\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AssetGroupSignal\x12k\n asset_group_listing_group_filter\x18\xb6\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.AssetGroupListingGroupFilter\x12g\n\x1e\x61sset_group_product_group_view\x18\xbd\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.AssetGroupProductGroupView\x12k\n asset_group_top_combination_view\x18\xc7\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.AssetGroupTopCombinationView\x12\x44\n\x0b\x61sset_group\x18\xac\x01 \x01(\x0b\x32..google.ads.googleads.v17.resources.AssetGroup\x12K\n\x0f\x61sset_set_asset\x18\xb4\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.AssetSetAsset\x12@\n\tasset_set\x18\xb3\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.AssetSet\x12R\n\x13\x61sset_set_type_view\x18\xc5\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AssetSetTypeView\x12@\n\tbatch_job\x18\x8b\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.BatchJob\x12Y\n\x16\x62idding_data_exclusion\x18\x9f\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.BiddingDataExclusion\x12i\n\x1e\x62idding_seasonality_adjustment\x18\xa0\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment\x12M\n\x10\x62idding_strategy\x18\x12 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.BiddingStrategy\x12\x63\n\x1b\x62idding_strategy_simulation\x18\x9e\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.BiddingStrategySimulation\x12G\n\rbilling_setup\x18) \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.BillingSetup\x12@\n\tcall_view\x18\x98\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.CallView\x12K\n\x0f\x63\x61mpaign_budget\x18\x13 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CampaignBudget\x12>\n\x08\x63\x61mpaign\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Campaign\x12J\n\x0e\x63\x61mpaign_asset\x18\x8e\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignAsset\x12Q\n\x12\x63\x61mpaign_asset_set\x18\xb5\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CampaignAssetSet\x12X\n\x16\x63\x61mpaign_audience_view\x18\x45 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.CampaignAudienceView\x12V\n\x15\x63\x61mpaign_bid_modifier\x18\x1a \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CampaignBidModifier\x12]\n\x18\x63\x61mpaign_conversion_goal\x18\xaf\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.CampaignConversionGoal\x12Q\n\x12\x63\x61mpaign_criterion\x18\x14 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.CampaignCriterion\x12T\n\x13\x63\x61mpaign_customizer\x18\xba\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CampaignCustomizer\x12I\n\x0e\x63\x61mpaign_draft\x18\x31 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignDraft\x12`\n\x1a\x63\x61mpaign_extension_setting\x18q \x01(\x0b\x32<.google.ads.googleads.v17.resources.CampaignExtensionSetting\x12G\n\rcampaign_feed\x18? \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.CampaignFeed\x12I\n\x0e\x63\x61mpaign_group\x18\x19 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignGroup\x12I\n\x0e\x63\x61mpaign_label\x18l \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignLabel\x12[\n\x17\x63\x61mpaign_lifecycle_goal\x18\xd5\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.CampaignLifecycleGoal\x12\x64\n\x1c\x63\x61mpaign_search_term_insight\x18\xcc\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.CampaignSearchTermInsight\x12R\n\x13\x63\x61mpaign_shared_set\x18\x1e \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.CampaignSharedSet\x12T\n\x13\x63\x61mpaign_simulation\x18\x9d\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CampaignSimulation\x12M\n\x10\x63\x61rrier_constant\x18\x42 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.CarrierConstant\x12\x46\n\x0c\x63hange_event\x18\x91\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.ChangeEvent\x12G\n\rchange_status\x18% \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.ChangeStatus\x12P\n\x11\x63ombined_audience\x18\x94\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CombinedAudience\x12?\n\x08\x61udience\x18\xbe\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Audience\x12O\n\x11\x63onversion_action\x18g \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.ConversionAction\x12\x61\n\x1a\x63onversion_custom_variable\x18\x99\x01 \x01(\x0b\x32<.google.ads.googleads.v17.resources.ConversionCustomVariable\x12j\n\x1f\x63onversion_goal_campaign_config\x18\xb1\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.ConversionGoalCampaignConfig\x12W\n\x15\x63onversion_value_rule\x18\xa4\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.ConversionValueRule\x12^\n\x19\x63onversion_value_rule_set\x18\xa5\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.ConversionValueRuleSet\x12\x41\n\nclick_view\x18z \x01(\x0b\x32-.google.ads.googleads.v17.resources.ClickView\x12P\n\x11\x63urrency_constant\x18\x86\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CurrencyConstant\x12L\n\x0f\x63ustom_audience\x18\x93\x01 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomAudience\x12Y\n\x16\x63ustom_conversion_goal\x18\xb0\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.CustomConversionGoal\x12K\n\x0f\x63ustom_interest\x18h \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomInterest\x12>\n\x08\x63ustomer\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Customer\x12J\n\x0e\x63ustomer_asset\x18\x9b\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CustomerAsset\x12Q\n\x12\x63ustomer_asset_set\x18\xc3\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CustomerAssetSet\x12\x63\n\x1b\x61\x63\x63\x65ssible_bidding_strategy\x18\xa9\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.AccessibleBiddingStrategy\x12T\n\x13\x63ustomer_customizer\x18\xb8\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerCustomizer\x12V\n\x15\x63ustomer_manager_link\x18= \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CustomerManagerLink\x12T\n\x14\x63ustomer_client_link\x18> \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerClientLink\x12K\n\x0f\x63ustomer_client\x18\x46 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomerClient\x12]\n\x18\x63ustomer_conversion_goal\x18\xae\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.CustomerConversionGoal\x12`\n\x1a\x63ustomer_extension_setting\x18r \x01(\x0b\x32<.google.ads.googleads.v17.resources.CustomerExtensionSetting\x12G\n\rcustomer_feed\x18@ \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.CustomerFeed\x12I\n\x0e\x63ustomer_label\x18| \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CustomerLabel\x12[\n\x17\x63ustomer_lifecycle_goal\x18\xd4\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.CustomerLifecycleGoal\x12\x62\n\x1b\x63ustomer_negative_criterion\x18X \x01(\x0b\x32=.google.ads.googleads.v17.resources.CustomerNegativeCriterion\x12\x64\n\x1c\x63ustomer_search_term_insight\x18\xcd\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.CustomerSearchTermInsight\x12U\n\x14\x63ustomer_user_access\x18\x92\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerUserAccess\x12j\n\x1f\x63ustomer_user_access_invitation\x18\x96\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.CustomerUserAccessInvitation\x12V\n\x14\x63ustomizer_attribute\x18\xb2\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CustomizerAttribute\x12V\n\x15\x64\x65tail_placement_view\x18v \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.DetailPlacementView\x12V\n\x14\x64\x65tailed_demographic\x18\xa6\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.DetailedDemographic\x12T\n\x14\x64isplay_keyword_view\x18/ \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.DisplayKeywordView\x12H\n\rdistance_view\x18\x84\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.DistanceView\x12o\n#dynamic_search_ads_search_term_view\x18j \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.DynamicSearchAdsSearchTermView\x12`\n\x1a\x65xpanded_landing_page_view\x18\x80\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.ExpandedLandingPageView\x12R\n\x13\x65xtension_feed_item\x18U \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.ExtensionFeedItem\x12\x36\n\x04\x66\x65\x65\x64\x18. \x01(\x0b\x32(.google.ads.googleads.v17.resources.Feed\x12?\n\tfeed_item\x18\x32 \x01(\x0b\x32,.google.ads.googleads.v17.resources.FeedItem\x12G\n\rfeed_item_set\x18\x95\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.FeedItemSet\x12P\n\x12\x66\x65\x65\x64_item_set_link\x18\x97\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.FeedItemSetLink\x12L\n\x10\x66\x65\x65\x64_item_target\x18t \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.FeedItemTarget\x12\x45\n\x0c\x66\x65\x65\x64_mapping\x18: \x01(\x0b\x32/.google.ads.googleads.v17.resources.FeedMapping\x12V\n\x15\x66\x65\x65\x64_placeholder_view\x18\x61 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.FeedPlaceholderView\x12\x43\n\x0bgender_view\x18( \x01(\x0b\x32..google.ads.googleads.v17.resources.GenderView\x12R\n\x13geo_target_constant\x18\x17 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.GeoTargetConstant\x12K\n\x0fgeographic_view\x18} \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.GeographicView\x12T\n\x14group_placement_view\x18w \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.GroupPlacementView\x12L\n\x10hotel_group_view\x18\x33 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.HotelGroupView\x12X\n\x16hotel_performance_view\x18G \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.HotelPerformanceView\x12V\n\x14hotel_reconciliation\x18\xbc\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.HotelReconciliation\x12O\n\x11income_range_view\x18\x8a\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.IncomeRangeView\x12\x45\n\x0ckeyword_view\x18\x15 \x01(\x0b\x32/.google.ads.googleads.v17.resources.KeywordView\x12\x45\n\x0ckeyword_plan\x18  \x01(\x0b\x32/.google.ads.googleads.v17.resources.KeywordPlan\x12V\n\x15keyword_plan_campaign\x18! \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.KeywordPlanCampaign\x12\x66\n\x1dkeyword_plan_campaign_keyword\x18\x8c\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.KeywordPlanCampaignKeyword\x12U\n\x15keyword_plan_ad_group\x18# \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.KeywordPlanAdGroup\x12\x65\n\x1dkeyword_plan_ad_group_keyword\x18\x8d\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.KeywordPlanAdGroupKeyword\x12Y\n\x16keyword_theme_constant\x18\xa3\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.KeywordThemeConstant\x12\x38\n\x05label\x18\x34 \x01(\x0b\x32).google.ads.googleads.v17.resources.Label\x12N\n\x11landing_page_view\x18~ \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.LandingPageView\x12O\n\x11language_constant\x18\x37 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.LanguageConstant\x12G\n\rlocation_view\x18{ \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.LocationView\x12X\n\x16managed_placement_view\x18\x35 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.ManagedPlacementView\x12\x41\n\nmedia_file\x18Z \x01(\x0b\x32-.google.ads.googleads.v17.resources.MediaFile\x12[\n\x17local_services_employee\x18\xdf\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.LocalServicesEmployee\x12t\n$local_services_verification_artifact\x18\xd3\x01 \x01(\x0b\x32\x45.google.ads.googleads.v17.resources.LocalServicesVerificationArtifact\x12\x63\n\x1cmobile_app_category_constant\x18W \x01(\x0b\x32=.google.ads.googleads.v17.resources.MobileAppCategoryConstant\x12X\n\x16mobile_device_constant\x18\x62 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.MobileDeviceConstant\x12{\n(offline_conversion_upload_client_summary\x18\xd8\x01 \x01(\x0b\x32H.google.ads.googleads.v17.resources.OfflineConversionUploadClientSummary\x12V\n\x15offline_user_data_job\x18\x89\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.OfflineUserDataJob\x12m\n!operating_system_version_constant\x18V \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.OperatingSystemVersionConstant\x12\x65\n\x1dpaid_organic_search_term_view\x18\x81\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.PaidOrganicSearchTermView\x12T\n\x13qualifying_question\x18\xca\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.QualifyingQuestion\x12T\n\x14parental_status_view\x18- \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.ParentalStatusView\x12I\n\x0eper_store_view\x18\xc6\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.PerStoreView\x12_\n\x19product_category_constant\x18\xd0\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.ProductCategoryConstant\x12P\n\x12product_group_view\x18\x36 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.ProductGroupView\x12\x46\n\x0cproduct_link\x18\xc2\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.ProductLink\x12[\n\x17product_link_invitation\x18\xd1\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.ProductLinkInvitation\x12J\n\x0erecommendation\x18\x16 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.Recommendation\x12\x64\n\x1brecommendation_subscription\x18\xdc\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.RecommendationSubscription\x12L\n\x10search_term_view\x18\x44 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.SearchTermView\x12M\n\x10shared_criterion\x18\x1d \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.SharedCriterion\x12\x41\n\nshared_set\x18\x1b \x01(\x0b\x32-.google.ads.googleads.v17.resources.SharedSet\x12Y\n\x16smart_campaign_setting\x18\xa7\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.SmartCampaignSetting\x12^\n\x19shopping_performance_view\x18u \x01(\x0b\x32;.google.ads.googleads.v17.resources.ShoppingPerformanceView\x12N\n\x10shopping_product\x18\xe2\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.ShoppingProduct\x12i\n\x1fsmart_campaign_search_term_view\x18\xaa\x01 \x01(\x0b\x32?.google.ads.googleads.v17.resources.SmartCampaignSearchTermView\x12g\n\x1ethird_party_app_analytics_link\x18\x90\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.ThirdPartyAppAnalyticsLink\x12\x41\n\ntopic_view\x18, \x01(\x0b\x32-.google.ads.googleads.v17.resources.TopicView\x12`\n\x1atravel_activity_group_view\x18\xc9\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.TravelActivityGroupView\x12l\n travel_activity_performance_view\x18\xc8\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.TravelActivityPerformanceView\x12\x43\n\nexperiment\x18\x85\x01 \x01(\x0b\x32..google.ads.googleads.v17.resources.Experiment\x12J\n\x0e\x65xperiment_arm\x18\xb7\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.ExperimentArm\x12G\n\ruser_interest\x18; \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.UserInterest\x12\x42\n\nlife_event\x18\xa1\x01 \x01(\x0b\x32-.google.ads.googleads.v17.resources.LifeEvent\x12?\n\tuser_list\x18& \x01(\x0b\x32,.google.ads.googleads.v17.resources.UserList\x12Z\n\x17user_list_customer_type\x18\xe1\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.UserListCustomerType\x12Q\n\x12user_location_view\x18\x87\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.UserLocationView\x12Q\n\x12remarketing_action\x18< \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.RemarketingAction\x12I\n\x0etopic_constant\x18\x1f \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.TopicConstant\x12\x38\n\x05video\x18\' \x01(\x0b\x32).google.ads.googleads.v17.resources.Video\x12\x46\n\x0cwebpage_view\x18\xa2\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.WebpageView\x12^\n\x19lead_form_submission_data\x18\xc0\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.LeadFormSubmissionData\x12S\n\x13local_services_lead\x18\xd2\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.LocalServicesLead\x12l\n local_services_lead_conversation\x18\xd6\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.LocalServicesLeadConversation\x12}\n*android_privacy_shared_key_google_ad_group\x18\xd9\x01 \x01(\x0b\x32H.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleAdGroup\x12~\n*android_privacy_shared_key_google_campaign\x18\xda\x01 \x01(\x0b\x32I.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleCampaign\x12\x85\x01\n.android_privacy_shared_key_google_network_type\x18\xdb\x01 \x01(\x0b\x32L.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleNetworkType\x12\x39\n\x07metrics\x18\x04 \x01(\x0b\x32(.google.ads.googleads.v17.common.Metrics\x12;\n\x08segments\x18\x66 \x01(\x0b\x32).google.ads.googleads.v17.common.Segments\"\xa2\x02\n\x16MutateGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x11mutate_operations\x18\x02 \x03(\x0b\x32\x32.google.ads.googleads.v17.services.MutateOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12j\n\x15response_content_type\x18\x05 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType\"\xac\x01\n\x17MutateGoogleAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12^\n\x1amutate_operation_responses\x18\x01 \x03(\x0b\x32:.google.ads.googleads.v17.services.MutateOperationResponse\"\xa4;\n\x0fMutateOperation\x12\x61\n\x1b\x61\x64_group_ad_label_operation\x18\x11 \x01(\x0b\x32:.google.ads.googleads.v17.services.AdGroupAdLabelOperationH\x00\x12V\n\x15\x61\x64_group_ad_operation\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.services.AdGroupAdOperationH\x00\x12\\\n\x18\x61\x64_group_asset_operation\x18\x38 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.AdGroupAssetOperationH\x00\x12i\n\x1f\x61\x64_group_bid_modifier_operation\x18\x02 \x01(\x0b\x32>.google.ads.googleads.v17.services.AdGroupBidModifierOperationH\x00\x12y\n\'ad_group_criterion_customizer_operation\x18M \x01(\x0b\x32\x46.google.ads.googleads.v17.services.AdGroupCriterionCustomizerOperationH\x00\x12o\n\"ad_group_criterion_label_operation\x18\x12 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.AdGroupCriterionLabelOperationH\x00\x12\x64\n\x1c\x61\x64_group_criterion_operation\x18\x03 \x01(\x0b\x32<.google.ads.googleads.v17.services.AdGroupCriterionOperationH\x00\x12\x66\n\x1d\x61\x64_group_customizer_operation\x18K \x01(\x0b\x32=.google.ads.googleads.v17.services.AdGroupCustomizerOperationH\x00\x12s\n$ad_group_extension_setting_operation\x18\x13 \x01(\x0b\x32\x43.google.ads.googleads.v17.services.AdGroupExtensionSettingOperationH\x00\x12Z\n\x17\x61\x64_group_feed_operation\x18\x14 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AdGroupFeedOperationH\x00\x12\\\n\x18\x61\x64_group_label_operation\x18\x15 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.AdGroupLabelOperationH\x00\x12Q\n\x12\x61\x64_group_operation\x18\x05 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.AdGroupOperationH\x00\x12\x46\n\x0c\x61\x64_operation\x18\x31 \x01(\x0b\x32..google.ads.googleads.v17.services.AdOperationH\x00\x12Y\n\x16\x61\x64_parameter_operation\x18\x16 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AdParameterOperationH\x00\x12L\n\x0f\x61sset_operation\x18\x17 \x01(\x0b\x32\x31.google.ads.googleads.v17.services.AssetOperationH\x00\x12\x62\n\x1b\x61sset_group_asset_operation\x18\x41 \x01(\x0b\x32;.google.ads.googleads.v17.services.AssetGroupAssetOperationH\x00\x12~\n*asset_group_listing_group_filter_operation\x18N \x01(\x0b\x32H.google.ads.googleads.v17.services.AssetGroupListingGroupFilterOperationH\x00\x12\x64\n\x1c\x61sset_group_signal_operation\x18P \x01(\x0b\x32<.google.ads.googleads.v17.services.AssetGroupSignalOperationH\x00\x12W\n\x15\x61sset_group_operation\x18> \x01(\x0b\x32\x36.google.ads.googleads.v17.services.AssetGroupOperationH\x00\x12^\n\x19\x61sset_set_asset_operation\x18G \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AssetSetAssetOperationH\x00\x12S\n\x13\x61sset_set_operation\x18H \x01(\x0b\x32\x34.google.ads.googleads.v17.services.AssetSetOperationH\x00\x12R\n\x12\x61udience_operation\x18Q \x01(\x0b\x32\x34.google.ads.googleads.v17.services.AudienceOperationH\x00\x12l\n bidding_data_exclusion_operation\x18: \x01(\x0b\x32@.google.ads.googleads.v17.services.BiddingDataExclusionOperationH\x00\x12|\n(bidding_seasonality_adjustment_operation\x18; \x01(\x0b\x32H.google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentOperationH\x00\x12\x61\n\x1a\x62idding_strategy_operation\x18\x06 \x01(\x0b\x32;.google.ads.googleads.v17.services.BiddingStrategyOperationH\x00\x12]\n\x18\x63\x61mpaign_asset_operation\x18\x34 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignAssetOperationH\x00\x12\x64\n\x1c\x63\x61mpaign_asset_set_operation\x18I \x01(\x0b\x32<.google.ads.googleads.v17.services.CampaignAssetSetOperationH\x00\x12j\n\x1f\x63\x61mpaign_bid_modifier_operation\x18\x07 \x01(\x0b\x32?.google.ads.googleads.v17.services.CampaignBidModifierOperationH\x00\x12_\n\x19\x63\x61mpaign_budget_operation\x18\x08 \x01(\x0b\x32:.google.ads.googleads.v17.services.CampaignBudgetOperationH\x00\x12p\n\"campaign_conversion_goal_operation\x18\x43 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.CampaignConversionGoalOperationH\x00\x12\x65\n\x1c\x63\x61mpaign_criterion_operation\x18\r \x01(\x0b\x32=.google.ads.googleads.v17.services.CampaignCriterionOperationH\x00\x12g\n\x1d\x63\x61mpaign_customizer_operation\x18L \x01(\x0b\x32>.google.ads.googleads.v17.services.CampaignCustomizerOperationH\x00\x12]\n\x18\x63\x61mpaign_draft_operation\x18\x18 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignDraftOperationH\x00\x12t\n$campaign_extension_setting_operation\x18\x1a \x01(\x0b\x32\x44.google.ads.googleads.v17.services.CampaignExtensionSettingOperationH\x00\x12[\n\x17\x63\x61mpaign_feed_operation\x18\x1b \x01(\x0b\x32\x38.google.ads.googleads.v17.services.CampaignFeedOperationH\x00\x12]\n\x18\x63\x61mpaign_group_operation\x18\t \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignGroupOperationH\x00\x12]\n\x18\x63\x61mpaign_label_operation\x18\x1c \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignLabelOperationH\x00\x12R\n\x12\x63\x61mpaign_operation\x18\n \x01(\x0b\x32\x34.google.ads.googleads.v17.services.CampaignOperationH\x00\x12\x66\n\x1d\x63\x61mpaign_shared_set_operation\x18\x0b \x01(\x0b\x32=.google.ads.googleads.v17.services.CampaignSharedSetOperationH\x00\x12\x63\n\x1b\x63onversion_action_operation\x18\x0c \x01(\x0b\x32<.google.ads.googleads.v17.services.ConversionActionOperationH\x00\x12t\n$conversion_custom_variable_operation\x18\x37 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.ConversionCustomVariableOperationH\x00\x12}\n)conversion_goal_campaign_config_operation\x18\x45 \x01(\x0b\x32H.google.ads.googleads.v17.services.ConversionGoalCampaignConfigOperationH\x00\x12j\n\x1f\x63onversion_value_rule_operation\x18? \x01(\x0b\x32?.google.ads.googleads.v17.services.ConversionValueRuleOperationH\x00\x12q\n#conversion_value_rule_set_operation\x18@ \x01(\x0b\x32\x42.google.ads.googleads.v17.services.ConversionValueRuleSetOperationH\x00\x12l\n custom_conversion_goal_operation\x18\x44 \x01(\x0b\x32@.google.ads.googleads.v17.services.CustomConversionGoalOperationH\x00\x12]\n\x18\x63ustomer_asset_operation\x18\x39 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CustomerAssetOperationH\x00\x12p\n\"customer_conversion_goal_operation\x18\x42 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.CustomerConversionGoalOperationH\x00\x12g\n\x1d\x63ustomer_customizer_operation\x18O \x01(\x0b\x32>.google.ads.googleads.v17.services.CustomerCustomizerOperationH\x00\x12t\n$customer_extension_setting_operation\x18\x1e \x01(\x0b\x32\x44.google.ads.googleads.v17.services.CustomerExtensionSettingOperationH\x00\x12[\n\x17\x63ustomer_feed_operation\x18\x1f \x01(\x0b\x32\x38.google.ads.googleads.v17.services.CustomerFeedOperationH\x00\x12]\n\x18\x63ustomer_label_operation\x18  \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CustomerLabelOperationH\x00\x12v\n%customer_negative_criterion_operation\x18\" \x01(\x0b\x32\x45.google.ads.googleads.v17.services.CustomerNegativeCriterionOperationH\x00\x12R\n\x12\x63ustomer_operation\x18# \x01(\x0b\x32\x34.google.ads.googleads.v17.services.CustomerOperationH\x00\x12i\n\x1e\x63ustomizer_attribute_operation\x18\x46 \x01(\x0b\x32?.google.ads.googleads.v17.services.CustomizerAttributeOperationH\x00\x12V\n\x14\x65xperiment_operation\x18R \x01(\x0b\x32\x36.google.ads.googleads.v17.services.ExperimentOperationH\x00\x12]\n\x18\x65xperiment_arm_operation\x18S \x01(\x0b\x32\x39.google.ads.googleads.v17.services.ExperimentArmOperationH\x00\x12\x66\n\x1d\x65xtension_feed_item_operation\x18$ \x01(\x0b\x32=.google.ads.googleads.v17.services.ExtensionFeedItemOperationH\x00\x12S\n\x13\x66\x65\x65\x64_item_operation\x18% \x01(\x0b\x32\x34.google.ads.googleads.v17.services.FeedItemOperationH\x00\x12Z\n\x17\x66\x65\x65\x64_item_set_operation\x18\x35 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.FeedItemSetOperationH\x00\x12\x63\n\x1c\x66\x65\x65\x64_item_set_link_operation\x18\x36 \x01(\x0b\x32;.google.ads.googleads.v17.services.FeedItemSetLinkOperationH\x00\x12`\n\x1a\x66\x65\x65\x64_item_target_operation\x18& \x01(\x0b\x32:.google.ads.googleads.v17.services.FeedItemTargetOperationH\x00\x12Y\n\x16\x66\x65\x65\x64_mapping_operation\x18\' \x01(\x0b\x32\x37.google.ads.googleads.v17.services.FeedMappingOperationH\x00\x12J\n\x0e\x66\x65\x65\x64_operation\x18( \x01(\x0b\x32\x30.google.ads.googleads.v17.services.FeedOperationH\x00\x12i\n\x1fkeyword_plan_ad_group_operation\x18, \x01(\x0b\x32>.google.ads.googleads.v17.services.KeywordPlanAdGroupOperationH\x00\x12x\n\'keyword_plan_ad_group_keyword_operation\x18\x32 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordOperationH\x00\x12y\n\'keyword_plan_campaign_keyword_operation\x18\x33 \x01(\x0b\x32\x46.google.ads.googleads.v17.services.KeywordPlanCampaignKeywordOperationH\x00\x12j\n\x1fkeyword_plan_campaign_operation\x18- \x01(\x0b\x32?.google.ads.googleads.v17.services.KeywordPlanCampaignOperationH\x00\x12Y\n\x16keyword_plan_operation\x18\x30 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.KeywordPlanOperationH\x00\x12L\n\x0flabel_operation\x18) \x01(\x0b\x32\x31.google.ads.googleads.v17.services.LabelOperationH\x00\x12w\n%recommendation_subscription_operation\x18V \x01(\x0b\x32\x46.google.ads.googleads.v17.services.RecommendationSubscriptionOperationH\x00\x12\x65\n\x1cremarketing_action_operation\x18+ \x01(\x0b\x32=.google.ads.googleads.v17.services.RemarketingActionOperationH\x00\x12\x61\n\x1ashared_criterion_operation\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v17.services.SharedCriterionOperationH\x00\x12U\n\x14shared_set_operation\x18\x0f \x01(\x0b\x32\x35.google.ads.googleads.v17.services.SharedSetOperationH\x00\x12l\n smart_campaign_setting_operation\x18= \x01(\x0b\x32@.google.ads.googleads.v17.services.SmartCampaignSettingOperationH\x00\x12S\n\x13user_list_operation\x18\x10 \x01(\x0b\x32\x34.google.ads.googleads.v17.services.UserListOperationH\x00\x42\x0b\n\toperation\"\xad;\n\x17MutateOperationResponse\x12\x61\n\x18\x61\x64_group_ad_label_result\x18\x11 \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateAdGroupAdLabelResultH\x00\x12V\n\x12\x61\x64_group_ad_result\x18\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.MutateAdGroupAdResultH\x00\x12\\\n\x15\x61\x64_group_asset_result\x18\x38 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateAdGroupAssetResultH\x00\x12i\n\x1c\x61\x64_group_bid_modifier_result\x18\x02 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateAdGroupBidModifierResultH\x00\x12y\n$ad_group_criterion_customizer_result\x18M \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateAdGroupCriterionCustomizerResultH\x00\x12o\n\x1f\x61\x64_group_criterion_label_result\x18\x12 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.MutateAdGroupCriterionLabelResultH\x00\x12\x64\n\x19\x61\x64_group_criterion_result\x18\x03 \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateAdGroupCriterionResultH\x00\x12\x66\n\x1a\x61\x64_group_customizer_result\x18K \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateAdGroupCustomizerResultH\x00\x12s\n!ad_group_extension_setting_result\x18\x13 \x01(\x0b\x32\x46.google.ads.googleads.v17.services.MutateAdGroupExtensionSettingResultH\x00\x12Z\n\x14\x61\x64_group_feed_result\x18\x14 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateAdGroupFeedResultH\x00\x12\\\n\x15\x61\x64_group_label_result\x18\x15 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateAdGroupLabelResultH\x00\x12Q\n\x0f\x61\x64_group_result\x18\x05 \x01(\x0b\x32\x36.google.ads.googleads.v17.services.MutateAdGroupResultH\x00\x12Y\n\x13\x61\x64_parameter_result\x18\x16 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateAdParameterResultH\x00\x12\x46\n\tad_result\x18\x31 \x01(\x0b\x32\x31.google.ads.googleads.v17.services.MutateAdResultH\x00\x12L\n\x0c\x61sset_result\x18\x17 \x01(\x0b\x32\x34.google.ads.googleads.v17.services.MutateAssetResultH\x00\x12\x62\n\x18\x61sset_group_asset_result\x18\x41 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateAssetGroupAssetResultH\x00\x12~\n\'asset_group_listing_group_filter_result\x18N \x01(\x0b\x32K.google.ads.googleads.v17.services.MutateAssetGroupListingGroupFilterResultH\x00\x12\x64\n\x19\x61sset_group_signal_result\x18O \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateAssetGroupSignalResultH\x00\x12W\n\x12\x61sset_group_result\x18> \x01(\x0b\x32\x39.google.ads.googleads.v17.services.MutateAssetGroupResultH\x00\x12^\n\x16\x61sset_set_asset_result\x18G \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateAssetSetAssetResultH\x00\x12S\n\x10\x61sset_set_result\x18H \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateAssetSetResultH\x00\x12R\n\x0f\x61udience_result\x18P \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateAudienceResultH\x00\x12m\n\x1d\x62idding_data_exclusion_result\x18: \x01(\x0b\x32\x44.google.ads.googleads.v17.services.MutateBiddingDataExclusionsResultH\x00\x12}\n%bidding_seasonality_adjustment_result\x18; \x01(\x0b\x32L.google.ads.googleads.v17.services.MutateBiddingSeasonalityAdjustmentsResultH\x00\x12\x61\n\x17\x62idding_strategy_result\x18\x06 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateBiddingStrategyResultH\x00\x12]\n\x15\x63\x61mpaign_asset_result\x18\x34 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignAssetResultH\x00\x12\x64\n\x19\x63\x61mpaign_asset_set_result\x18I \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateCampaignAssetSetResultH\x00\x12j\n\x1c\x63\x61mpaign_bid_modifier_result\x18\x07 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateCampaignBidModifierResultH\x00\x12_\n\x16\x63\x61mpaign_budget_result\x18\x08 \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateCampaignBudgetResultH\x00\x12p\n\x1f\x63\x61mpaign_conversion_goal_result\x18\x43 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateCampaignConversionGoalResultH\x00\x12\x65\n\x19\x63\x61mpaign_criterion_result\x18\r \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateCampaignCriterionResultH\x00\x12g\n\x1a\x63\x61mpaign_customizer_result\x18L \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateCampaignCustomizerResultH\x00\x12]\n\x15\x63\x61mpaign_draft_result\x18\x18 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignDraftResultH\x00\x12t\n!campaign_extension_setting_result\x18\x1a \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCampaignExtensionSettingResultH\x00\x12[\n\x14\x63\x61mpaign_feed_result\x18\x1b \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateCampaignFeedResultH\x00\x12]\n\x15\x63\x61mpaign_group_result\x18\t \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignGroupResultH\x00\x12]\n\x15\x63\x61mpaign_label_result\x18\x1c \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignLabelResultH\x00\x12R\n\x0f\x63\x61mpaign_result\x18\n \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateCampaignResultH\x00\x12\x66\n\x1a\x63\x61mpaign_shared_set_result\x18\x0b \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateCampaignSharedSetResultH\x00\x12\x63\n\x18\x63onversion_action_result\x18\x0c \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateConversionActionResultH\x00\x12t\n!conversion_custom_variable_result\x18\x37 \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateConversionCustomVariableResultH\x00\x12}\n&conversion_goal_campaign_config_result\x18\x45 \x01(\x0b\x32K.google.ads.googleads.v17.services.MutateConversionGoalCampaignConfigResultH\x00\x12j\n\x1c\x63onversion_value_rule_result\x18? \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateConversionValueRuleResultH\x00\x12q\n conversion_value_rule_set_result\x18@ \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateConversionValueRuleSetResultH\x00\x12l\n\x1d\x63ustom_conversion_goal_result\x18\x44 \x01(\x0b\x32\x43.google.ads.googleads.v17.services.MutateCustomConversionGoalResultH\x00\x12]\n\x15\x63ustomer_asset_result\x18\x39 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCustomerAssetResultH\x00\x12p\n\x1f\x63ustomer_conversion_goal_result\x18\x42 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateCustomerConversionGoalResultH\x00\x12g\n\x1a\x63ustomer_customizer_result\x18J \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateCustomerCustomizerResultH\x00\x12t\n!customer_extension_setting_result\x18\x1e \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCustomerExtensionSettingResultH\x00\x12[\n\x14\x63ustomer_feed_result\x18\x1f \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateCustomerFeedResultH\x00\x12]\n\x15\x63ustomer_label_result\x18  \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCustomerLabelResultH\x00\x12u\n\"customer_negative_criterion_result\x18\" \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCustomerNegativeCriteriaResultH\x00\x12R\n\x0f\x63ustomer_result\x18# \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateCustomerResultH\x00\x12i\n\x1b\x63ustomizer_attribute_result\x18\x46 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateCustomizerAttributeResultH\x00\x12V\n\x11\x65xperiment_result\x18Q \x01(\x0b\x32\x39.google.ads.googleads.v17.services.MutateExperimentResultH\x00\x12]\n\x15\x65xperiment_arm_result\x18R \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateExperimentArmResultH\x00\x12\x66\n\x1a\x65xtension_feed_item_result\x18$ \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateExtensionFeedItemResultH\x00\x12S\n\x10\x66\x65\x65\x64_item_result\x18% \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateFeedItemResultH\x00\x12Z\n\x14\x66\x65\x65\x64_item_set_result\x18\x35 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateFeedItemSetResultH\x00\x12\x63\n\x19\x66\x65\x65\x64_item_set_link_result\x18\x36 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateFeedItemSetLinkResultH\x00\x12`\n\x17\x66\x65\x65\x64_item_target_result\x18& \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateFeedItemTargetResultH\x00\x12Y\n\x13\x66\x65\x65\x64_mapping_result\x18\' \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateFeedMappingResultH\x00\x12J\n\x0b\x66\x65\x65\x64_result\x18( \x01(\x0b\x32\x33.google.ads.googleads.v17.services.MutateFeedResultH\x00\x12i\n\x1ckeyword_plan_ad_group_result\x18, \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateKeywordPlanAdGroupResultH\x00\x12j\n\x1ckeyword_plan_campaign_result\x18- \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateKeywordPlanCampaignResultH\x00\x12x\n$keyword_plan_ad_group_keyword_result\x18\x32 \x01(\x0b\x32H.google.ads.googleads.v17.services.MutateKeywordPlanAdGroupKeywordResultH\x00\x12y\n$keyword_plan_campaign_keyword_result\x18\x33 \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateKeywordPlanCampaignKeywordResultH\x00\x12Z\n\x13keyword_plan_result\x18\x30 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateKeywordPlansResultH\x00\x12L\n\x0clabel_result\x18) \x01(\x0b\x32\x34.google.ads.googleads.v17.services.MutateLabelResultH\x00\x12w\n\"recommendation_subscription_result\x18U \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateRecommendationSubscriptionResultH\x00\x12\x65\n\x19remarketing_action_result\x18+ \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateRemarketingActionResultH\x00\x12\x61\n\x17shared_criterion_result\x18\x0e \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateSharedCriterionResultH\x00\x12U\n\x11shared_set_result\x18\x0f \x01(\x0b\x32\x38.google.ads.googleads.v17.services.MutateSharedSetResultH\x00\x12l\n\x1dsmart_campaign_setting_result\x18= \x01(\x0b\x32\x43.google.ads.googleads.v17.services.MutateSmartCampaignSettingResultH\x00\x12S\n\x10user_list_result\x18\x10 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateUserListResultH\x00\x42\n\n\x08response2\xf5\x05\n\x10GoogleAdsService\x12\xcf\x01\n\x06Search\x12\x39.google.ads.googleads.v17.services.SearchGoogleAdsRequest\x1a:.google.ads.googleads.v17.services.SearchGoogleAdsResponse\"N\xda\x41\x11\x63ustomer_id,query\x82\xd3\xe4\x93\x02\x34\"//v17/customers/{customer_id=*}/googleAds:search:\x01*\x12\xe9\x01\n\x0cSearchStream\x12?.google.ads.googleads.v17.services.SearchGoogleAdsStreamRequest\x1a@.google.ads.googleads.v17.services.SearchGoogleAdsStreamResponse\"T\xda\x41\x11\x63ustomer_id,query\x82\xd3\xe4\x93\x02:\"5/v17/customers/{customer_id=*}/googleAds:searchStream:\x01*0\x01\x12\xdb\x01\n\x06Mutate\x12\x39.google.ads.googleads.v17.services.MutateGoogleAdsRequest\x1a:.google.ads.googleads.v17.services.MutateGoogleAdsResponse\"Z\xda\x41\x1d\x63ustomer_id,mutate_operations\x82\xd3\xe4\x93\x02\x34\"//v17/customers/{customer_id=*}/googleAds:mutate:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x81\x02\n%com.google.ads.googleads.v17.servicesB\x15GoogleAdsServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
+descriptor_data = "\n:google/ads/googleads/v17/services/google_ads_service.proto\x12!google.ads.googleads.v17.services\x1a-google/ads/googleads/v17/common/metrics.proto\x1a.google/ads/googleads/v17/common/segments.proto\x1a:google/ads/googleads/v17/enums/response_content_type.proto\x1a\x38google/ads/googleads/v17/enums/summary_row_setting.proto\x1a\x44google/ads/googleads/v17/resources/accessible_bidding_strategy.proto\x1a\x37google/ads/googleads/v17/resources/account_budget.proto\x1a@google/ads/googleads/v17/resources/account_budget_proposal.proto\x1a\x35google/ads/googleads/v17/resources/account_link.proto\x1a+google/ads/googleads/v17/resources/ad.proto\x1a\x31google/ads/googleads/v17/resources/ad_group.proto\x1a\x34google/ads/googleads/v17/resources/ad_group_ad.proto\x1aKgoogle/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto\x1a?google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto\x1a:google/ads/googleads/v17/resources/ad_group_ad_label.proto\x1a\x37google/ads/googleads/v17/resources/ad_group_asset.proto\x1a;google/ads/googleads/v17/resources/ad_group_asset_set.proto\x1a?google/ads/googleads/v17/resources/ad_group_audience_view.proto\x1a>google/ads/googleads/v17/resources/ad_group_bid_modifier.proto\x1a;google/ads/googleads/v17/resources/ad_group_criterion.proto\x1a\x46google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto\x1a\x41google/ads/googleads/v17/resources/ad_group_criterion_label.proto\x1a\x46google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto\x1a<google/ads/googleads/v17/resources/ad_group_customizer.proto\x1a\x43google/ads/googleads/v17/resources/ad_group_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/ad_group_feed.proto\x1a\x37google/ads/googleads/v17/resources/ad_group_label.proto\x1a<google/ads/googleads/v17/resources/ad_group_simulation.proto\x1a\x35google/ads/googleads/v17/resources/ad_parameter.proto\x1a\x39google/ads/googleads/v17/resources/ad_schedule_view.proto\x1a\x37google/ads/googleads/v17/resources/age_range_view.proto\x1aSgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto\x1aSgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto\x1aWgoogle/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto\x1a.google/ads/googleads/v17/resources/asset.proto\x1a>google/ads/googleads/v17/resources/asset_field_type_view.proto\x1a\x34google/ads/googleads/v17/resources/asset_group.proto\x1a:google/ads/googleads/v17/resources/asset_group_asset.proto\x1aIgoogle/ads/googleads/v17/resources/asset_group_listing_group_filter.proto\x1aGgoogle/ads/googleads/v17/resources/asset_group_product_group_view.proto\x1a;google/ads/googleads/v17/resources/asset_group_signal.proto\x1aIgoogle/ads/googleads/v17/resources/asset_group_top_combination_view.proto\x1a\x32google/ads/googleads/v17/resources/asset_set.proto\x1a\x38google/ads/googleads/v17/resources/asset_set_asset.proto\x1a<google/ads/googleads/v17/resources/asset_set_type_view.proto\x1a\x31google/ads/googleads/v17/resources/audience.proto\x1a\x32google/ads/googleads/v17/resources/batch_job.proto\x1a?google/ads/googleads/v17/resources/bidding_data_exclusion.proto\x1aGgoogle/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto\x1a\x39google/ads/googleads/v17/resources/bidding_strategy.proto\x1a\x44google/ads/googleads/v17/resources/bidding_strategy_simulation.proto\x1a\x36google/ads/googleads/v17/resources/billing_setup.proto\x1a\x32google/ads/googleads/v17/resources/call_view.proto\x1a\x31google/ads/googleads/v17/resources/campaign.proto\x1a\x46google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto\x1a\x37google/ads/googleads/v17/resources/campaign_asset.proto\x1a;google/ads/googleads/v17/resources/campaign_asset_set.proto\x1a?google/ads/googleads/v17/resources/campaign_audience_view.proto\x1a>google/ads/googleads/v17/resources/campaign_bid_modifier.proto\x1a\x38google/ads/googleads/v17/resources/campaign_budget.proto\x1a\x41google/ads/googleads/v17/resources/campaign_conversion_goal.proto\x1a;google/ads/googleads/v17/resources/campaign_criterion.proto\x1a<google/ads/googleads/v17/resources/campaign_customizer.proto\x1a\x37google/ads/googleads/v17/resources/campaign_draft.proto\x1a\x43google/ads/googleads/v17/resources/campaign_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/campaign_feed.proto\x1a\x37google/ads/googleads/v17/resources/campaign_group.proto\x1a\x37google/ads/googleads/v17/resources/campaign_label.proto\x1a@google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto\x1a\x45google/ads/googleads/v17/resources/campaign_search_term_insight.proto\x1a<google/ads/googleads/v17/resources/campaign_shared_set.proto\x1a<google/ads/googleads/v17/resources/campaign_simulation.proto\x1a\x39google/ads/googleads/v17/resources/carrier_constant.proto\x1a\x35google/ads/googleads/v17/resources/change_event.proto\x1a\x36google/ads/googleads/v17/resources/change_status.proto\x1a\x45google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto\x1a\x33google/ads/googleads/v17/resources/click_view.proto\x1a:google/ads/googleads/v17/resources/combined_audience.proto\x1a:google/ads/googleads/v17/resources/conversion_action.proto\x1a\x43google/ads/googleads/v17/resources/conversion_custom_variable.proto\x1aHgoogle/ads/googleads/v17/resources/conversion_goal_campaign_config.proto\x1a>google/ads/googleads/v17/resources/conversion_value_rule.proto\x1a\x42google/ads/googleads/v17/resources/conversion_value_rule_set.proto\x1a:google/ads/googleads/v17/resources/currency_constant.proto\x1a\x38google/ads/googleads/v17/resources/custom_audience.proto\x1a?google/ads/googleads/v17/resources/custom_conversion_goal.proto\x1a\x38google/ads/googleads/v17/resources/custom_interest.proto\x1a\x31google/ads/googleads/v17/resources/customer.proto\x1a\x37google/ads/googleads/v17/resources/customer_asset.proto\x1a;google/ads/googleads/v17/resources/customer_asset_set.proto\x1a\x38google/ads/googleads/v17/resources/customer_client.proto\x1a=google/ads/googleads/v17/resources/customer_client_link.proto\x1a\x41google/ads/googleads/v17/resources/customer_conversion_goal.proto\x1a<google/ads/googleads/v17/resources/customer_customizer.proto\x1a\x43google/ads/googleads/v17/resources/customer_extension_setting.proto\x1a\x36google/ads/googleads/v17/resources/customer_feed.proto\x1a\x37google/ads/googleads/v17/resources/customer_label.proto\x1a@google/ads/googleads/v17/resources/customer_lifecycle_goal.proto\x1a>google/ads/googleads/v17/resources/customer_manager_link.proto\x1a\x44google/ads/googleads/v17/resources/customer_negative_criterion.proto\x1a\x45google/ads/googleads/v17/resources/customer_search_term_insight.proto\x1a=google/ads/googleads/v17/resources/customer_user_access.proto\x1aHgoogle/ads/googleads/v17/resources/customer_user_access_invitation.proto\x1a=google/ads/googleads/v17/resources/customizer_attribute.proto\x1a>google/ads/googleads/v17/resources/detail_placement_view.proto\x1a=google/ads/googleads/v17/resources/detailed_demographic.proto\x1a=google/ads/googleads/v17/resources/display_keyword_view.proto\x1a\x36google/ads/googleads/v17/resources/distance_view.proto\x1a\x38google/ads/googleads/v17/resources/domain_category.proto\x1aLgoogle/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto\x1a\x43google/ads/googleads/v17/resources/expanded_landing_page_view.proto\x1a\x33google/ads/googleads/v17/resources/experiment.proto\x1a\x37google/ads/googleads/v17/resources/experiment_arm.proto\x1a<google/ads/googleads/v17/resources/extension_feed_item.proto\x1a-google/ads/googleads/v17/resources/feed.proto\x1a\x32google/ads/googleads/v17/resources/feed_item.proto\x1a\x36google/ads/googleads/v17/resources/feed_item_set.proto\x1a;google/ads/googleads/v17/resources/feed_item_set_link.proto\x1a\x39google/ads/googleads/v17/resources/feed_item_target.proto\x1a\x35google/ads/googleads/v17/resources/feed_mapping.proto\x1a>google/ads/googleads/v17/resources/feed_placeholder_view.proto\x1a\x34google/ads/googleads/v17/resources/gender_view.proto\x1a<google/ads/googleads/v17/resources/geo_target_constant.proto\x1a\x38google/ads/googleads/v17/resources/geographic_view.proto\x1a=google/ads/googleads/v17/resources/group_placement_view.proto\x1a\x39google/ads/googleads/v17/resources/hotel_group_view.proto\x1a?google/ads/googleads/v17/resources/hotel_performance_view.proto\x1a=google/ads/googleads/v17/resources/hotel_reconciliation.proto\x1a:google/ads/googleads/v17/resources/income_range_view.proto\x1a\x35google/ads/googleads/v17/resources/keyword_plan.proto\x1a>google/ads/googleads/v17/resources/keyword_plan_ad_group.proto\x1a\x46google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto\x1a>google/ads/googleads/v17/resources/keyword_plan_campaign.proto\x1a\x46google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto\x1a?google/ads/googleads/v17/resources/keyword_theme_constant.proto\x1a\x35google/ads/googleads/v17/resources/keyword_view.proto\x1a.google/ads/googleads/v17/resources/label.proto\x1a:google/ads/googleads/v17/resources/landing_page_view.proto\x1a:google/ads/googleads/v17/resources/language_constant.proto\x1a\x42google/ads/googleads/v17/resources/lead_form_submission_data.proto\x1a\x33google/ads/googleads/v17/resources/life_event.proto\x1a@google/ads/googleads/v17/resources/local_services_employee.proto\x1a<google/ads/googleads/v17/resources/local_services_lead.proto\x1aIgoogle/ads/googleads/v17/resources/local_services_lead_conversation.proto\x1aMgoogle/ads/googleads/v17/resources/local_services_verification_artifact.proto\x1a\x36google/ads/googleads/v17/resources/location_view.proto\x1a?google/ads/googleads/v17/resources/managed_placement_view.proto\x1a\x33google/ads/googleads/v17/resources/media_file.proto\x1a\x45google/ads/googleads/v17/resources/mobile_app_category_constant.proto\x1a?google/ads/googleads/v17/resources/mobile_device_constant.proto\x1aQgoogle/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto\x1a\\google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto\x1a>google/ads/googleads/v17/resources/offline_user_data_job.proto\x1aJgoogle/ads/googleads/v17/resources/operating_system_version_constant.proto\x1a\x46google/ads/googleads/v17/resources/paid_organic_search_term_view.proto\x1a=google/ads/googleads/v17/resources/parental_status_view.proto\x1a\x37google/ads/googleads/v17/resources/per_store_view.proto\x1a\x42google/ads/googleads/v17/resources/product_category_constant.proto\x1a;google/ads/googleads/v17/resources/product_group_view.proto\x1a\x35google/ads/googleads/v17/resources/product_link.proto\x1a@google/ads/googleads/v17/resources/product_link_invitation.proto\x1a<google/ads/googleads/v17/resources/qualifying_question.proto\x1a\x37google/ads/googleads/v17/resources/recommendation.proto\x1a\x44google/ads/googleads/v17/resources/recommendation_subscription.proto\x1a;google/ads/googleads/v17/resources/remarketing_action.proto\x1a\x39google/ads/googleads/v17/resources/search_term_view.proto\x1a\x39google/ads/googleads/v17/resources/shared_criterion.proto\x1a\x33google/ads/googleads/v17/resources/shared_set.proto\x1a\x42google/ads/googleads/v17/resources/shopping_performance_view.proto\x1a\x39google/ads/googleads/v17/resources/shopping_product.proto\x1aHgoogle/ads/googleads/v17/resources/smart_campaign_search_term_view.proto\x1a?google/ads/googleads/v17/resources/smart_campaign_setting.proto\x1aGgoogle/ads/googleads/v17/resources/third_party_app_analytics_link.proto\x1a\x37google/ads/googleads/v17/resources/topic_constant.proto\x1a\x33google/ads/googleads/v17/resources/topic_view.proto\x1a\x43google/ads/googleads/v17/resources/travel_activity_group_view.proto\x1aIgoogle/ads/googleads/v17/resources/travel_activity_performance_view.proto\x1a\x36google/ads/googleads/v17/resources/user_interest.proto\x1a\x32google/ads/googleads/v17/resources/user_list.proto\x1a@google/ads/googleads/v17/resources/user_list_customer_type.proto\x1a;google/ads/googleads/v17/resources/user_location_view.proto\x1a.google/ads/googleads/v17/resources/video.proto\x1a\x35google/ads/googleads/v17/resources/webpage_view.proto\x1a\x41google/ads/googleads/v17/services/ad_group_ad_label_service.proto\x1a;google/ads/googleads/v17/services/ad_group_ad_service.proto\x1a>google/ads/googleads/v17/services/ad_group_asset_service.proto\x1a\x45google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto\x1aMgoogle/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto\x1aHgoogle/ads/googleads/v17/services/ad_group_criterion_label_service.proto\x1a\x42google/ads/googleads/v17/services/ad_group_criterion_service.proto\x1a\x43google/ads/googleads/v17/services/ad_group_customizer_service.proto\x1aJgoogle/ads/googleads/v17/services/ad_group_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/ad_group_feed_service.proto\x1a>google/ads/googleads/v17/services/ad_group_label_service.proto\x1a\x38google/ads/googleads/v17/services/ad_group_service.proto\x1a<google/ads/googleads/v17/services/ad_parameter_service.proto\x1a\x32google/ads/googleads/v17/services/ad_service.proto\x1a\x41google/ads/googleads/v17/services/asset_group_asset_service.proto\x1aPgoogle/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto\x1a;google/ads/googleads/v17/services/asset_group_service.proto\x1a\x42google/ads/googleads/v17/services/asset_group_signal_service.proto\x1a\x35google/ads/googleads/v17/services/asset_service.proto\x1a?google/ads/googleads/v17/services/asset_set_asset_service.proto\x1a\x39google/ads/googleads/v17/services/asset_set_service.proto\x1a\x38google/ads/googleads/v17/services/audience_service.proto\x1a\x46google/ads/googleads/v17/services/bidding_data_exclusion_service.proto\x1aNgoogle/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto\x1a@google/ads/googleads/v17/services/bidding_strategy_service.proto\x1a>google/ads/googleads/v17/services/campaign_asset_service.proto\x1a\x42google/ads/googleads/v17/services/campaign_asset_set_service.proto\x1a\x45google/ads/googleads/v17/services/campaign_bid_modifier_service.proto\x1a?google/ads/googleads/v17/services/campaign_budget_service.proto\x1aHgoogle/ads/googleads/v17/services/campaign_conversion_goal_service.proto\x1a\x42google/ads/googleads/v17/services/campaign_criterion_service.proto\x1a\x43google/ads/googleads/v17/services/campaign_customizer_service.proto\x1a>google/ads/googleads/v17/services/campaign_draft_service.proto\x1aJgoogle/ads/googleads/v17/services/campaign_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/campaign_feed_service.proto\x1a>google/ads/googleads/v17/services/campaign_group_service.proto\x1a>google/ads/googleads/v17/services/campaign_label_service.proto\x1a\x38google/ads/googleads/v17/services/campaign_service.proto\x1a\x43google/ads/googleads/v17/services/campaign_shared_set_service.proto\x1a\x41google/ads/googleads/v17/services/conversion_action_service.proto\x1aJgoogle/ads/googleads/v17/services/conversion_custom_variable_service.proto\x1aOgoogle/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto\x1a\x45google/ads/googleads/v17/services/conversion_value_rule_service.proto\x1aIgoogle/ads/googleads/v17/services/conversion_value_rule_set_service.proto\x1a\x46google/ads/googleads/v17/services/custom_conversion_goal_service.proto\x1a>google/ads/googleads/v17/services/customer_asset_service.proto\x1aHgoogle/ads/googleads/v17/services/customer_conversion_goal_service.proto\x1a\x43google/ads/googleads/v17/services/customer_customizer_service.proto\x1aJgoogle/ads/googleads/v17/services/customer_extension_setting_service.proto\x1a=google/ads/googleads/v17/services/customer_feed_service.proto\x1a>google/ads/googleads/v17/services/customer_label_service.proto\x1aKgoogle/ads/googleads/v17/services/customer_negative_criterion_service.proto\x1a\x38google/ads/googleads/v17/services/customer_service.proto\x1a\x44google/ads/googleads/v17/services/customizer_attribute_service.proto\x1a>google/ads/googleads/v17/services/experiment_arm_service.proto\x1a:google/ads/googleads/v17/services/experiment_service.proto\x1a\x43google/ads/googleads/v17/services/extension_feed_item_service.proto\x1a\x39google/ads/googleads/v17/services/feed_item_service.proto\x1a\x42google/ads/googleads/v17/services/feed_item_set_link_service.proto\x1a=google/ads/googleads/v17/services/feed_item_set_service.proto\x1a@google/ads/googleads/v17/services/feed_item_target_service.proto\x1a<google/ads/googleads/v17/services/feed_mapping_service.proto\x1a\x34google/ads/googleads/v17/services/feed_service.proto\x1aMgoogle/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto\x1a\x45google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto\x1aMgoogle/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto\x1a\x45google/ads/googleads/v17/services/keyword_plan_campaign_service.proto\x1a<google/ads/googleads/v17/services/keyword_plan_service.proto\x1a\x35google/ads/googleads/v17/services/label_service.proto\x1aKgoogle/ads/googleads/v17/services/recommendation_subscription_service.proto\x1a\x42google/ads/googleads/v17/services/remarketing_action_service.proto\x1a@google/ads/googleads/v17/services/shared_criterion_service.proto\x1a:google/ads/googleads/v17/services/shared_set_service.proto\x1a\x46google/ads/googleads/v17/services/smart_campaign_setting_service.proto\x1a\x39google/ads/googleads/v17/services/user_list_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\x8e\x02\n\x16SearchGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x15\n\rvalidate_only\x18\x05 \x01(\x08\x12\"\n\x1areturn_total_results_count\x18\x07 \x01(\x08\x12\x64\n\x13summary_row_setting\x18\x08 \x01(\x0e\x32G.google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting\"\xab\x02\n\x17SearchGoogleAdsResponse\x12@\n\x07results\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1b\n\x13total_results_count\x18\x03 \x01(\x03\x12.\n\nfield_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x0bsummary_row\x18\x06 \x01(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\"\n\x1aquery_resource_consumption\x18\x08 \x01(\x03\"\xb2\x01\n\x1cSearchGoogleAdsStreamRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\x13summary_row_setting\x18\x03 \x01(\x0e\x32G.google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting\"\x8f\x02\n\x1dSearchGoogleAdsStreamResponse\x12@\n\x07results\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12.\n\nfield_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x0bsummary_row\x18\x03 \x01(\x0b\x32/.google.ads.googleads.v17.services.GoogleAdsRow\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\"\n\x1aquery_resource_consumption\x18\x06 \x01(\x03\"\x9ax\n\x0cGoogleAdsRow\x12I\n\x0e\x61\x63\x63ount_budget\x18* \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.AccountBudget\x12Z\n\x17\x61\x63\x63ount_budget_proposal\x18+ \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.AccountBudgetProposal\x12\x46\n\x0c\x61\x63\x63ount_link\x18\x8f\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AccountLink\x12\x33\n\x02\x61\x64\x18\xe3\x01 \x01(\x0b\x32&.google.ads.googleads.v17.resources.Ad\x12=\n\x08\x61\x64_group\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v17.resources.AdGroup\x12\x42\n\x0b\x61\x64_group_ad\x18\x10 \x01(\x0b\x32-.google.ads.googleads.v17.resources.AdGroupAd\x12n\n\"ad_group_ad_asset_combination_view\x18\xc1\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.AdGroupAdAssetCombinationView\x12W\n\x16\x61\x64_group_ad_asset_view\x18\x83\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AdGroupAdAssetView\x12M\n\x11\x61\x64_group_ad_label\x18x \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.AdGroupAdLabel\x12I\n\x0e\x61\x64_group_asset\x18\x9a\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AdGroupAsset\x12P\n\x12\x61\x64_group_asset_set\x18\xc4\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.AdGroupAssetSet\x12W\n\x16\x61\x64_group_audience_view\x18\x39 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.AdGroupAudienceView\x12U\n\x15\x61\x64_group_bid_modifier\x18\x18 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AdGroupBidModifier\x12P\n\x12\x61\x64_group_criterion\x18\x11 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AdGroupCriterion\x12\x66\n\x1d\x61\x64_group_criterion_customizer\x18\xbb\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.AdGroupCriterionCustomizer\x12[\n\x18\x61\x64_group_criterion_label\x18y \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.AdGroupCriterionLabel\x12\x65\n\x1d\x61\x64_group_criterion_simulation\x18n \x01(\x0b\x32>.google.ads.googleads.v17.resources.AdGroupCriterionSimulation\x12S\n\x13\x61\x64_group_customizer\x18\xb9\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.AdGroupCustomizer\x12_\n\x1a\x61\x64_group_extension_setting\x18p \x01(\x0b\x32;.google.ads.googleads.v17.resources.AdGroupExtensionSetting\x12\x46\n\rad_group_feed\x18\x43 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AdGroupFeed\x12H\n\x0e\x61\x64_group_label\x18s \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AdGroupLabel\x12R\n\x13\x61\x64_group_simulation\x18k \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.AdGroupSimulation\x12\x46\n\x0c\x61\x64_parameter\x18\x82\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.AdParameter\x12H\n\x0e\x61ge_range_view\x18\x30 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.AgeRangeView\x12L\n\x10\x61\x64_schedule_view\x18Y \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.AdScheduleView\x12K\n\x0f\x64omain_category\x18[ \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.DomainCategory\x12\x38\n\x05\x61sset\x18i \x01(\x0b\x32).google.ads.googleads.v17.resources.Asset\x12V\n\x15\x61sset_field_type_view\x18\xa8\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.AssetFieldTypeView\x12\x64\n\x1c\x63hannel_aggregate_asset_view\x18\xde\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.ChannelAggregateAssetView\x12\x66\n\x1d\x63\x61mpaign_aggregate_asset_view\x18\xe0\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.CampaignAggregateAssetView\x12O\n\x11\x61sset_group_asset\x18\xad\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.AssetGroupAsset\x12Q\n\x12\x61sset_group_signal\x18\xbf\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AssetGroupSignal\x12k\n asset_group_listing_group_filter\x18\xb6\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.AssetGroupListingGroupFilter\x12g\n\x1e\x61sset_group_product_group_view\x18\xbd\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.AssetGroupProductGroupView\x12k\n asset_group_top_combination_view\x18\xc7\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.AssetGroupTopCombinationView\x12\x44\n\x0b\x61sset_group\x18\xac\x01 \x01(\x0b\x32..google.ads.googleads.v17.resources.AssetGroup\x12K\n\x0f\x61sset_set_asset\x18\xb4\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.AssetSetAsset\x12@\n\tasset_set\x18\xb3\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.AssetSet\x12R\n\x13\x61sset_set_type_view\x18\xc5\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.AssetSetTypeView\x12@\n\tbatch_job\x18\x8b\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.BatchJob\x12Y\n\x16\x62idding_data_exclusion\x18\x9f\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.BiddingDataExclusion\x12i\n\x1e\x62idding_seasonality_adjustment\x18\xa0\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment\x12M\n\x10\x62idding_strategy\x18\x12 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.BiddingStrategy\x12\x63\n\x1b\x62idding_strategy_simulation\x18\x9e\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.BiddingStrategySimulation\x12G\n\rbilling_setup\x18) \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.BillingSetup\x12@\n\tcall_view\x18\x98\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.CallView\x12K\n\x0f\x63\x61mpaign_budget\x18\x13 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CampaignBudget\x12>\n\x08\x63\x61mpaign\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Campaign\x12J\n\x0e\x63\x61mpaign_asset\x18\x8e\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignAsset\x12Q\n\x12\x63\x61mpaign_asset_set\x18\xb5\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CampaignAssetSet\x12X\n\x16\x63\x61mpaign_audience_view\x18\x45 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.CampaignAudienceView\x12V\n\x15\x63\x61mpaign_bid_modifier\x18\x1a \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CampaignBidModifier\x12]\n\x18\x63\x61mpaign_conversion_goal\x18\xaf\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.CampaignConversionGoal\x12Q\n\x12\x63\x61mpaign_criterion\x18\x14 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.CampaignCriterion\x12T\n\x13\x63\x61mpaign_customizer\x18\xba\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CampaignCustomizer\x12I\n\x0e\x63\x61mpaign_draft\x18\x31 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignDraft\x12`\n\x1a\x63\x61mpaign_extension_setting\x18q \x01(\x0b\x32<.google.ads.googleads.v17.resources.CampaignExtensionSetting\x12G\n\rcampaign_feed\x18? \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.CampaignFeed\x12I\n\x0e\x63\x61mpaign_group\x18\x19 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignGroup\x12I\n\x0e\x63\x61mpaign_label\x18l \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CampaignLabel\x12[\n\x17\x63\x61mpaign_lifecycle_goal\x18\xd5\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.CampaignLifecycleGoal\x12\x64\n\x1c\x63\x61mpaign_search_term_insight\x18\xcc\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.CampaignSearchTermInsight\x12R\n\x13\x63\x61mpaign_shared_set\x18\x1e \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.CampaignSharedSet\x12T\n\x13\x63\x61mpaign_simulation\x18\x9d\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CampaignSimulation\x12M\n\x10\x63\x61rrier_constant\x18\x42 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.CarrierConstant\x12\x46\n\x0c\x63hange_event\x18\x91\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.ChangeEvent\x12G\n\rchange_status\x18% \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.ChangeStatus\x12P\n\x11\x63ombined_audience\x18\x94\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CombinedAudience\x12?\n\x08\x61udience\x18\xbe\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Audience\x12O\n\x11\x63onversion_action\x18g \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.ConversionAction\x12\x61\n\x1a\x63onversion_custom_variable\x18\x99\x01 \x01(\x0b\x32<.google.ads.googleads.v17.resources.ConversionCustomVariable\x12j\n\x1f\x63onversion_goal_campaign_config\x18\xb1\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.ConversionGoalCampaignConfig\x12W\n\x15\x63onversion_value_rule\x18\xa4\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.ConversionValueRule\x12^\n\x19\x63onversion_value_rule_set\x18\xa5\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.ConversionValueRuleSet\x12\x41\n\nclick_view\x18z \x01(\x0b\x32-.google.ads.googleads.v17.resources.ClickView\x12P\n\x11\x63urrency_constant\x18\x86\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CurrencyConstant\x12L\n\x0f\x63ustom_audience\x18\x93\x01 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomAudience\x12Y\n\x16\x63ustom_conversion_goal\x18\xb0\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.CustomConversionGoal\x12K\n\x0f\x63ustom_interest\x18h \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomInterest\x12>\n\x08\x63ustomer\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v17.resources.Customer\x12J\n\x0e\x63ustomer_asset\x18\x9b\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CustomerAsset\x12Q\n\x12\x63ustomer_asset_set\x18\xc3\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.CustomerAssetSet\x12\x63\n\x1b\x61\x63\x63\x65ssible_bidding_strategy\x18\xa9\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.AccessibleBiddingStrategy\x12T\n\x13\x63ustomer_customizer\x18\xb8\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerCustomizer\x12V\n\x15\x63ustomer_manager_link\x18= \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CustomerManagerLink\x12T\n\x14\x63ustomer_client_link\x18> \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerClientLink\x12K\n\x0f\x63ustomer_client\x18\x46 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.CustomerClient\x12]\n\x18\x63ustomer_conversion_goal\x18\xae\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.CustomerConversionGoal\x12`\n\x1a\x63ustomer_extension_setting\x18r \x01(\x0b\x32<.google.ads.googleads.v17.resources.CustomerExtensionSetting\x12G\n\rcustomer_feed\x18@ \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.CustomerFeed\x12I\n\x0e\x63ustomer_label\x18| \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.CustomerLabel\x12[\n\x17\x63ustomer_lifecycle_goal\x18\xd4\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.CustomerLifecycleGoal\x12\x62\n\x1b\x63ustomer_negative_criterion\x18X \x01(\x0b\x32=.google.ads.googleads.v17.resources.CustomerNegativeCriterion\x12\x64\n\x1c\x63ustomer_search_term_insight\x18\xcd\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.CustomerSearchTermInsight\x12U\n\x14\x63ustomer_user_access\x18\x92\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.CustomerUserAccess\x12j\n\x1f\x63ustomer_user_access_invitation\x18\x96\x01 \x01(\x0b\x32@.google.ads.googleads.v17.resources.CustomerUserAccessInvitation\x12V\n\x14\x63ustomizer_attribute\x18\xb2\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.CustomizerAttribute\x12V\n\x15\x64\x65tail_placement_view\x18v \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.DetailPlacementView\x12V\n\x14\x64\x65tailed_demographic\x18\xa6\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.DetailedDemographic\x12T\n\x14\x64isplay_keyword_view\x18/ \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.DisplayKeywordView\x12H\n\rdistance_view\x18\x84\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.DistanceView\x12o\n#dynamic_search_ads_search_term_view\x18j \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.DynamicSearchAdsSearchTermView\x12`\n\x1a\x65xpanded_landing_page_view\x18\x80\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.ExpandedLandingPageView\x12R\n\x13\x65xtension_feed_item\x18U \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.ExtensionFeedItem\x12\x36\n\x04\x66\x65\x65\x64\x18. \x01(\x0b\x32(.google.ads.googleads.v17.resources.Feed\x12?\n\tfeed_item\x18\x32 \x01(\x0b\x32,.google.ads.googleads.v17.resources.FeedItem\x12G\n\rfeed_item_set\x18\x95\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.FeedItemSet\x12P\n\x12\x66\x65\x65\x64_item_set_link\x18\x97\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.FeedItemSetLink\x12L\n\x10\x66\x65\x65\x64_item_target\x18t \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.FeedItemTarget\x12\x45\n\x0c\x66\x65\x65\x64_mapping\x18: \x01(\x0b\x32/.google.ads.googleads.v17.resources.FeedMapping\x12V\n\x15\x66\x65\x65\x64_placeholder_view\x18\x61 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.FeedPlaceholderView\x12\x43\n\x0bgender_view\x18( \x01(\x0b\x32..google.ads.googleads.v17.resources.GenderView\x12R\n\x13geo_target_constant\x18\x17 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.GeoTargetConstant\x12K\n\x0fgeographic_view\x18} \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.GeographicView\x12T\n\x14group_placement_view\x18w \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.GroupPlacementView\x12L\n\x10hotel_group_view\x18\x33 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.HotelGroupView\x12X\n\x16hotel_performance_view\x18G \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.HotelPerformanceView\x12V\n\x14hotel_reconciliation\x18\xbc\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.HotelReconciliation\x12O\n\x11income_range_view\x18\x8a\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.IncomeRangeView\x12\x45\n\x0ckeyword_view\x18\x15 \x01(\x0b\x32/.google.ads.googleads.v17.resources.KeywordView\x12\x45\n\x0ckeyword_plan\x18  \x01(\x0b\x32/.google.ads.googleads.v17.resources.KeywordPlan\x12V\n\x15keyword_plan_campaign\x18! \x01(\x0b\x32\x37.google.ads.googleads.v17.resources.KeywordPlanCampaign\x12\x66\n\x1dkeyword_plan_campaign_keyword\x18\x8c\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.KeywordPlanCampaignKeyword\x12U\n\x15keyword_plan_ad_group\x18# \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.KeywordPlanAdGroup\x12\x65\n\x1dkeyword_plan_ad_group_keyword\x18\x8d\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.KeywordPlanAdGroupKeyword\x12Y\n\x16keyword_theme_constant\x18\xa3\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.KeywordThemeConstant\x12\x38\n\x05label\x18\x34 \x01(\x0b\x32).google.ads.googleads.v17.resources.Label\x12N\n\x11landing_page_view\x18~ \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.LandingPageView\x12O\n\x11language_constant\x18\x37 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.LanguageConstant\x12G\n\rlocation_view\x18{ \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.LocationView\x12X\n\x16managed_placement_view\x18\x35 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.ManagedPlacementView\x12\x41\n\nmedia_file\x18Z \x01(\x0b\x32-.google.ads.googleads.v17.resources.MediaFile\x12[\n\x17local_services_employee\x18\xdf\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.LocalServicesEmployee\x12t\n$local_services_verification_artifact\x18\xd3\x01 \x01(\x0b\x32\x45.google.ads.googleads.v17.resources.LocalServicesVerificationArtifact\x12\x63\n\x1cmobile_app_category_constant\x18W \x01(\x0b\x32=.google.ads.googleads.v17.resources.MobileAppCategoryConstant\x12X\n\x16mobile_device_constant\x18\x62 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.MobileDeviceConstant\x12{\n(offline_conversion_upload_client_summary\x18\xd8\x01 \x01(\x0b\x32H.google.ads.googleads.v17.resources.OfflineConversionUploadClientSummary\x12\x90\x01\n3offline_conversion_upload_conversion_action_summary\x18\xe4\x01 \x01(\x0b\x32R.google.ads.googleads.v17.resources.OfflineConversionUploadConversionActionSummary\x12V\n\x15offline_user_data_job\x18\x89\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.OfflineUserDataJob\x12m\n!operating_system_version_constant\x18V \x01(\x0b\x32\x42.google.ads.googleads.v17.resources.OperatingSystemVersionConstant\x12\x65\n\x1dpaid_organic_search_term_view\x18\x81\x01 \x01(\x0b\x32=.google.ads.googleads.v17.resources.PaidOrganicSearchTermView\x12T\n\x13qualifying_question\x18\xca\x01 \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.QualifyingQuestion\x12T\n\x14parental_status_view\x18- \x01(\x0b\x32\x36.google.ads.googleads.v17.resources.ParentalStatusView\x12I\n\x0eper_store_view\x18\xc6\x01 \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.PerStoreView\x12_\n\x19product_category_constant\x18\xd0\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.ProductCategoryConstant\x12P\n\x12product_group_view\x18\x36 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.ProductGroupView\x12\x46\n\x0cproduct_link\x18\xc2\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.ProductLink\x12[\n\x17product_link_invitation\x18\xd1\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.resources.ProductLinkInvitation\x12J\n\x0erecommendation\x18\x16 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.Recommendation\x12\x64\n\x1brecommendation_subscription\x18\xdc\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.RecommendationSubscription\x12L\n\x10search_term_view\x18\x44 \x01(\x0b\x32\x32.google.ads.googleads.v17.resources.SearchTermView\x12M\n\x10shared_criterion\x18\x1d \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.SharedCriterion\x12\x41\n\nshared_set\x18\x1b \x01(\x0b\x32-.google.ads.googleads.v17.resources.SharedSet\x12Y\n\x16smart_campaign_setting\x18\xa7\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.SmartCampaignSetting\x12^\n\x19shopping_performance_view\x18u \x01(\x0b\x32;.google.ads.googleads.v17.resources.ShoppingPerformanceView\x12N\n\x10shopping_product\x18\xe2\x01 \x01(\x0b\x32\x33.google.ads.googleads.v17.resources.ShoppingProduct\x12i\n\x1fsmart_campaign_search_term_view\x18\xaa\x01 \x01(\x0b\x32?.google.ads.googleads.v17.resources.SmartCampaignSearchTermView\x12g\n\x1ethird_party_app_analytics_link\x18\x90\x01 \x01(\x0b\x32>.google.ads.googleads.v17.resources.ThirdPartyAppAnalyticsLink\x12\x41\n\ntopic_view\x18, \x01(\x0b\x32-.google.ads.googleads.v17.resources.TopicView\x12`\n\x1atravel_activity_group_view\x18\xc9\x01 \x01(\x0b\x32;.google.ads.googleads.v17.resources.TravelActivityGroupView\x12l\n travel_activity_performance_view\x18\xc8\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.TravelActivityPerformanceView\x12\x43\n\nexperiment\x18\x85\x01 \x01(\x0b\x32..google.ads.googleads.v17.resources.Experiment\x12J\n\x0e\x65xperiment_arm\x18\xb7\x01 \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.ExperimentArm\x12G\n\ruser_interest\x18; \x01(\x0b\x32\x30.google.ads.googleads.v17.resources.UserInterest\x12\x42\n\nlife_event\x18\xa1\x01 \x01(\x0b\x32-.google.ads.googleads.v17.resources.LifeEvent\x12?\n\tuser_list\x18& \x01(\x0b\x32,.google.ads.googleads.v17.resources.UserList\x12Z\n\x17user_list_customer_type\x18\xe1\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.resources.UserListCustomerType\x12Q\n\x12user_location_view\x18\x87\x01 \x01(\x0b\x32\x34.google.ads.googleads.v17.resources.UserLocationView\x12Q\n\x12remarketing_action\x18< \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.RemarketingAction\x12I\n\x0etopic_constant\x18\x1f \x01(\x0b\x32\x31.google.ads.googleads.v17.resources.TopicConstant\x12\x38\n\x05video\x18\' \x01(\x0b\x32).google.ads.googleads.v17.resources.Video\x12\x46\n\x0cwebpage_view\x18\xa2\x01 \x01(\x0b\x32/.google.ads.googleads.v17.resources.WebpageView\x12^\n\x19lead_form_submission_data\x18\xc0\x01 \x01(\x0b\x32:.google.ads.googleads.v17.resources.LeadFormSubmissionData\x12S\n\x13local_services_lead\x18\xd2\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.resources.LocalServicesLead\x12l\n local_services_lead_conversation\x18\xd6\x01 \x01(\x0b\x32\x41.google.ads.googleads.v17.resources.LocalServicesLeadConversation\x12}\n*android_privacy_shared_key_google_ad_group\x18\xd9\x01 \x01(\x0b\x32H.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleAdGroup\x12~\n*android_privacy_shared_key_google_campaign\x18\xda\x01 \x01(\x0b\x32I.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleCampaign\x12\x85\x01\n.android_privacy_shared_key_google_network_type\x18\xdb\x01 \x01(\x0b\x32L.google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleNetworkType\x12\x39\n\x07metrics\x18\x04 \x01(\x0b\x32(.google.ads.googleads.v17.common.Metrics\x12;\n\x08segments\x18\x66 \x01(\x0b\x32).google.ads.googleads.v17.common.Segments\"\xa2\x02\n\x16MutateGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x11mutate_operations\x18\x02 \x03(\x0b\x32\x32.google.ads.googleads.v17.services.MutateOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12j\n\x15response_content_type\x18\x05 \x01(\x0e\x32K.google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType\"\xac\x01\n\x17MutateGoogleAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12^\n\x1amutate_operation_responses\x18\x01 \x03(\x0b\x32:.google.ads.googleads.v17.services.MutateOperationResponse\"\xa4;\n\x0fMutateOperation\x12\x61\n\x1b\x61\x64_group_ad_label_operation\x18\x11 \x01(\x0b\x32:.google.ads.googleads.v17.services.AdGroupAdLabelOperationH\x00\x12V\n\x15\x61\x64_group_ad_operation\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v17.services.AdGroupAdOperationH\x00\x12\\\n\x18\x61\x64_group_asset_operation\x18\x38 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.AdGroupAssetOperationH\x00\x12i\n\x1f\x61\x64_group_bid_modifier_operation\x18\x02 \x01(\x0b\x32>.google.ads.googleads.v17.services.AdGroupBidModifierOperationH\x00\x12y\n\'ad_group_criterion_customizer_operation\x18M \x01(\x0b\x32\x46.google.ads.googleads.v17.services.AdGroupCriterionCustomizerOperationH\x00\x12o\n\"ad_group_criterion_label_operation\x18\x12 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.AdGroupCriterionLabelOperationH\x00\x12\x64\n\x1c\x61\x64_group_criterion_operation\x18\x03 \x01(\x0b\x32<.google.ads.googleads.v17.services.AdGroupCriterionOperationH\x00\x12\x66\n\x1d\x61\x64_group_customizer_operation\x18K \x01(\x0b\x32=.google.ads.googleads.v17.services.AdGroupCustomizerOperationH\x00\x12s\n$ad_group_extension_setting_operation\x18\x13 \x01(\x0b\x32\x43.google.ads.googleads.v17.services.AdGroupExtensionSettingOperationH\x00\x12Z\n\x17\x61\x64_group_feed_operation\x18\x14 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AdGroupFeedOperationH\x00\x12\\\n\x18\x61\x64_group_label_operation\x18\x15 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.AdGroupLabelOperationH\x00\x12Q\n\x12\x61\x64_group_operation\x18\x05 \x01(\x0b\x32\x33.google.ads.googleads.v17.services.AdGroupOperationH\x00\x12\x46\n\x0c\x61\x64_operation\x18\x31 \x01(\x0b\x32..google.ads.googleads.v17.services.AdOperationH\x00\x12Y\n\x16\x61\x64_parameter_operation\x18\x16 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AdParameterOperationH\x00\x12L\n\x0f\x61sset_operation\x18\x17 \x01(\x0b\x32\x31.google.ads.googleads.v17.services.AssetOperationH\x00\x12\x62\n\x1b\x61sset_group_asset_operation\x18\x41 \x01(\x0b\x32;.google.ads.googleads.v17.services.AssetGroupAssetOperationH\x00\x12~\n*asset_group_listing_group_filter_operation\x18N \x01(\x0b\x32H.google.ads.googleads.v17.services.AssetGroupListingGroupFilterOperationH\x00\x12\x64\n\x1c\x61sset_group_signal_operation\x18P \x01(\x0b\x32<.google.ads.googleads.v17.services.AssetGroupSignalOperationH\x00\x12W\n\x15\x61sset_group_operation\x18> \x01(\x0b\x32\x36.google.ads.googleads.v17.services.AssetGroupOperationH\x00\x12^\n\x19\x61sset_set_asset_operation\x18G \x01(\x0b\x32\x39.google.ads.googleads.v17.services.AssetSetAssetOperationH\x00\x12S\n\x13\x61sset_set_operation\x18H \x01(\x0b\x32\x34.google.ads.googleads.v17.services.AssetSetOperationH\x00\x12R\n\x12\x61udience_operation\x18Q \x01(\x0b\x32\x34.google.ads.googleads.v17.services.AudienceOperationH\x00\x12l\n bidding_data_exclusion_operation\x18: \x01(\x0b\x32@.google.ads.googleads.v17.services.BiddingDataExclusionOperationH\x00\x12|\n(bidding_seasonality_adjustment_operation\x18; \x01(\x0b\x32H.google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentOperationH\x00\x12\x61\n\x1a\x62idding_strategy_operation\x18\x06 \x01(\x0b\x32;.google.ads.googleads.v17.services.BiddingStrategyOperationH\x00\x12]\n\x18\x63\x61mpaign_asset_operation\x18\x34 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignAssetOperationH\x00\x12\x64\n\x1c\x63\x61mpaign_asset_set_operation\x18I \x01(\x0b\x32<.google.ads.googleads.v17.services.CampaignAssetSetOperationH\x00\x12j\n\x1f\x63\x61mpaign_bid_modifier_operation\x18\x07 \x01(\x0b\x32?.google.ads.googleads.v17.services.CampaignBidModifierOperationH\x00\x12_\n\x19\x63\x61mpaign_budget_operation\x18\x08 \x01(\x0b\x32:.google.ads.googleads.v17.services.CampaignBudgetOperationH\x00\x12p\n\"campaign_conversion_goal_operation\x18\x43 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.CampaignConversionGoalOperationH\x00\x12\x65\n\x1c\x63\x61mpaign_criterion_operation\x18\r \x01(\x0b\x32=.google.ads.googleads.v17.services.CampaignCriterionOperationH\x00\x12g\n\x1d\x63\x61mpaign_customizer_operation\x18L \x01(\x0b\x32>.google.ads.googleads.v17.services.CampaignCustomizerOperationH\x00\x12]\n\x18\x63\x61mpaign_draft_operation\x18\x18 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignDraftOperationH\x00\x12t\n$campaign_extension_setting_operation\x18\x1a \x01(\x0b\x32\x44.google.ads.googleads.v17.services.CampaignExtensionSettingOperationH\x00\x12[\n\x17\x63\x61mpaign_feed_operation\x18\x1b \x01(\x0b\x32\x38.google.ads.googleads.v17.services.CampaignFeedOperationH\x00\x12]\n\x18\x63\x61mpaign_group_operation\x18\t \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignGroupOperationH\x00\x12]\n\x18\x63\x61mpaign_label_operation\x18\x1c \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CampaignLabelOperationH\x00\x12R\n\x12\x63\x61mpaign_operation\x18\n \x01(\x0b\x32\x34.google.ads.googleads.v17.services.CampaignOperationH\x00\x12\x66\n\x1d\x63\x61mpaign_shared_set_operation\x18\x0b \x01(\x0b\x32=.google.ads.googleads.v17.services.CampaignSharedSetOperationH\x00\x12\x63\n\x1b\x63onversion_action_operation\x18\x0c \x01(\x0b\x32<.google.ads.googleads.v17.services.ConversionActionOperationH\x00\x12t\n$conversion_custom_variable_operation\x18\x37 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.ConversionCustomVariableOperationH\x00\x12}\n)conversion_goal_campaign_config_operation\x18\x45 \x01(\x0b\x32H.google.ads.googleads.v17.services.ConversionGoalCampaignConfigOperationH\x00\x12j\n\x1f\x63onversion_value_rule_operation\x18? \x01(\x0b\x32?.google.ads.googleads.v17.services.ConversionValueRuleOperationH\x00\x12q\n#conversion_value_rule_set_operation\x18@ \x01(\x0b\x32\x42.google.ads.googleads.v17.services.ConversionValueRuleSetOperationH\x00\x12l\n custom_conversion_goal_operation\x18\x44 \x01(\x0b\x32@.google.ads.googleads.v17.services.CustomConversionGoalOperationH\x00\x12]\n\x18\x63ustomer_asset_operation\x18\x39 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CustomerAssetOperationH\x00\x12p\n\"customer_conversion_goal_operation\x18\x42 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.CustomerConversionGoalOperationH\x00\x12g\n\x1d\x63ustomer_customizer_operation\x18O \x01(\x0b\x32>.google.ads.googleads.v17.services.CustomerCustomizerOperationH\x00\x12t\n$customer_extension_setting_operation\x18\x1e \x01(\x0b\x32\x44.google.ads.googleads.v17.services.CustomerExtensionSettingOperationH\x00\x12[\n\x17\x63ustomer_feed_operation\x18\x1f \x01(\x0b\x32\x38.google.ads.googleads.v17.services.CustomerFeedOperationH\x00\x12]\n\x18\x63ustomer_label_operation\x18  \x01(\x0b\x32\x39.google.ads.googleads.v17.services.CustomerLabelOperationH\x00\x12v\n%customer_negative_criterion_operation\x18\" \x01(\x0b\x32\x45.google.ads.googleads.v17.services.CustomerNegativeCriterionOperationH\x00\x12R\n\x12\x63ustomer_operation\x18# \x01(\x0b\x32\x34.google.ads.googleads.v17.services.CustomerOperationH\x00\x12i\n\x1e\x63ustomizer_attribute_operation\x18\x46 \x01(\x0b\x32?.google.ads.googleads.v17.services.CustomizerAttributeOperationH\x00\x12V\n\x14\x65xperiment_operation\x18R \x01(\x0b\x32\x36.google.ads.googleads.v17.services.ExperimentOperationH\x00\x12]\n\x18\x65xperiment_arm_operation\x18S \x01(\x0b\x32\x39.google.ads.googleads.v17.services.ExperimentArmOperationH\x00\x12\x66\n\x1d\x65xtension_feed_item_operation\x18$ \x01(\x0b\x32=.google.ads.googleads.v17.services.ExtensionFeedItemOperationH\x00\x12S\n\x13\x66\x65\x65\x64_item_operation\x18% \x01(\x0b\x32\x34.google.ads.googleads.v17.services.FeedItemOperationH\x00\x12Z\n\x17\x66\x65\x65\x64_item_set_operation\x18\x35 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.FeedItemSetOperationH\x00\x12\x63\n\x1c\x66\x65\x65\x64_item_set_link_operation\x18\x36 \x01(\x0b\x32;.google.ads.googleads.v17.services.FeedItemSetLinkOperationH\x00\x12`\n\x1a\x66\x65\x65\x64_item_target_operation\x18& \x01(\x0b\x32:.google.ads.googleads.v17.services.FeedItemTargetOperationH\x00\x12Y\n\x16\x66\x65\x65\x64_mapping_operation\x18\' \x01(\x0b\x32\x37.google.ads.googleads.v17.services.FeedMappingOperationH\x00\x12J\n\x0e\x66\x65\x65\x64_operation\x18( \x01(\x0b\x32\x30.google.ads.googleads.v17.services.FeedOperationH\x00\x12i\n\x1fkeyword_plan_ad_group_operation\x18, \x01(\x0b\x32>.google.ads.googleads.v17.services.KeywordPlanAdGroupOperationH\x00\x12x\n\'keyword_plan_ad_group_keyword_operation\x18\x32 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordOperationH\x00\x12y\n\'keyword_plan_campaign_keyword_operation\x18\x33 \x01(\x0b\x32\x46.google.ads.googleads.v17.services.KeywordPlanCampaignKeywordOperationH\x00\x12j\n\x1fkeyword_plan_campaign_operation\x18- \x01(\x0b\x32?.google.ads.googleads.v17.services.KeywordPlanCampaignOperationH\x00\x12Y\n\x16keyword_plan_operation\x18\x30 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.KeywordPlanOperationH\x00\x12L\n\x0flabel_operation\x18) \x01(\x0b\x32\x31.google.ads.googleads.v17.services.LabelOperationH\x00\x12w\n%recommendation_subscription_operation\x18V \x01(\x0b\x32\x46.google.ads.googleads.v17.services.RecommendationSubscriptionOperationH\x00\x12\x65\n\x1cremarketing_action_operation\x18+ \x01(\x0b\x32=.google.ads.googleads.v17.services.RemarketingActionOperationH\x00\x12\x61\n\x1ashared_criterion_operation\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v17.services.SharedCriterionOperationH\x00\x12U\n\x14shared_set_operation\x18\x0f \x01(\x0b\x32\x35.google.ads.googleads.v17.services.SharedSetOperationH\x00\x12l\n smart_campaign_setting_operation\x18= \x01(\x0b\x32@.google.ads.googleads.v17.services.SmartCampaignSettingOperationH\x00\x12S\n\x13user_list_operation\x18\x10 \x01(\x0b\x32\x34.google.ads.googleads.v17.services.UserListOperationH\x00\x42\x0b\n\toperation\"\xad;\n\x17MutateOperationResponse\x12\x61\n\x18\x61\x64_group_ad_label_result\x18\x11 \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateAdGroupAdLabelResultH\x00\x12V\n\x12\x61\x64_group_ad_result\x18\x01 \x01(\x0b\x32\x38.google.ads.googleads.v17.services.MutateAdGroupAdResultH\x00\x12\\\n\x15\x61\x64_group_asset_result\x18\x38 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateAdGroupAssetResultH\x00\x12i\n\x1c\x61\x64_group_bid_modifier_result\x18\x02 \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateAdGroupBidModifierResultH\x00\x12y\n$ad_group_criterion_customizer_result\x18M \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateAdGroupCriterionCustomizerResultH\x00\x12o\n\x1f\x61\x64_group_criterion_label_result\x18\x12 \x01(\x0b\x32\x44.google.ads.googleads.v17.services.MutateAdGroupCriterionLabelResultH\x00\x12\x64\n\x19\x61\x64_group_criterion_result\x18\x03 \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateAdGroupCriterionResultH\x00\x12\x66\n\x1a\x61\x64_group_customizer_result\x18K \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateAdGroupCustomizerResultH\x00\x12s\n!ad_group_extension_setting_result\x18\x13 \x01(\x0b\x32\x46.google.ads.googleads.v17.services.MutateAdGroupExtensionSettingResultH\x00\x12Z\n\x14\x61\x64_group_feed_result\x18\x14 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateAdGroupFeedResultH\x00\x12\\\n\x15\x61\x64_group_label_result\x18\x15 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateAdGroupLabelResultH\x00\x12Q\n\x0f\x61\x64_group_result\x18\x05 \x01(\x0b\x32\x36.google.ads.googleads.v17.services.MutateAdGroupResultH\x00\x12Y\n\x13\x61\x64_parameter_result\x18\x16 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateAdParameterResultH\x00\x12\x46\n\tad_result\x18\x31 \x01(\x0b\x32\x31.google.ads.googleads.v17.services.MutateAdResultH\x00\x12L\n\x0c\x61sset_result\x18\x17 \x01(\x0b\x32\x34.google.ads.googleads.v17.services.MutateAssetResultH\x00\x12\x62\n\x18\x61sset_group_asset_result\x18\x41 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateAssetGroupAssetResultH\x00\x12~\n\'asset_group_listing_group_filter_result\x18N \x01(\x0b\x32K.google.ads.googleads.v17.services.MutateAssetGroupListingGroupFilterResultH\x00\x12\x64\n\x19\x61sset_group_signal_result\x18O \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateAssetGroupSignalResultH\x00\x12W\n\x12\x61sset_group_result\x18> \x01(\x0b\x32\x39.google.ads.googleads.v17.services.MutateAssetGroupResultH\x00\x12^\n\x16\x61sset_set_asset_result\x18G \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateAssetSetAssetResultH\x00\x12S\n\x10\x61sset_set_result\x18H \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateAssetSetResultH\x00\x12R\n\x0f\x61udience_result\x18P \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateAudienceResultH\x00\x12m\n\x1d\x62idding_data_exclusion_result\x18: \x01(\x0b\x32\x44.google.ads.googleads.v17.services.MutateBiddingDataExclusionsResultH\x00\x12}\n%bidding_seasonality_adjustment_result\x18; \x01(\x0b\x32L.google.ads.googleads.v17.services.MutateBiddingSeasonalityAdjustmentsResultH\x00\x12\x61\n\x17\x62idding_strategy_result\x18\x06 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateBiddingStrategyResultH\x00\x12]\n\x15\x63\x61mpaign_asset_result\x18\x34 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignAssetResultH\x00\x12\x64\n\x19\x63\x61mpaign_asset_set_result\x18I \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateCampaignAssetSetResultH\x00\x12j\n\x1c\x63\x61mpaign_bid_modifier_result\x18\x07 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateCampaignBidModifierResultH\x00\x12_\n\x16\x63\x61mpaign_budget_result\x18\x08 \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateCampaignBudgetResultH\x00\x12p\n\x1f\x63\x61mpaign_conversion_goal_result\x18\x43 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateCampaignConversionGoalResultH\x00\x12\x65\n\x19\x63\x61mpaign_criterion_result\x18\r \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateCampaignCriterionResultH\x00\x12g\n\x1a\x63\x61mpaign_customizer_result\x18L \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateCampaignCustomizerResultH\x00\x12]\n\x15\x63\x61mpaign_draft_result\x18\x18 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignDraftResultH\x00\x12t\n!campaign_extension_setting_result\x18\x1a \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCampaignExtensionSettingResultH\x00\x12[\n\x14\x63\x61mpaign_feed_result\x18\x1b \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateCampaignFeedResultH\x00\x12]\n\x15\x63\x61mpaign_group_result\x18\t \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignGroupResultH\x00\x12]\n\x15\x63\x61mpaign_label_result\x18\x1c \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCampaignLabelResultH\x00\x12R\n\x0f\x63\x61mpaign_result\x18\n \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateCampaignResultH\x00\x12\x66\n\x1a\x63\x61mpaign_shared_set_result\x18\x0b \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateCampaignSharedSetResultH\x00\x12\x63\n\x18\x63onversion_action_result\x18\x0c \x01(\x0b\x32?.google.ads.googleads.v17.services.MutateConversionActionResultH\x00\x12t\n!conversion_custom_variable_result\x18\x37 \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateConversionCustomVariableResultH\x00\x12}\n&conversion_goal_campaign_config_result\x18\x45 \x01(\x0b\x32K.google.ads.googleads.v17.services.MutateConversionGoalCampaignConfigResultH\x00\x12j\n\x1c\x63onversion_value_rule_result\x18? \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateConversionValueRuleResultH\x00\x12q\n conversion_value_rule_set_result\x18@ \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateConversionValueRuleSetResultH\x00\x12l\n\x1d\x63ustom_conversion_goal_result\x18\x44 \x01(\x0b\x32\x43.google.ads.googleads.v17.services.MutateCustomConversionGoalResultH\x00\x12]\n\x15\x63ustomer_asset_result\x18\x39 \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCustomerAssetResultH\x00\x12p\n\x1f\x63ustomer_conversion_goal_result\x18\x42 \x01(\x0b\x32\x45.google.ads.googleads.v17.services.MutateCustomerConversionGoalResultH\x00\x12g\n\x1a\x63ustomer_customizer_result\x18J \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateCustomerCustomizerResultH\x00\x12t\n!customer_extension_setting_result\x18\x1e \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCustomerExtensionSettingResultH\x00\x12[\n\x14\x63ustomer_feed_result\x18\x1f \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateCustomerFeedResultH\x00\x12]\n\x15\x63ustomer_label_result\x18  \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateCustomerLabelResultH\x00\x12u\n\"customer_negative_criterion_result\x18\" \x01(\x0b\x32G.google.ads.googleads.v17.services.MutateCustomerNegativeCriteriaResultH\x00\x12R\n\x0f\x63ustomer_result\x18# \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateCustomerResultH\x00\x12i\n\x1b\x63ustomizer_attribute_result\x18\x46 \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateCustomizerAttributeResultH\x00\x12V\n\x11\x65xperiment_result\x18Q \x01(\x0b\x32\x39.google.ads.googleads.v17.services.MutateExperimentResultH\x00\x12]\n\x15\x65xperiment_arm_result\x18R \x01(\x0b\x32<.google.ads.googleads.v17.services.MutateExperimentArmResultH\x00\x12\x66\n\x1a\x65xtension_feed_item_result\x18$ \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateExtensionFeedItemResultH\x00\x12S\n\x10\x66\x65\x65\x64_item_result\x18% \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateFeedItemResultH\x00\x12Z\n\x14\x66\x65\x65\x64_item_set_result\x18\x35 \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateFeedItemSetResultH\x00\x12\x63\n\x19\x66\x65\x65\x64_item_set_link_result\x18\x36 \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateFeedItemSetLinkResultH\x00\x12`\n\x17\x66\x65\x65\x64_item_target_result\x18& \x01(\x0b\x32=.google.ads.googleads.v17.services.MutateFeedItemTargetResultH\x00\x12Y\n\x13\x66\x65\x65\x64_mapping_result\x18\' \x01(\x0b\x32:.google.ads.googleads.v17.services.MutateFeedMappingResultH\x00\x12J\n\x0b\x66\x65\x65\x64_result\x18( \x01(\x0b\x32\x33.google.ads.googleads.v17.services.MutateFeedResultH\x00\x12i\n\x1ckeyword_plan_ad_group_result\x18, \x01(\x0b\x32\x41.google.ads.googleads.v17.services.MutateKeywordPlanAdGroupResultH\x00\x12j\n\x1ckeyword_plan_campaign_result\x18- \x01(\x0b\x32\x42.google.ads.googleads.v17.services.MutateKeywordPlanCampaignResultH\x00\x12x\n$keyword_plan_ad_group_keyword_result\x18\x32 \x01(\x0b\x32H.google.ads.googleads.v17.services.MutateKeywordPlanAdGroupKeywordResultH\x00\x12y\n$keyword_plan_campaign_keyword_result\x18\x33 \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateKeywordPlanCampaignKeywordResultH\x00\x12Z\n\x13keyword_plan_result\x18\x30 \x01(\x0b\x32;.google.ads.googleads.v17.services.MutateKeywordPlansResultH\x00\x12L\n\x0clabel_result\x18) \x01(\x0b\x32\x34.google.ads.googleads.v17.services.MutateLabelResultH\x00\x12w\n\"recommendation_subscription_result\x18U \x01(\x0b\x32I.google.ads.googleads.v17.services.MutateRecommendationSubscriptionResultH\x00\x12\x65\n\x19remarketing_action_result\x18+ \x01(\x0b\x32@.google.ads.googleads.v17.services.MutateRemarketingActionResultH\x00\x12\x61\n\x17shared_criterion_result\x18\x0e \x01(\x0b\x32>.google.ads.googleads.v17.services.MutateSharedCriterionResultH\x00\x12U\n\x11shared_set_result\x18\x0f \x01(\x0b\x32\x38.google.ads.googleads.v17.services.MutateSharedSetResultH\x00\x12l\n\x1dsmart_campaign_setting_result\x18= \x01(\x0b\x32\x43.google.ads.googleads.v17.services.MutateSmartCampaignSettingResultH\x00\x12S\n\x10user_list_result\x18\x10 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.MutateUserListResultH\x00\x42\n\n\x08response2\xf5\x05\n\x10GoogleAdsService\x12\xcf\x01\n\x06Search\x12\x39.google.ads.googleads.v17.services.SearchGoogleAdsRequest\x1a:.google.ads.googleads.v17.services.SearchGoogleAdsResponse\"N\xda\x41\x11\x63ustomer_id,query\x82\xd3\xe4\x93\x02\x34\"//v17/customers/{customer_id=*}/googleAds:search:\x01*\x12\xe9\x01\n\x0cSearchStream\x12?.google.ads.googleads.v17.services.SearchGoogleAdsStreamRequest\x1a@.google.ads.googleads.v17.services.SearchGoogleAdsStreamResponse\"T\xda\x41\x11\x63ustomer_id,query\x82\xd3\xe4\x93\x02:\"5/v17/customers/{customer_id=*}/googleAds:searchStream:\x01*0\x01\x12\xdb\x01\n\x06Mutate\x12\x39.google.ads.googleads.v17.services.MutateGoogleAdsRequest\x1a:.google.ads.googleads.v17.services.MutateGoogleAdsResponse\"Z\xda\x41\x1d\x63ustomer_id,mutate_operations\x82\xd3\xe4\x93\x02\x34\"//v17/customers/{customer_id=*}/googleAds:mutate:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x81\x02\n%com.google.ads.googleads.v17.servicesB\x15GoogleAdsServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
 
 pool = Google::Protobuf::DescriptorPool.generated_pool
 
@@ -420,6 +421,7 @@
     ["google.ads.googleads.v17.resources.MobileAppCategoryConstant", "google/ads/googleads/v17/resources/mobile_app_category_constant.proto"],
     ["google.ads.googleads.v17.resources.MobileDeviceConstant", "google/ads/googleads/v17/resources/mobile_device_constant.proto"],
     ["google.ads.googleads.v17.resources.OfflineConversionUploadClientSummary", "google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto"],
+    ["google.ads.googleads.v17.resources.OfflineConversionUploadConversionActionSummary", "google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto"],
     ["google.ads.googleads.v17.resources.OfflineUserDataJob", "google/ads/googleads/v17/resources/offline_user_data_job.proto"],
     ["google.ads.googleads.v17.resources.OperatingSystemVersionConstant", "google/ads/googleads/v17/resources/operating_system_version_constant.proto"],
     ["google.ads.googleads.v17.resources.PaidOrganicSearchTermView", "google/ads/googleads/v17/resources/paid_organic_search_term_view.proto"],
diff --git a/lib/google/ads/google_ads/v17/services/shareable_preview_service.rb b/lib/google/ads/google_ads/v17/services/shareable_preview_service.rb
new file mode 100644
index 00000000..08a57e31
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/services/shareable_preview_service.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
+
+require "gapic/common"
+require "gapic/config"
+require "gapic/config/method"
+
+require "google/ads/google_ads/version"
+
+require "google/ads/google_ads/v17/services/shareable_preview_service/credentials"
+require "google/ads/google_ads/v17/services/shareable_preview_service/client"
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Services
+          ##
+          # Service to generate Shareable Previews.
+          #
+          # @example Load this service and instantiate a gRPC client
+          #
+          #     require "google/ads/google_ads/v17/services/shareable_preview_service"
+          #     client = ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.new
+          #
+          module ShareablePreviewService
+          end
+        end
+      end
+    end
+  end
+end
+
+helper_path = ::File.join __dir__, "shareable_preview_service", "helpers.rb"
+require "google/ads/google_ads/v17/services/shareable_preview_service/helpers" if ::File.file? helper_path
diff --git a/lib/google/ads/google_ads/v17/services/shareable_preview_service/client.rb b/lib/google/ads/google_ads/v17/services/shareable_preview_service/client.rb
new file mode 100644
index 00000000..e2aed492
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/services/shareable_preview_service/client.rb
@@ -0,0 +1,428 @@
+# frozen_string_literal: true
+
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
+
+# require "google/ads/google_ads/error"
+require "google/ads/google_ads/v17/services/shareable_preview_service_pb"
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Services
+          module ShareablePreviewService
+            ##
+            # Client for the ShareablePreviewService service.
+            #
+            # Service to generate Shareable Previews.
+            #
+            class Client
+              # @private
+              API_VERSION = ""
+
+              # @private
+              DEFAULT_ENDPOINT_TEMPLATE = "googleads.$UNIVERSE_DOMAIN$"
+
+              # @private
+              attr_reader :shareable_preview_service_stub
+
+              ##
+              # Configure the ShareablePreviewService Client class.
+              #
+              # See {::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client::Configuration}
+              # for a description of the configuration fields.
+              #
+              # @example
+              #
+              #   # Modify the configuration for all ShareablePreviewService clients
+              #   ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.configure do |config|
+              #     config.timeout = 10.0
+              #   end
+              #
+              # @yield [config] Configure the Client client.
+              # @yieldparam config [Client::Configuration]
+              #
+              # @return [Client::Configuration]
+              #
+              def self.configure
+                @configure ||= begin
+                  default_config = Client::Configuration.new
+
+                  default_config.timeout = 14_400.0
+                  default_config.retry_policy = {
+                    initial_delay: 5.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 4]
+                  }
+
+                  default_config
+                end
+                yield @configure if block_given?
+                @configure
+              end
+
+              ##
+              # Configure the ShareablePreviewService Client instance.
+              #
+              # The configuration is set to the derived mode, meaning that values can be changed,
+              # but structural changes (adding new fields, etc.) are not allowed. Structural changes
+              # should be made on {Client.configure}.
+              #
+              # See {::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client::Configuration}
+              # for a description of the configuration fields.
+              #
+              # @yield [config] Configure the Client client.
+              # @yieldparam config [Client::Configuration]
+              #
+              # @return [Client::Configuration]
+              #
+              def configure
+                yield @config if block_given?
+                @config
+              end
+
+              ##
+              # The effective universe domain
+              #
+              # @return [String]
+              #
+              def universe_domain
+                @shareable_preview_service_stub.universe_domain
+              end
+
+              ##
+              # Create a new ShareablePreviewService client object.
+              #
+              # @example
+              #
+              #   # Create a client using the default configuration
+              #   client = ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.new
+              #
+              #   # Create a client using a custom configuration
+              #   client = ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.new do |config|
+              #     config.timeout = 10.0
+              #   end
+              #
+              # @yield [config] Configure the ShareablePreviewService client.
+              # @yieldparam config [Client::Configuration]
+              #
+              def initialize
+                # These require statements are intentionally placed here to initialize
+                # the gRPC module only when it's required.
+                # See https://github.com/googleapis/toolkit/issues/446
+                require "gapic/grpc"
+                require "google/ads/google_ads/v17/services/shareable_preview_service_services_pb"
+
+                # Create the configuration object
+                @config = Configuration.new Client.configure
+
+                # Yield the configuration if needed
+                yield @config if block_given?
+
+                # Create credentials
+                credentials = @config.credentials
+                # Use self-signed JWT if the endpoint is unchanged from default,
+                # but only if the default endpoint does not have a region prefix.
+                enable_self_signed_jwt = @config.endpoint.nil? ||
+                                         (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
+                                         !@config.endpoint.split(".").first.include?("-"))
+                credentials ||= Credentials.default scope: @config.scope,
+                                                    enable_self_signed_jwt: enable_self_signed_jwt
+                if credentials.is_a?(::String) || credentials.is_a?(::Hash)
+                  credentials = Credentials.new credentials, scope: @config.scope
+                end
+                @quota_project_id = @config.quota_project
+                @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
+
+                @shareable_preview_service_stub = ::Gapic::ServiceStub.new(
+                  ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Stub,
+                  credentials: credentials,
+                  endpoint: @config.endpoint,
+                  endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
+                  universe_domain: @config.universe_domain,
+                  channel_args: @config.channel_args,
+                  interceptors: @config.interceptors,
+                  channel_pool_config: @config.channel_pool
+                )
+              end
+
+              # Service calls
+
+              ##
+              # Returns the requested Shareable Preview.
+              #
+              # @overload generate_shareable_previews(request, options = nil)
+              #   Pass arguments to `generate_shareable_previews` via a request object, either of type
+              #   {::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsRequest} or an equivalent Hash.
+              #
+              #   @param request [::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsRequest, ::Hash]
+              #     A request object representing the call parameters. Required. To specify no
+              #     parameters, or to keep all the default parameter values, pass an empty Hash.
+              #   @param options [::Gapic::CallOptions, ::Hash]
+              #     Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
+              #
+              # @overload generate_shareable_previews(customer_id: nil, shareable_previews: nil)
+              #   Pass arguments to `generate_shareable_previews` via keyword arguments. Note that at
+              #   least one keyword argument is required. To specify no parameters, or to keep all
+              #   the default parameter values, pass an empty Hash as a request object (see above).
+              #
+              #   @param customer_id [::String]
+              #     Required. The customer creating the shareable previews request.
+              #   @param shareable_previews [::Array<::Google::Ads::GoogleAds::V17::Services::ShareablePreview, ::Hash>]
+              #     Required. The list of shareable previews to generate.
+              #
+              # @yield [response, operation] Access the result along with the RPC operation
+              # @yieldparam response [::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsResponse]
+              # @yieldparam operation [::GRPC::ActiveCall::Operation]
+              #
+              # @return [::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsResponse]
+              #
+              # @raise [Google::Ads::GoogleAds::Error] if the RPC is aborted.
+              #
+              # @example Basic example
+              #   require "google/ads/google_ads/v17/services"
+              #
+              #   # Create a client object. The client can be reused for multiple calls.
+              #   client = Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.new
+              #
+              #   # Create a request. To set request fields, pass in keyword arguments.
+              #   request = Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsRequest.new
+              #
+              #   # Call the generate_shareable_previews method.
+              #   result = client.generate_shareable_previews request
+              #
+              #   # The returned object is of type Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsResponse.
+              #   p result
+              #
+              def generate_shareable_previews request, options = nil
+                raise ::ArgumentError, "request must be provided" if request.nil?
+
+                request = ::Gapic::Protobuf.coerce request,
+                                                   to: ::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsRequest
+
+                # Converts hash and nil to an options object
+                options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
+
+                # Customize the options with defaults
+                metadata = @config.rpcs.generate_shareable_previews.metadata.to_h
+
+                # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
+                metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
+                  lib_name: @config.lib_name, lib_version: @config.lib_version,
+                  gapic_version: ::Google::Ads::GoogleAds::VERSION
+                metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
+                metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
+
+                header_params = {}
+                if request.customer_id
+                  header_params["customer_id"] = request.customer_id
+                end
+
+                request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
+                metadata[:"x-goog-request-params"] ||= request_params_header
+
+                options.apply_defaults timeout:      @config.rpcs.generate_shareable_previews.timeout,
+                                       metadata:     metadata,
+                                       retry_policy: @config.rpcs.generate_shareable_previews.retry_policy
+
+                options.apply_defaults timeout:      @config.timeout,
+                                       metadata:     @config.metadata,
+                                       retry_policy: @config.retry_policy
+
+                @shareable_preview_service_stub.call_rpc :generate_shareable_previews, request,
+                                                         options: options do |response, operation|
+                  yield response, operation if block_given?
+                  return response
+                end
+                # rescue GRPC::BadStatus => grpc_error
+                #  raise Google::Ads::GoogleAds::Error.new grpc_error.message
+              end
+
+              ##
+              # Configuration class for the ShareablePreviewService API.
+              #
+              # This class represents the configuration for ShareablePreviewService,
+              # providing control over timeouts, retry behavior, logging, transport
+              # parameters, and other low-level controls. Certain parameters can also be
+              # applied individually to specific RPCs. See
+              # {::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client::Configuration::Rpcs}
+              # for a list of RPCs that can be configured independently.
+              #
+              # Configuration can be applied globally to all clients, or to a single client
+              # on construction.
+              #
+              # @example
+              #
+              #   # Modify the global config, setting the timeout for
+              #   # generate_shareable_previews to 20 seconds,
+              #   # and all remaining timeouts to 10 seconds.
+              #   ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.configure do |config|
+              #     config.timeout = 10.0
+              #     config.rpcs.generate_shareable_previews.timeout = 20.0
+              #   end
+              #
+              #   # Apply the above configuration only to a new client.
+              #   client = ::Google::Ads::GoogleAds::V17::Services::ShareablePreviewService::Client.new do |config|
+              #     config.timeout = 10.0
+              #     config.rpcs.generate_shareable_previews.timeout = 20.0
+              #   end
+              #
+              # @!attribute [rw] endpoint
+              #   A custom service endpoint, as a hostname or hostname:port. The default is
+              #   nil, indicating to use the default endpoint in the current universe domain.
+              #   @return [::String,nil]
+              # @!attribute [rw] credentials
+              #   Credentials to send with calls. You may provide any of the following types:
+              #    *  (`String`) The path to a service account key file in JSON format
+              #    *  (`Hash`) A service account key as a Hash
+              #    *  (`Google::Auth::Credentials`) A googleauth credentials object
+              #       (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
+              #    *  (`Signet::OAuth2::Client`) A signet oauth2 client object
+              #       (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
+              #    *  (`GRPC::Core::Channel`) a gRPC channel with included credentials
+              #    *  (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
+              #    *  (`nil`) indicating no credentials
+              #   @return [::Object]
+              # @!attribute [rw] scope
+              #   The OAuth scopes
+              #   @return [::Array<::String>]
+              # @!attribute [rw] lib_name
+              #   The library name as recorded in instrumentation and logging
+              #   @return [::String]
+              # @!attribute [rw] lib_version
+              #   The library version as recorded in instrumentation and logging
+              #   @return [::String]
+              # @!attribute [rw] channel_args
+              #   Extra parameters passed to the gRPC channel. Note: this is ignored if a
+              #   `GRPC::Core::Channel` object is provided as the credential.
+              #   @return [::Hash]
+              # @!attribute [rw] interceptors
+              #   An array of interceptors that are run before calls are executed.
+              #   @return [::Array<::GRPC::ClientInterceptor>]
+              # @!attribute [rw] timeout
+              #   The call timeout in seconds.
+              #   @return [::Numeric]
+              # @!attribute [rw] metadata
+              #   Additional gRPC headers to be sent with the call.
+              #   @return [::Hash{::Symbol=>::String}]
+              # @!attribute [rw] retry_policy
+              #   The retry policy. The value is a hash with the following keys:
+              #    *  `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
+              #    *  `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
+              #    *  `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
+              #    *  `:retry_codes` (*type:* `Array<String>`) - The error codes that should
+              #       trigger a retry.
+              #   @return [::Hash]
+              # @!attribute [rw] quota_project
+              #   A separate project against which to charge quota.
+              #   @return [::String]
+              # @!attribute [rw] universe_domain
+              #   The universe domain within which to make requests. This determines the
+              #   default endpoint URL. The default value of nil uses the environment
+              #   universe (usually the default "googleapis.com" universe).
+              #   @return [::String,nil]
+              #
+              class Configuration
+                extend ::Gapic::Config
+
+                # @private
+                # The endpoint specific to the default "googleapis.com" universe. Deprecated.
+                DEFAULT_ENDPOINT = "googleads.googleapis.com"
+
+                config_attr :endpoint,      nil, ::String, nil
+                config_attr :credentials,   nil do |value|
+                  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client,
+                             nil]
+                  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
+                  allowed.any? { |klass| klass === value }
+                end
+                config_attr :scope,         nil, ::String, ::Array, nil
+                config_attr :lib_name,      nil, ::String, nil
+                config_attr :lib_version,   nil, ::String, nil
+                config_attr(:channel_args,  { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil)
+                config_attr :interceptors,  nil, ::Array, nil
+                config_attr :timeout,       nil, ::Numeric, nil
+                config_attr :metadata,      nil, ::Hash, nil
+                config_attr :retry_policy,  nil, ::Hash, ::Proc, nil
+                config_attr :quota_project, nil, ::String, nil
+                config_attr :universe_domain, nil, ::String, nil
+
+                # @private
+                def initialize parent_config = nil
+                  @parent_config = parent_config unless parent_config.nil?
+
+                  yield self if block_given?
+                end
+
+                ##
+                # Configurations for individual RPCs
+                # @return [Rpcs]
+                #
+                def rpcs
+                  @rpcs ||= begin
+                    parent_rpcs = nil
+                    parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
+                    Rpcs.new parent_rpcs
+                  end
+                end
+
+                ##
+                # Configuration for the channel pool
+                # @return [::Gapic::ServiceStub::ChannelPool::Configuration]
+                #
+                def channel_pool
+                  @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new
+                end
+
+                ##
+                # Configuration RPC class for the ShareablePreviewService API.
+                #
+                # Includes fields providing the configuration for each RPC in this service.
+                # Each configuration object is of type `Gapic::Config::Method` and includes
+                # the following configuration fields:
+                #
+                #  *  `timeout` (*type:* `Numeric`) - The call timeout in seconds
+                #  *  `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
+                #  *  `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
+                #     include the following keys:
+                #      *  `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
+                #      *  `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
+                #      *  `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
+                #      *  `:retry_codes` (*type:* `Array<String>`) - The error codes that should
+                #         trigger a retry.
+                #
+                class Rpcs
+                  ##
+                  # RPC-specific configuration for `generate_shareable_previews`
+                  # @return [::Gapic::Config::Method]
+                  #
+                  attr_reader :generate_shareable_previews
+
+                  # @private
+                  def initialize parent_rpcs = nil
+                    generate_shareable_previews_config = parent_rpcs.generate_shareable_previews if parent_rpcs.respond_to? :generate_shareable_previews
+                    @generate_shareable_previews = ::Gapic::Config::Method.new generate_shareable_previews_config
+
+                    yield self if block_given?
+                  end
+                end
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/services/shareable_preview_service/credentials.rb b/lib/google/ads/google_ads/v17/services/shareable_preview_service/credentials.rb
new file mode 100644
index 00000000..de2c72b9
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/services/shareable_preview_service/credentials.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
+
+require "googleauth"
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Services
+          module ShareablePreviewService
+            # Credentials for the ShareablePreviewService API.
+            class Credentials < ::Google::Auth::Credentials
+              self.scope = [
+                "https://www.googleapis.com/auth/adwords"
+              ]
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/services/shareable_preview_service_pb.rb b/lib/google/ads/google_ads/v17/services/shareable_preview_service_pb.rb
new file mode 100644
index 00000000..3ccd0d7e
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/services/shareable_preview_service_pb.rb
@@ -0,0 +1,55 @@
+# frozen_string_literal: true
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/ads/googleads/v17/services/shareable_preview_service.proto
+
+require 'google/protobuf'
+
+require 'google/api/annotations_pb'
+require 'google/api/client_pb'
+require 'google/api/field_behavior_pb'
+require 'google/rpc/status_pb'
+
+
+descriptor_data = "\nAgoogle/ads/googleads/v17/services/shareable_preview_service.proto\x12!google.ads.googleads.v17.services\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x17google/rpc/status.proto\"\x92\x01\n GenerateShareablePreviewsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12T\n\x12shareable_previews\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v17.services.ShareablePreviewB\x03\xe0\x41\x02\"p\n\x10ShareablePreview\x12\\\n\x16\x61sset_group_identifier\x18\x01 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AssetGroupIdentifierB\x03\xe0\x41\x02\"3\n\x14\x41ssetGroupIdentifier\x12\x1b\n\x0e\x61sset_group_id\x18\x01 \x01(\x03\x42\x03\xe0\x41\x02\"r\n!GenerateShareablePreviewsResponse\x12M\n\tresponses\x18\x01 \x03(\x0b\x32:.google.ads.googleads.v17.services.ShareablePreviewOrError\"\xad\x02\n\x17ShareablePreviewOrError\x12W\n\x16\x61sset_group_identifier\x18\x03 \x01(\x0b\x32\x37.google.ads.googleads.v17.services.AssetGroupIdentifier\x12]\n\x18shareable_preview_result\x18\x01 \x01(\x0b\x32\x39.google.ads.googleads.v17.services.ShareablePreviewResultH\x00\x12\x33\n\x15partial_failure_error\x18\x02 \x01(\x0b\x32\x12.google.rpc.StatusH\x00\x42%\n#generate_shareable_preview_response\"U\n\x16ShareablePreviewResult\x12\x1d\n\x15shareable_preview_url\x18\x01 \x01(\t\x12\x1c\n\x14\x65xpiration_date_time\x18\x02 \x01(\t2\xef\x02\n\x17ShareablePreviewService\x12\x8c\x02\n\x19GenerateShareablePreviews\x12\x43.google.ads.googleads.v17.services.GenerateShareablePreviewsRequest\x1a\x44.google.ads.googleads.v17.services.GenerateShareablePreviewsResponse\"d\xda\x41\x1e\x63ustomer_id,shareable_previews\x82\xd3\xe4\x93\x02=\"8/v17/customers/{customer_id=*}:generateShareablePreviews:\x01*\x1a\x45\xca\x41\x18googleads.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/adwordsB\x88\x02\n%com.google.ads.googleads.v17.servicesB\x1cShareablePreviewServiceProtoP\x01ZIgoogle.golang.org/genproto/googleapis/ads/googleads/v17/services;services\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V17.Services\xca\x02!Google\\Ads\\GoogleAds\\V17\\Services\xea\x02%Google::Ads::GoogleAds::V17::Servicesb\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+
+begin
+  pool.add_serialized_file(descriptor_data)
+rescue TypeError
+  # Compatibility code: will be removed in the next major version.
+  require 'google/protobuf/descriptor_pb'
+  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
+  parsed.clear_dependency
+  serialized = parsed.class.encode(parsed)
+  file = pool.add_serialized_file(serialized)
+  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
+  imports = [
+    ["google.rpc.Status", "google/rpc/status.proto"],
+  ]
+  imports.each do |type_name, expected_filename|
+    import_file = pool.lookup(type_name).file_descriptor
+    if import_file.name != expected_filename
+      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
+    end
+  end
+  warn "Each proto file must use a consistent fully-qualified name."
+  warn "This will become an error in the next major version."
+end
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Services
+          GenerateShareablePreviewsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateShareablePreviewsRequest").msgclass
+          ShareablePreview = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ShareablePreview").msgclass
+          AssetGroupIdentifier = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AssetGroupIdentifier").msgclass
+          GenerateShareablePreviewsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateShareablePreviewsResponse").msgclass
+          ShareablePreviewOrError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ShareablePreviewOrError").msgclass
+          ShareablePreviewResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ShareablePreviewResult").msgclass
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/v17/services/shareable_preview_service_services_pb.rb b/lib/google/ads/google_ads/v17/services/shareable_preview_service_services_pb.rb
new file mode 100644
index 00000000..ebcb534f
--- /dev/null
+++ b/lib/google/ads/google_ads/v17/services/shareable_preview_service_services_pb.rb
@@ -0,0 +1,47 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# Source: google/ads/googleads/v17/services/shareable_preview_service.proto for package 'Google.Ads.GoogleAds.V17.Services'
+# Original file comments:
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'grpc'
+require 'google/ads/google_ads/v17/services/shareable_preview_service_pb'
+
+module Google
+  module Ads
+    module GoogleAds
+      module V17
+        module Services
+          module ShareablePreviewService
+            # Service to generate Shareable Previews.
+            class Service
+
+              include ::GRPC::GenericService
+
+              self.marshal_class_method = :encode
+              self.unmarshal_class_method = :decode
+              self.service_name = 'google.ads.googleads.v17.services.ShareablePreviewService'
+
+              # Returns the requested Shareable Preview.
+              rpc :GenerateShareablePreviews, ::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsRequest, ::Google::Ads::GoogleAds::V17::Services::GenerateShareablePreviewsResponse
+            end
+
+            Stub = Service.rpc_stub_class
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/google/ads/google_ads/version.rb b/lib/google/ads/google_ads/version.rb
index ebbab1ee..8d5988bf 100644
--- a/lib/google/ads/google_ads/version.rb
+++ b/lib/google/ads/google_ads/version.rb
@@ -20,7 +20,7 @@ module Google
   module Ads
     module GoogleAds
       CLIENT_LIB_NAME = 'gccl'.freeze
-      CLIENT_LIB_VERSION = '29.0.0'.freeze
+      CLIENT_LIB_VERSION = '30.0.0'.freeze
       VERSION = CLIENT_LIB_VERSION
     end
   end