reach_plan_service.proto 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. // Copyright 2022 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.ads.googleads.v12.services;
  16. import "google/ads/googleads/v12/common/criteria.proto";
  17. import "google/ads/googleads/v12/common/dates.proto";
  18. import "google/ads/googleads/v12/enums/frequency_cap_time_unit.proto";
  19. import "google/ads/googleads/v12/enums/reach_plan_age_range.proto";
  20. import "google/ads/googleads/v12/enums/reach_plan_network.proto";
  21. import "google/api/annotations.proto";
  22. import "google/api/client.proto";
  23. import "google/api/field_behavior.proto";
  24. option csharp_namespace = "Google.Ads.GoogleAds.V12.Services";
  25. option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v12/services;services";
  26. option java_multiple_files = true;
  27. option java_outer_classname = "ReachPlanServiceProto";
  28. option java_package = "com.google.ads.googleads.v12.services";
  29. option objc_class_prefix = "GAA";
  30. option php_namespace = "Google\\Ads\\GoogleAds\\V12\\Services";
  31. option ruby_package = "Google::Ads::GoogleAds::V12::Services";
  32. // Proto file describing the reach plan service.
  33. // Reach Plan Service gives users information about audience size that can
  34. // be reached through advertisement on YouTube. In particular,
  35. // GenerateReachForecast provides estimated number of people of specified
  36. // demographics that can be reached by an ad in a given market by a campaign of
  37. // certain duration with a defined budget.
  38. service ReachPlanService {
  39. option (google.api.default_host) = "googleads.googleapis.com";
  40. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords";
  41. // Returns the list of plannable locations (for example, countries).
  42. //
  43. // List of thrown errors:
  44. // [AuthenticationError]()
  45. // [AuthorizationError]()
  46. // [HeaderError]()
  47. // [InternalError]()
  48. // [QuotaError]()
  49. // [RequestError]()
  50. rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) {
  51. option (google.api.http) = {
  52. post: "/v12:listPlannableLocations"
  53. body: "*"
  54. };
  55. }
  56. // Returns the list of per-location plannable YouTube ad formats with allowed
  57. // targeting.
  58. //
  59. // List of thrown errors:
  60. // [AuthenticationError]()
  61. // [AuthorizationError]()
  62. // [HeaderError]()
  63. // [InternalError]()
  64. // [QuotaError]()
  65. // [RequestError]()
  66. rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) {
  67. option (google.api.http) = {
  68. post: "/v12:listPlannableProducts"
  69. body: "*"
  70. };
  71. option (google.api.method_signature) = "plannable_location_id";
  72. }
  73. // Generates a reach forecast for a given targeting / product mix.
  74. //
  75. // List of thrown errors:
  76. // [AuthenticationError]()
  77. // [AuthorizationError]()
  78. // [FieldError]()
  79. // [HeaderError]()
  80. // [InternalError]()
  81. // [QuotaError]()
  82. // [RangeError]()
  83. // [ReachPlanError]()
  84. // [RequestError]()
  85. rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) {
  86. option (google.api.http) = {
  87. post: "/v12/customers/{customer_id=*}:generateReachForecast"
  88. body: "*"
  89. };
  90. option (google.api.method_signature) = "customer_id,campaign_duration,planned_products";
  91. }
  92. }
  93. // Request message for [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
  94. message ListPlannableLocationsRequest {
  95. }
  96. // The list of plannable locations.
  97. message ListPlannableLocationsResponse {
  98. // The list of locations available for planning.
  99. // See
  100. // https://developers.google.com/google-ads/api/reference/data/geotargets
  101. // for sample locations.
  102. repeated PlannableLocation plannable_locations = 1;
  103. }
  104. // A plannable location: country, metro region, province, etc.
  105. message PlannableLocation {
  106. // The location identifier.
  107. optional string id = 4;
  108. // The unique location name in English.
  109. optional string name = 5;
  110. // The parent country (not present if location is a country).
  111. // If present, will always be a GeoTargetConstant ID. Additional information
  112. // such as country name is provided by
  113. // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations] or
  114. // [GoogleAdsService.Search/SearchStream][].
  115. optional int64 parent_country_id = 6;
  116. // The ISO-3166-1 alpha-2 country code that is associated with the location.
  117. optional string country_code = 7;
  118. // The location's type. Location types correspond to target_type returned by
  119. // searching location type in [GoogleAdsService.Search/SearchStream][].
  120. optional string location_type = 8;
  121. }
  122. // Request to list available products in a given location.
  123. message ListPlannableProductsRequest {
  124. // Required. The ID of the selected location for planning. To list the available
  125. // plannable location IDs use [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
  126. string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED];
  127. }
  128. // A response with all available products.
  129. message ListPlannableProductsResponse {
  130. // The list of products available for planning and related targeting metadata.
  131. repeated ProductMetadata product_metadata = 1;
  132. }
  133. // The metadata associated with an available plannable product.
  134. message ProductMetadata {
  135. // The code associated with the ad product (for example: BUMPER,
  136. // TRUEVIEW_IN_STREAM).
  137. // To list the available plannable product codes use
  138. // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v12.services.ReachPlanService.ListPlannableProducts].
  139. optional string plannable_product_code = 4;
  140. // The name associated with the ad product.
  141. string plannable_product_name = 3;
  142. // The allowed plannable targeting for this product.
  143. PlannableTargeting plannable_targeting = 2;
  144. }
  145. // The targeting for which traffic metrics will be reported.
  146. message PlannableTargeting {
  147. // Allowed plannable age ranges for the product for which metrics will be
  148. // reported. Actual targeting is computed by mapping this age range onto
  149. // standard Google common.AgeRangeInfo values.
  150. repeated google.ads.googleads.v12.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1;
  151. // Targetable genders for the ad product.
  152. repeated google.ads.googleads.v12.common.GenderInfo genders = 2;
  153. // Targetable devices for the ad product.
  154. // TABLET device targeting is automatically applied to reported metrics
  155. // when MOBILE targeting is selected for CPM_MASTHEAD,
  156. // GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products.
  157. repeated google.ads.googleads.v12.common.DeviceInfo devices = 3;
  158. // Targetable networks for the ad product.
  159. repeated google.ads.googleads.v12.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4;
  160. // Targetable YouTube Select Lineups for the ad product.
  161. repeated YouTubeSelectLineUp youtube_select_lineups = 5;
  162. }
  163. // Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v12.services.ReachPlanService.GenerateReachForecast].
  164. message GenerateReachForecastRequest {
  165. // Required. The ID of the customer.
  166. string customer_id = 1 [(google.api.field_behavior) = REQUIRED];
  167. // The currency code.
  168. // Three-character ISO 4217 currency code.
  169. optional string currency_code = 9;
  170. // Required. Campaign duration.
  171. CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED];
  172. // Chosen cookie frequency cap to be applied to each planned product.
  173. // This is equivalent to the frequency cap exposed in Google Ads when creating
  174. // a campaign, it represents the maximum number of times an ad can be shown to
  175. // the same user.
  176. // If not specified, no cap is applied.
  177. //
  178. // This field is deprecated in v4 and will eventually be removed.
  179. // Use cookie_frequency_cap_setting instead.
  180. optional int32 cookie_frequency_cap = 10;
  181. // Chosen cookie frequency cap to be applied to each planned product.
  182. // This is equivalent to the frequency cap exposed in Google Ads when creating
  183. // a campaign, it represents the maximum number of times an ad can be shown to
  184. // the same user during a specified time interval.
  185. // If not specified, a default of 0 (no cap) is applied.
  186. //
  187. // This field replaces the deprecated cookie_frequency_cap field.
  188. FrequencyCap cookie_frequency_cap_setting = 8;
  189. // Chosen minimum effective frequency (the number of times a person was
  190. // exposed to the ad) for the reported reach metrics [1-10].
  191. // This won't affect the targeting, but just the reporting.
  192. // If not specified, a default of 1 is applied.
  193. //
  194. // This field cannot be combined with the effective_frequency_limit field.
  195. optional int32 min_effective_frequency = 11;
  196. // The highest minimum effective frequency (the number of times a person was
  197. // exposed to the ad) value [1-10] to include in
  198. // Forecast.effective_frequency_breakdowns.
  199. // If not specified, Forecast.effective_frequency_breakdowns will not be
  200. // provided.
  201. //
  202. // The effective frequency value provided here will also be used as the
  203. // minimum effective frequency for the reported reach metrics.
  204. //
  205. // This field cannot be combined with the min_effective_frequency field.
  206. optional EffectiveFrequencyLimit effective_frequency_limit = 12;
  207. // The targeting to be applied to all products selected in the product mix.
  208. //
  209. // This is planned targeting: execution details might vary based on the
  210. // advertising product, consult an implementation specialist.
  211. //
  212. // See specific metrics for details on how targeting affects them.
  213. Targeting targeting = 6;
  214. // Required. The products to be forecast.
  215. // The max number of allowed planned products is 15.
  216. repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED];
  217. // Controls the forecast metrics returned in the response.
  218. ForecastMetricOptions forecast_metric_options = 13;
  219. // The name of the customer being planned for. This is a user-defined value.
  220. // Required if targeting.audience_targeting is set.
  221. optional string customer_reach_group = 14;
  222. }
  223. // Effective frequency limit.
  224. message EffectiveFrequencyLimit {
  225. // The highest effective frequency value to include in
  226. // Forecast.effective_frequency_breakdowns.
  227. // This field supports frequencies 1-10, inclusive.
  228. int32 effective_frequency_breakdown_limit = 1;
  229. }
  230. // A rule specifying the maximum number of times an ad can be shown to a user
  231. // over a particular time period.
  232. message FrequencyCap {
  233. // Required. The number of impressions, inclusive.
  234. int32 impressions = 3 [(google.api.field_behavior) = REQUIRED];
  235. // Required. The type of time unit.
  236. google.ads.googleads.v12.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED];
  237. }
  238. // The targeting for which traffic metrics will be reported.
  239. message Targeting {
  240. // The ID of the selected location. Plannable location IDs can be
  241. // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
  242. //
  243. // Requests must set either this field or `plannable_location_ids`.
  244. //
  245. // This field is deprecated as of V12 and will be removed in a future release.
  246. // Use `plannable_location_ids` instead.
  247. optional string plannable_location_id = 6;
  248. // The list of plannable location IDs to target with this forecast.
  249. //
  250. // If more than one ID is provided, all IDs must have the same
  251. // `parent_country_id`. Planning for more than `parent_county` is not
  252. // supported. Plannable location IDs and their `parent_country_id` can be
  253. // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
  254. //
  255. // Requests must set either this field or `plannable_location_id`.
  256. repeated string plannable_location_ids = 8;
  257. // Targeted age range.
  258. // An unset value is equivalent to targeting all ages.
  259. google.ads.googleads.v12.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2;
  260. // Targeted genders.
  261. // An unset value is equivalent to targeting MALE and FEMALE.
  262. repeated google.ads.googleads.v12.common.GenderInfo genders = 3;
  263. // Targeted devices.
  264. // If not specified, targets all applicable devices. Applicable devices vary
  265. // by product and region and can be obtained from
  266. // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v12.services.ReachPlanService.ListPlannableProducts].
  267. repeated google.ads.googleads.v12.common.DeviceInfo devices = 4;
  268. // Targetable network for the ad product.
  269. // If not specified, targets all applicable networks. Applicable networks vary
  270. // by product and region and can be obtained from
  271. // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v12.services.ReachPlanService.ListPlannableProducts].
  272. google.ads.googleads.v12.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5;
  273. // Targeted audiences.
  274. // If not specified, does not target any specific audience.
  275. AudienceTargeting audience_targeting = 7;
  276. }
  277. // The duration of a planned campaign.
  278. message CampaignDuration {
  279. // The duration value in days.
  280. //
  281. // This field cannot be combined with the date_range field.
  282. optional int32 duration_in_days = 2;
  283. // Date range of the campaign.
  284. // Dates are in the yyyy-mm-dd format and inclusive.
  285. // The end date must be < 1 year in the future and the
  286. // date range must be <= 92 days long.
  287. //
  288. // This field cannot be combined with the duration_in_days field.
  289. google.ads.googleads.v12.common.DateRange date_range = 3;
  290. }
  291. // A product being planned for reach.
  292. message PlannedProduct {
  293. // Required. Selected product for planning.
  294. // The code associated with the ad product (for example: Trueview, Bumper).
  295. // To list the available plannable product codes use
  296. // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v12.services.ReachPlanService.ListPlannableProducts].
  297. optional string plannable_product_code = 3;
  298. // Required. Maximum budget allocation in micros for the selected product.
  299. // The value is specified in the selected planning currency_code.
  300. // For example: 1 000 000$ = 1 000 000 000 000 micros.
  301. optional int64 budget_micros = 4;
  302. // Targeting settings for the selected product.
  303. // To list the available targeting for each product use
  304. // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v12.services.ReachPlanService.ListPlannableProducts].
  305. AdvancedProductTargeting advanced_product_targeting = 5;
  306. }
  307. // Response message containing the generated reach curve.
  308. message GenerateReachForecastResponse {
  309. // Reference on target audiences for this curve.
  310. OnTargetAudienceMetrics on_target_audience_metrics = 1;
  311. // The generated reach curve for the planned product mix.
  312. ReachCurve reach_curve = 2;
  313. }
  314. // The reach curve for the planned products.
  315. message ReachCurve {
  316. // All points on the reach curve.
  317. repeated ReachForecast reach_forecasts = 1;
  318. }
  319. // A point on reach curve.
  320. message ReachForecast {
  321. // The cost in micros.
  322. int64 cost_micros = 5;
  323. // Forecasted traffic metrics for this point.
  324. Forecast forecast = 2;
  325. // The forecasted allocation and traffic metrics for each planned product
  326. // at this point on the reach curve.
  327. repeated PlannedProductReachForecast planned_product_reach_forecasts = 4;
  328. }
  329. // Forecasted traffic metrics for the planned products and targeting.
  330. message Forecast {
  331. // Number of unique people reached at least
  332. // GenerateReachForecastRequest.min_effective_frequency or
  333. // GenerateReachForecastRequest.effective_frequency_limit times that exactly
  334. // matches the Targeting.
  335. //
  336. // Note that a minimum number of unique people must be reached in order for
  337. // data to be reported. If the minimum number is not met, the on_target_reach
  338. // value will be rounded to 0.
  339. optional int64 on_target_reach = 5;
  340. // Total number of unique people reached at least
  341. // GenerateReachForecastRequest.min_effective_frequency or
  342. // GenerateReachForecastRequest.effective_frequency_limit times. This includes
  343. // people that may fall outside the specified Targeting.
  344. //
  345. // Note that a minimum number of unique people must be reached in order for
  346. // data to be reported. If the minimum number is not met, the total_reach
  347. // value will be rounded to 0.
  348. optional int64 total_reach = 6;
  349. // Number of ad impressions that exactly matches the Targeting.
  350. optional int64 on_target_impressions = 7;
  351. // Total number of ad impressions. This includes impressions that may fall
  352. // outside the specified Targeting, due to insufficient information on
  353. // signed-in users.
  354. optional int64 total_impressions = 8;
  355. // Number of times the ad's impressions were considered viewable.
  356. // See https://support.google.com/google-ads/answer/7029393 for
  357. // more information about what makes an ad viewable and how
  358. // viewability is measured.
  359. optional int64 viewable_impressions = 9;
  360. // A list of effective frequency forecasts. The list is ordered starting with
  361. // 1+ and ending with the value set in
  362. // GenerateReachForecastRequest.effective_frequency_limit. If no
  363. // effective_frequency_limit was set, this list will be empty.
  364. repeated EffectiveFrequencyBreakdown effective_frequency_breakdowns = 10;
  365. // Number of unique people reached that exactly matches the Targeting
  366. // including co-viewers.
  367. optional int64 on_target_coview_reach = 11;
  368. // Number of unique people reached including co-viewers. This includes
  369. // people that may fall outside the specified Targeting.
  370. optional int64 total_coview_reach = 12;
  371. // Number of ad impressions that exactly matches the Targeting including
  372. // co-viewers.
  373. optional int64 on_target_coview_impressions = 13;
  374. // Total number of ad impressions including co-viewers. This includes
  375. // impressions that may fall outside the specified Targeting, due to
  376. // insufficient information on signed-in users.
  377. optional int64 total_coview_impressions = 14;
  378. }
  379. // The forecasted allocation and traffic metrics for a specific product
  380. // at a point on the reach curve.
  381. message PlannedProductReachForecast {
  382. // Selected product for planning. The product codes returned are within the
  383. // set of the ones returned by ListPlannableProducts when using the same
  384. // location ID.
  385. string plannable_product_code = 1;
  386. // The cost in micros. This may differ from the product's input allocation
  387. // if one or more planned products cannot fulfill the budget because of
  388. // limited inventory.
  389. int64 cost_micros = 2;
  390. // Forecasted traffic metrics for this product.
  391. PlannedProductForecast planned_product_forecast = 3;
  392. }
  393. // Forecasted traffic metrics for a planned product.
  394. message PlannedProductForecast {
  395. // Number of unique people reached that exactly matches the Targeting.
  396. //
  397. // Note that a minimum number of unique people must be reached in order for
  398. // data to be reported. If the minimum number is not met, the on_target_reach
  399. // value will be rounded to 0.
  400. int64 on_target_reach = 1;
  401. // Number of unique people reached. This includes people that may fall
  402. // outside the specified Targeting.
  403. //
  404. // Note that a minimum number of unique people must be reached in order for
  405. // data to be reported. If the minimum number is not met, the total_reach
  406. // value will be rounded to 0.
  407. int64 total_reach = 2;
  408. // Number of ad impressions that exactly matches the Targeting.
  409. int64 on_target_impressions = 3;
  410. // Total number of ad impressions. This includes impressions that may fall
  411. // outside the specified Targeting, due to insufficient information on
  412. // signed-in users.
  413. int64 total_impressions = 4;
  414. // Number of times the ad's impressions were considered viewable.
  415. // See https://support.google.com/google-ads/answer/7029393 for
  416. // more information about what makes an ad viewable and how
  417. // viewability is measured.
  418. optional int64 viewable_impressions = 5;
  419. // Number of unique people reached that exactly matches the Targeting
  420. // including co-viewers.
  421. optional int64 on_target_coview_reach = 6;
  422. // Number of unique people reached including co-viewers. This includes
  423. // people that may fall outside the specified Targeting.
  424. optional int64 total_coview_reach = 7;
  425. // Number of ad impressions that exactly matches the Targeting including
  426. // co-viewers.
  427. optional int64 on_target_coview_impressions = 8;
  428. // Total number of ad impressions including co-viewers. This includes
  429. // impressions that may fall outside the specified Targeting, due to
  430. // insufficient information on signed-in users.
  431. optional int64 total_coview_impressions = 9;
  432. }
  433. // Audience metrics for the planned products.
  434. // These metrics consider the following targeting dimensions:
  435. //
  436. // - Location
  437. // - PlannableAgeRange
  438. // - Gender
  439. message OnTargetAudienceMetrics {
  440. // Reference audience size matching the considered targeting for YouTube.
  441. optional int64 youtube_audience_size = 3;
  442. // Reference audience size matching the considered targeting for Census.
  443. optional int64 census_audience_size = 4;
  444. }
  445. // A breakdown of the number of unique people reached at a given effective
  446. // frequency.
  447. message EffectiveFrequencyBreakdown {
  448. // The effective frequency [1-10].
  449. int32 effective_frequency = 1;
  450. // The number of unique people reached at least effective_frequency times that
  451. // exactly matches the Targeting.
  452. //
  453. // Note that a minimum number of unique people must be reached in order for
  454. // data to be reported. If the minimum number is not met, the on_target_reach
  455. // value will be rounded to 0.
  456. int64 on_target_reach = 2;
  457. // Total number of unique people reached at least effective_frequency times.
  458. // This includes people that may fall outside the specified Targeting.
  459. //
  460. // Note that a minimum number of unique people must be reached in order for
  461. // data to be reported. If the minimum number is not met, the total_reach
  462. // value will be rounded to 0.
  463. int64 total_reach = 3;
  464. // The number of users (including co-viewing users) reached for the associated
  465. // effective_frequency value.
  466. optional int64 effective_coview_reach = 4;
  467. // The number of users (including co-viewing users) reached for the associated
  468. // effective_frequency value within the specified plan demographic.
  469. optional int64 on_target_effective_coview_reach = 5;
  470. }
  471. // Controls forecast metrics to return.
  472. message ForecastMetricOptions {
  473. // Indicates whether to include co-view metrics in the response forecast.
  474. bool include_coview = 1;
  475. }
  476. // Audience targeting for reach forecast.
  477. message AudienceTargeting {
  478. // List of audiences based on user interests to be targeted.
  479. repeated google.ads.googleads.v12.common.UserInterestInfo user_interest = 1;
  480. }
  481. // Advanced targeting settings for products.
  482. message AdvancedProductTargeting {
  483. // Targeting options for this product.
  484. oneof advanced_targeting {
  485. // Settings for YouTube Select targeting.
  486. YouTubeSelectSettings youtube_select_settings = 1;
  487. }
  488. }
  489. // Request settings for YouTube Select Lineups
  490. message YouTubeSelectSettings {
  491. // Lineup for YouTube Select Targeting.
  492. int64 lineup_id = 1;
  493. }
  494. // A Plannable YouTube Select Lineup for product targeting.
  495. message YouTubeSelectLineUp {
  496. // The ID of the YouTube Select Lineup.
  497. int64 lineup_id = 1;
  498. // The unique name of the YouTube Select Lineup.
  499. string lineup_name = 2;
  500. }