google-ads-googleads 29.0.0 → 30.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/google/ads/google_ads/factories/v15/operations.rb +252 -252
  4. data/lib/google/ads/google_ads/factories/v16/operations.rb +260 -260
  5. data/lib/google/ads/google_ads/factories/v17/enums.rb +40 -0
  6. data/lib/google/ads/google_ads/factories/v17/operations.rb +260 -260
  7. data/lib/google/ads/google_ads/factories/v17/resources.rb +169 -0
  8. data/lib/google/ads/google_ads/factories/v17/services.rb +26 -2
  9. data/lib/google/ads/google_ads/v17/common/bidding_pb.rb +6 -1
  10. data/lib/google/ads/google_ads/v17/common/segments_pb.rb +2 -1
  11. data/lib/google/ads/google_ads/v17/enums/ad_format_type_pb.rb +45 -0
  12. data/lib/google/ads/google_ads/v17/enums/bidding_strategy_type_pb.rb +1 -1
  13. data/lib/google/ads/google_ads/v17/enums/change_status_resource_type_pb.rb +1 -1
  14. data/lib/google/ads/google_ads/v17/enums/fixed_cpm_goal_pb.rb +45 -0
  15. data/lib/google/ads/google_ads/v17/enums/fixed_cpm_target_frequency_time_unit_pb.rb +45 -0
  16. data/lib/google/ads/google_ads/v17/enums/user_list_customer_type_category_pb.rb +1 -1
  17. data/lib/google/ads/google_ads/v17/errors/automatically_created_asset_removal_error_pb.rb +45 -0
  18. data/lib/google/ads/google_ads/v17/errors/errors_pb.rb +3 -1
  19. data/lib/google/ads/google_ads/v17/errors/shareable_preview_error_pb.rb +45 -0
  20. data/lib/google/ads/google_ads/v17/resources/ad_group_pb.rb +1 -1
  21. data/lib/google/ads/google_ads/v17/resources/campaign_pb.rb +3 -1
  22. data/lib/google/ads/google_ads/v17/resources/change_status_pb.rb +1 -1
  23. data/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_client_summary_pb.rb +1 -1
  24. data/lib/google/ads/google_ads/v17/resources/offline_conversion_upload_conversion_action_summary_pb.rb +51 -0
  25. data/lib/google/ads/google_ads/v17/services/ad_group_ad_service/client.rb +109 -0
  26. data/lib/google/ads/google_ads/v17/services/ad_group_ad_service/paths.rb +17 -0
  27. data/lib/google/ads/google_ads/v17/services/ad_group_ad_service_pb.rb +5 -1
  28. data/lib/google/ads/google_ads/v17/services/ad_group_ad_service_services_pb.rb +13 -0
  29. data/lib/google/ads/google_ads/v17/services/audience_insights_service/client.rb +128 -1
  30. data/lib/google/ads/google_ads/v17/services/audience_insights_service_pb.rb +5 -1
  31. data/lib/google/ads/google_ads/v17/services/audience_insights_service_services_pb.rb +15 -0
  32. data/lib/google/ads/google_ads/v17/services/google_ads_service/paths.rb +19 -0
  33. data/lib/google/ads/google_ads/v17/services/google_ads_service_pb.rb +3 -1
  34. data/lib/google/ads/google_ads/v17/services/shareable_preview_service/client.rb +428 -0
  35. data/lib/google/ads/google_ads/v17/services/shareable_preview_service/credentials.rb +38 -0
  36. data/lib/google/ads/google_ads/v17/services/shareable_preview_service.rb +50 -0
  37. data/lib/google/ads/google_ads/v17/services/shareable_preview_service_pb.rb +55 -0
  38. data/lib/google/ads/google_ads/v17/services/shareable_preview_service_services_pb.rb +47 -0
  39. data/lib/google/ads/google_ads/v17/services.rb +1 -0
  40. data/lib/google/ads/google_ads/version.rb +1 -1
  41. metadata +14 -3
@@ -308,6 +308,108 @@ module Google
308
308
  # raise Google::Ads::GoogleAds::Error.new grpc_error.message
309
309
  end
310
310
 
311
+ ##
312
+ # Remove automatically created assets from an ad.
313
+ #
314
+ # List of thrown errors:
315
+ # [AdError]()
316
+ # [AuthenticationError]()
317
+ # [AuthorizationError]()
318
+ # [AutomaticallyCreatedAssetRemovalError]()
319
+ # [HeaderError]()
320
+ # [InternalError]()
321
+ # [MutateError]()
322
+ # [QuotaError]()
323
+ # [RequestError]()
324
+ #
325
+ # @overload remove_automatically_created_assets(request, options = nil)
326
+ # Pass arguments to `remove_automatically_created_assets` via a request object, either of type
327
+ # {::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest} or an equivalent Hash.
328
+ #
329
+ # @param request [::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest, ::Hash]
330
+ # A request object representing the call parameters. Required. To specify no
331
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
332
+ # @param options [::Gapic::CallOptions, ::Hash]
333
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
334
+ #
335
+ # @overload remove_automatically_created_assets(ad_group_ad: nil, assets_with_field_type: nil)
336
+ # Pass arguments to `remove_automatically_created_assets` via keyword arguments. Note that at
337
+ # least one keyword argument is required. To specify no parameters, or to keep all
338
+ # the default parameter values, pass an empty Hash as a request object (see above).
339
+ #
340
+ # @param ad_group_ad [::String]
341
+ # Required. The resource name of the AdGroupAd from which to remove
342
+ # automatically created assets.
343
+ # @param assets_with_field_type [::Array<::Google::Ads::GoogleAds::V17::Services::AssetsWithFieldType, ::Hash>]
344
+ # Required. List of assets with field type to be removed from the AdGroupAd.
345
+ #
346
+ # @yield [response, operation] Access the result along with the RPC operation
347
+ # @yieldparam response [::Google::Protobuf::Empty]
348
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
349
+ #
350
+ # @return [::Google::Protobuf::Empty]
351
+ #
352
+ # @raise [Google::Ads::GoogleAds::Error] if the RPC is aborted.
353
+ #
354
+ # @example Basic example
355
+ # require "google/ads/google_ads/v17/services"
356
+ #
357
+ # # Create a client object. The client can be reused for multiple calls.
358
+ # client = Google::Ads::GoogleAds::V17::Services::AdGroupAdService::Client.new
359
+ #
360
+ # # Create a request. To set request fields, pass in keyword arguments.
361
+ # request = Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest.new
362
+ #
363
+ # # Call the remove_automatically_created_assets method.
364
+ # result = client.remove_automatically_created_assets request
365
+ #
366
+ # # The returned object is of type Google::Protobuf::Empty.
367
+ # p result
368
+ #
369
+ def remove_automatically_created_assets request, options = nil
370
+ raise ::ArgumentError, "request must be provided" if request.nil?
371
+
372
+ request = ::Gapic::Protobuf.coerce request,
373
+ to: ::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest
374
+
375
+ # Converts hash and nil to an options object
376
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
377
+
378
+ # Customize the options with defaults
379
+ metadata = @config.rpcs.remove_automatically_created_assets.metadata.to_h
380
+
381
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
382
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
383
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
384
+ gapic_version: ::Google::Ads::GoogleAds::VERSION
385
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
386
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
387
+
388
+ header_params = {}
389
+ if request.ad_group_ad
390
+ header_params["ad_group_ad"] = request.ad_group_ad
391
+ end
392
+
393
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
394
+ metadata[:"x-goog-request-params"] ||= request_params_header
395
+
396
+ options.apply_defaults timeout: @config.rpcs.remove_automatically_created_assets.timeout,
397
+ metadata: metadata,
398
+ retry_policy: @config.rpcs.remove_automatically_created_assets.retry_policy
399
+
400
+ options.apply_defaults timeout: @config.timeout,
401
+ metadata: @config.metadata,
402
+ retry_policy: @config.retry_policy
403
+
404
+ @ad_group_ad_service_stub.call_rpc :remove_automatically_created_assets, request,
405
+ options: options do |response, operation|
406
+ yield response, operation if block_given?
407
+ return response
408
+ end
409
+ # rescue GRPC::BadStatus => grpc_error
410
+ # raise Google::Ads::GoogleAds::Error.new grpc_error.message
411
+ end
412
+
311
413
  ##
312
414
  # Configuration class for the AdGroupAdService API.
313
415
  #
@@ -467,11 +569,18 @@ module Google
467
569
  # @return [::Gapic::Config::Method]
468
570
  #
469
571
  attr_reader :mutate_ad_group_ads
572
+ ##
573
+ # RPC-specific configuration for `remove_automatically_created_assets`
574
+ # @return [::Gapic::Config::Method]
575
+ #
576
+ attr_reader :remove_automatically_created_assets
470
577
 
471
578
  # @private
472
579
  def initialize parent_rpcs = nil
473
580
  mutate_ad_group_ads_config = parent_rpcs.mutate_ad_group_ads if parent_rpcs.respond_to? :mutate_ad_group_ads
474
581
  @mutate_ad_group_ads = ::Gapic::Config::Method.new mutate_ad_group_ads_config
582
+ remove_automatically_created_assets_config = parent_rpcs.remove_automatically_created_assets if parent_rpcs.respond_to? :remove_automatically_created_assets
583
+ @remove_automatically_created_assets = ::Gapic::Config::Method.new remove_automatically_created_assets_config
475
584
 
476
585
  yield self if block_given?
477
586
  end
@@ -99,6 +99,23 @@ module Google
99
99
  "customers/#{customer_id}/adGroupAdLabels/#{ad_group_id}~#{ad_id}~#{label_id}"
100
100
  end
101
101
 
102
+ ##
103
+ # Create a fully-qualified Asset resource string.
104
+ #
105
+ # The resource will be in the following format:
106
+ #
107
+ # `customers/{customer_id}/assets/{asset_id}`
108
+ #
109
+ # @param customer_id [String]
110
+ # @param asset_id [String]
111
+ #
112
+ # @return [::String]
113
+ def asset_path customer_id:, asset_id:
114
+ raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
115
+
116
+ "customers/#{customer_id}/assets/#{asset_id}"
117
+ end
118
+
102
119
  extend self
103
120
  end
104
121
  end
@@ -5,17 +5,19 @@
5
5
  require 'google/protobuf'
6
6
 
7
7
  require 'google/ads/google_ads/v17/common/policy_pb'
8
+ require 'google/ads/google_ads/v17/enums/asset_field_type_pb'
8
9
  require 'google/ads/google_ads/v17/enums/response_content_type_pb'
9
10
  require 'google/ads/google_ads/v17/resources/ad_group_ad_pb'
10
11
  require 'google/api/annotations_pb'
11
12
  require 'google/api/client_pb'
12
13
  require 'google/api/field_behavior_pb'
13
14
  require 'google/api/resource_pb'
15
+ require 'google/protobuf/empty_pb'
14
16
  require 'google/protobuf/field_mask_pb'
15
17
  require 'google/rpc/status_pb'
16
18
 
17
19
 
18
- 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"
20
+ 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"
19
21
 
20
22
  pool = Google::Protobuf::DescriptorPool.generated_pool
21
23
 
@@ -54,6 +56,8 @@ module Google
54
56
  AdGroupAdOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AdGroupAdOperation").msgclass
55
57
  MutateAdGroupAdsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.MutateAdGroupAdsResponse").msgclass
56
58
  MutateAdGroupAdResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.MutateAdGroupAdResult").msgclass
59
+ RemoveAutomaticallyCreatedAssetsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.RemoveAutomaticallyCreatedAssetsRequest").msgclass
60
+ AssetsWithFieldType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AssetsWithFieldType").msgclass
57
61
  end
58
62
  end
59
63
  end
@@ -83,6 +83,19 @@ module Google
83
83
  # [StringLengthError]()
84
84
  # [UrlFieldError]()
85
85
  rpc :MutateAdGroupAds, ::Google::Ads::GoogleAds::V17::Services::MutateAdGroupAdsRequest, ::Google::Ads::GoogleAds::V17::Services::MutateAdGroupAdsResponse
86
+ # Remove automatically created assets from an ad.
87
+ #
88
+ # List of thrown errors:
89
+ # [AdError]()
90
+ # [AuthenticationError]()
91
+ # [AuthorizationError]()
92
+ # [AutomaticallyCreatedAssetRemovalError]()
93
+ # [HeaderError]()
94
+ # [InternalError]()
95
+ # [MutateError]()
96
+ # [QuotaError]()
97
+ # [RequestError]()
98
+ rpc :RemoveAutomaticallyCreatedAssets, ::Google::Ads::GoogleAds::V17::Services::RemoveAutomaticallyCreatedAssetsRequest, ::Google::Protobuf::Empty
86
99
  end
87
100
 
88
101
  Stub = Service.rpc_stub_class
@@ -292,7 +292,7 @@ module Google
292
292
  # @param options [::Gapic::CallOptions, ::Hash]
293
293
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
294
294
  #
295
- # @overload list_audience_insights_attributes(customer_id: nil, dimensions: nil, query_text: nil, customer_insights_group: nil, location_country_filters: nil)
295
+ # @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)
296
296
  # Pass arguments to `list_audience_insights_attributes` via keyword arguments. Note that at
297
297
  # least one keyword argument is required. To specify no parameters, or to keep all
298
298
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -315,6 +315,12 @@ module Google
315
315
  # will be located in these countries. If this field is absent, then location
316
316
  # attributes are not filtered by country. Setting this field when
317
317
  # SUB_COUNTRY_LOCATION attributes are not requested will return an error.
318
+ # @param youtube_reach_location [::Google::Ads::GoogleAds::V17::Common::LocationInfo, ::Hash]
319
+ # If present, potential YouTube reach estimates within the specified market
320
+ # will be returned for attributes for which they are available. Reach is
321
+ # only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and
322
+ # IN_MARKET_USER_INTEREST dimensions, and may not be available for every
323
+ # attribute of those dimensions in every market.
318
324
  #
319
325
  # @yield [response, operation] Access the result along with the RPC operation
320
326
  # @yieldparam response [::Google::Ads::GoogleAds::V17::Services::ListAudienceInsightsAttributesResponse]
@@ -692,6 +698,120 @@ module Google
692
698
  # raise Google::Ads::GoogleAds::Error.new grpc_error.message
693
699
  end
694
700
 
701
+ ##
702
+ # Returns a collection of audience attributes along with estimates of the
703
+ # overlap between their potential YouTube reach and that of a given input
704
+ # attribute.
705
+ #
706
+ # List of thrown errors:
707
+ # [AudienceInsightsError]()
708
+ # [AuthenticationError]()
709
+ # [AuthorizationError]()
710
+ # [FieldError]()
711
+ # [HeaderError]()
712
+ # [InternalError]()
713
+ # [QuotaError]()
714
+ # [RangeError]()
715
+ # [RequestError]()
716
+ #
717
+ # @overload generate_audience_overlap_insights(request, options = nil)
718
+ # Pass arguments to `generate_audience_overlap_insights` via a request object, either of type
719
+ # {::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest} or an equivalent Hash.
720
+ #
721
+ # @param request [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest, ::Hash]
722
+ # A request object representing the call parameters. Required. To specify no
723
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
724
+ # @param options [::Gapic::CallOptions, ::Hash]
725
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
726
+ #
727
+ # @overload generate_audience_overlap_insights(customer_id: nil, country_location: nil, primary_attribute: nil, dimensions: nil, customer_insights_group: nil)
728
+ # Pass arguments to `generate_audience_overlap_insights` via keyword arguments. Note that at
729
+ # least one keyword argument is required. To specify no parameters, or to keep all
730
+ # the default parameter values, pass an empty Hash as a request object (see above).
731
+ #
732
+ # @param customer_id [::String]
733
+ # Required. The ID of the customer.
734
+ # @param country_location [::Google::Ads::GoogleAds::V17::Common::LocationInfo, ::Hash]
735
+ # Required. The country in which to calculate the sizes and overlaps of
736
+ # audiences.
737
+ # @param primary_attribute [::Google::Ads::GoogleAds::V17::Services::AudienceInsightsAttribute, ::Hash]
738
+ # Required. The audience attribute that should be intersected with all other
739
+ # eligible audiences. This must be an Affinity or In-Market UserInterest, an
740
+ # AgeRange or a Gender.
741
+ # @param dimensions [::Array<::Google::Ads::GoogleAds::V17::Enums::AudienceInsightsDimensionEnum::AudienceInsightsDimension>]
742
+ # Required. The types of attributes of which to calculate the overlap with
743
+ # the primary_attribute. The values must be a subset of
744
+ # AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.
745
+ # @param customer_insights_group [::String]
746
+ # The name of the customer being planned for. This is a user-defined value.
747
+ #
748
+ # @yield [response, operation] Access the result along with the RPC operation
749
+ # @yieldparam response [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse]
750
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
751
+ #
752
+ # @return [::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse]
753
+ #
754
+ # @raise [Google::Ads::GoogleAds::Error] if the RPC is aborted.
755
+ #
756
+ # @example Basic example
757
+ # require "google/ads/google_ads/v17/services"
758
+ #
759
+ # # Create a client object. The client can be reused for multiple calls.
760
+ # client = Google::Ads::GoogleAds::V17::Services::AudienceInsightsService::Client.new
761
+ #
762
+ # # Create a request. To set request fields, pass in keyword arguments.
763
+ # request = Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest.new
764
+ #
765
+ # # Call the generate_audience_overlap_insights method.
766
+ # result = client.generate_audience_overlap_insights request
767
+ #
768
+ # # The returned object is of type Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse.
769
+ # p result
770
+ #
771
+ def generate_audience_overlap_insights request, options = nil
772
+ raise ::ArgumentError, "request must be provided" if request.nil?
773
+
774
+ request = ::Gapic::Protobuf.coerce request,
775
+ to: ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest
776
+
777
+ # Converts hash and nil to an options object
778
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
779
+
780
+ # Customize the options with defaults
781
+ metadata = @config.rpcs.generate_audience_overlap_insights.metadata.to_h
782
+
783
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
784
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
785
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
786
+ gapic_version: ::Google::Ads::GoogleAds::VERSION
787
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
788
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
789
+
790
+ header_params = {}
791
+ if request.customer_id
792
+ header_params["customer_id"] = request.customer_id
793
+ end
794
+
795
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
796
+ metadata[:"x-goog-request-params"] ||= request_params_header
797
+
798
+ options.apply_defaults timeout: @config.rpcs.generate_audience_overlap_insights.timeout,
799
+ metadata: metadata,
800
+ retry_policy: @config.rpcs.generate_audience_overlap_insights.retry_policy
801
+
802
+ options.apply_defaults timeout: @config.timeout,
803
+ metadata: @config.metadata,
804
+ retry_policy: @config.retry_policy
805
+
806
+ @audience_insights_service_stub.call_rpc :generate_audience_overlap_insights, request,
807
+ options: options do |response, operation|
808
+ yield response, operation if block_given?
809
+ return response
810
+ end
811
+ # rescue GRPC::BadStatus => grpc_error
812
+ # raise Google::Ads::GoogleAds::Error.new grpc_error.message
813
+ end
814
+
695
815
  ##
696
816
  # Configuration class for the AudienceInsightsService API.
697
817
  #
@@ -871,6 +991,11 @@ module Google
871
991
  # @return [::Gapic::Config::Method]
872
992
  #
873
993
  attr_reader :generate_suggested_targeting_insights
994
+ ##
995
+ # RPC-specific configuration for `generate_audience_overlap_insights`
996
+ # @return [::Gapic::Config::Method]
997
+ #
998
+ attr_reader :generate_audience_overlap_insights
874
999
 
875
1000
  # @private
876
1001
  def initialize parent_rpcs = nil
@@ -884,6 +1009,8 @@ module Google
884
1009
  @generate_audience_composition_insights = ::Gapic::Config::Method.new generate_audience_composition_insights_config
885
1010
  generate_suggested_targeting_insights_config = parent_rpcs.generate_suggested_targeting_insights if parent_rpcs.respond_to? :generate_suggested_targeting_insights
886
1011
  @generate_suggested_targeting_insights = ::Gapic::Config::Method.new generate_suggested_targeting_insights_config
1012
+ generate_audience_overlap_insights_config = parent_rpcs.generate_audience_overlap_insights if parent_rpcs.respond_to? :generate_audience_overlap_insights
1013
+ @generate_audience_overlap_insights = ::Gapic::Config::Method.new generate_audience_overlap_insights_config
887
1014
 
888
1015
  yield self if block_given?
889
1016
  end
@@ -12,7 +12,7 @@ require 'google/api/client_pb'
12
12
  require 'google/api/field_behavior_pb'
13
13
 
14
14
 
15
- 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"
15
+ 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"
16
16
 
17
17
  pool = Google::Protobuf::DescriptorPool.generated_pool
18
18
 
@@ -56,6 +56,10 @@ module Google
56
56
  ListAudienceInsightsAttributesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListAudienceInsightsAttributesResponse").msgclass
57
57
  ListInsightsEligibleDatesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListInsightsEligibleDatesRequest").msgclass
58
58
  ListInsightsEligibleDatesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.ListInsightsEligibleDatesResponse").msgclass
59
+ GenerateAudienceOverlapInsightsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsRequest").msgclass
60
+ GenerateAudienceOverlapInsightsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsResponse").msgclass
61
+ DimensionOverlapResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.DimensionOverlapResult").msgclass
62
+ AudienceOverlapItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceOverlapItem").msgclass
59
63
  AudienceInsightsAttribute = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsAttribute").msgclass
60
64
  AudienceInsightsTopic = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsTopic").msgclass
61
65
  AudienceInsightsEntity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v17.services.AudienceInsightsEntity").msgclass
@@ -103,6 +103,21 @@ module Google
103
103
  # [RangeError]()
104
104
  # [RequestError]()
105
105
  rpc :GenerateSuggestedTargetingInsights, ::Google::Ads::GoogleAds::V17::Services::GenerateSuggestedTargetingInsightsRequest, ::Google::Ads::GoogleAds::V17::Services::GenerateSuggestedTargetingInsightsResponse
106
+ # Returns a collection of audience attributes along with estimates of the
107
+ # overlap between their potential YouTube reach and that of a given input
108
+ # attribute.
109
+ #
110
+ # List of thrown errors:
111
+ # [AudienceInsightsError]()
112
+ # [AuthenticationError]()
113
+ # [AuthorizationError]()
114
+ # [FieldError]()
115
+ # [HeaderError]()
116
+ # [InternalError]()
117
+ # [QuotaError]()
118
+ # [RangeError]()
119
+ # [RequestError]()
120
+ rpc :GenerateAudienceOverlapInsights, ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsRequest, ::Google::Ads::GoogleAds::V17::Services::GenerateAudienceOverlapInsightsResponse
106
121
  end
107
122
 
108
123
  Stub = Service.rpc_stub_class
@@ -2750,6 +2750,25 @@ module Google
2750
2750
  "customers/#{customer_id}/offlineConversionUploadClientSummaries/#{client}"
2751
2751
  end
2752
2752
 
2753
+ ##
2754
+ # Create a fully-qualified OfflineConversionUploadConversionActionSummary resource string.
2755
+ #
2756
+ # The resource will be in the following format:
2757
+ #
2758
+ # `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_type_id}~{client}`
2759
+ #
2760
+ # @param customer_id [String]
2761
+ # @param conversion_type_id [String]
2762
+ # @param client [String]
2763
+ #
2764
+ # @return [::String]
2765
+ def offline_conversion_upload_conversion_action_summary_path customer_id:, conversion_type_id:, client:
2766
+ raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
2767
+ raise ::ArgumentError, "conversion_type_id cannot contain /" if conversion_type_id.to_s.include? "/"
2768
+
2769
+ "customers/#{customer_id}/offlineConversionUploadConversionActionSummaries/#{conversion_type_id}~#{client}"
2770
+ end
2771
+
2753
2772
  ##
2754
2773
  # Create a fully-qualified OfflineUserDataJob resource string.
2755
2774
  #