reach_plan_service.proto 26 KB

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