--- v14/services/reach_plan_service.proto 2023-08-09 22:28:46.000000000 +0000 +++ v15/services/reach_plan_service.proto 2023-10-18 20:10:59.000000000 +0000 @@ -1,609 +1,677 @@ // Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v15.services; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/frequency_cap_time_unit.proto"; -import "google/ads/googleads/v14/enums/reach_plan_age_range.proto"; -import "google/ads/googleads/v14/enums/reach_plan_network.proto"; +import "google/ads/googleads/v15/common/criteria.proto"; +import "google/ads/googleads/v15/common/dates.proto"; +import "google/ads/googleads/v15/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v15/enums/reach_plan_age_range.proto"; +import "google/ads/googleads/v15/enums/reach_plan_network.proto"; +import "google/ads/googleads/v15/enums/reach_plan_surface.proto"; +import "google/ads/googleads/v15/enums/target_frequency_time_unit.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; option java_multiple_files = true; option java_outer_classname = "ReachPlanServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v15.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V15::Services"; // Proto file describing the reach plan service. // Reach Plan Service gives users information about audience size that can // be reached through advertisement on YouTube. In particular, // GenerateReachForecast provides estimated number of people of specified // demographics that can be reached by an ad in a given market by a campaign of // certain duration with a defined budget. service ReachPlanService { option (google.api.default_host) = "googleads.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; // Returns the list of plannable locations (for example, countries). // // List of thrown errors: // [AuthenticationError]() // [AuthorizationError]() // [HeaderError]() // [InternalError]() // [QuotaError]() // [RequestError]() rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { option (google.api.http) = { - post: "/v14:listPlannableLocations" + post: "/v15:listPlannableLocations" body: "*" }; } // Returns the list of per-location plannable YouTube ad formats with allowed // targeting. // // List of thrown errors: // [AuthenticationError]() // [AuthorizationError]() // [HeaderError]() // [InternalError]() // [QuotaError]() // [RequestError]() rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { option (google.api.http) = { - post: "/v14:listPlannableProducts" + post: "/v15:listPlannableProducts" body: "*" }; option (google.api.method_signature) = "plannable_location_id"; } // Generates a reach forecast for a given targeting / product mix. // // List of thrown errors: // [AuthenticationError]() // [AuthorizationError]() // [FieldError]() // [HeaderError]() // [InternalError]() // [QuotaError]() // [RangeError]() // [ReachPlanError]() // [RequestError]() rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateReachForecast" + post: "/v15/customers/{customer_id=*}:generateReachForecast" body: "*" }; option (google.api.method_signature) = "customer_id,campaign_duration,planned_products"; } } // Request message for -// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. +// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. message ListPlannableLocationsRequest {} // The list of plannable locations. message ListPlannableLocationsResponse { // The list of locations available for planning. // See // https://developers.google.com/google-ads/api/reference/data/geotargets // for sample locations. repeated PlannableLocation plannable_locations = 1; } // A plannable location: country, metro region, province, etc. message PlannableLocation { // The location identifier. optional string id = 4; // The unique location name in English. optional string name = 5; // The parent country (not present if location is a country). // If present, will always be a GeoTargetConstant ID. Additional information // such as country name is provided by - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations] + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations] // or GoogleAdsService.Search/SearchStream. optional int64 parent_country_id = 6; // The ISO-3166-1 alpha-2 country code that is associated with the location. optional string country_code = 7; // The location's type. Location types correspond to target_type returned by // searching location type in GoogleAdsService.Search/SearchStream. optional string location_type = 8; } // Request to list available products in a given location. message ListPlannableProductsRequest { // Required. The ID of the selected location for planning. To list the // available plannable location IDs use - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; } // A response with all available products. message ListPlannableProductsResponse { // The list of products available for planning and related targeting metadata. repeated ProductMetadata product_metadata = 1; } // The metadata associated with an available plannable product. message ProductMetadata { // The code associated with the ad product (for example: BUMPER, // TRUEVIEW_IN_STREAM). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 4; // The name associated with the ad product. string plannable_product_name = 3; // The allowed plannable targeting for this product. PlannableTargeting plannable_targeting = 2; } // The targeting for which traffic metrics will be reported. message PlannableTargeting { // Allowed plannable age ranges for the product for which metrics will be // reported. Actual targeting is computed by mapping this age range onto // standard Google common.AgeRangeInfo values. repeated - google.ads.googleads.v14.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v15.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; // Targetable genders for the ad product. - repeated google.ads.googleads.v14.common.GenderInfo genders = 2; + repeated google.ads.googleads.v15.common.GenderInfo genders = 2; // Targetable devices for the ad product. // TABLET device targeting is automatically applied to reported metrics // when MOBILE targeting is selected for CPM_MASTHEAD, // GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products. - repeated google.ads.googleads.v14.common.DeviceInfo devices = 3; + repeated google.ads.googleads.v15.common.DeviceInfo devices = 3; // Targetable networks for the ad product. - repeated google.ads.googleads.v14.enums.ReachPlanNetworkEnum.ReachPlanNetwork + repeated google.ads.googleads.v15.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; // Targetable YouTube Select Lineups for the ad product. repeated YouTubeSelectLineUp youtube_select_lineups = 5; + + // Targetable surface combinations for the ad product. + SurfaceTargetingCombinations surface_targeting = 6; } // Request message for -// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v14.services.ReachPlanService.GenerateReachForecast]. +// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v15.services.ReachPlanService.GenerateReachForecast]. message GenerateReachForecastRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // The currency code. // Three-character ISO 4217 currency code. optional string currency_code = 9; // Required. Campaign duration. CampaignDuration campaign_duration = 3 [(google.api.field_behavior) = REQUIRED]; // Chosen cookie frequency cap to be applied to each planned product. // This is equivalent to the frequency cap exposed in Google Ads when creating // a campaign, it represents the maximum number of times an ad can be shown to // the same user. // If not specified, no cap is applied. // // This field is deprecated in v4 and will eventually be removed. // Use cookie_frequency_cap_setting instead. optional int32 cookie_frequency_cap = 10; // Chosen cookie frequency cap to be applied to each planned product. // This is equivalent to the frequency cap exposed in Google Ads when creating // a campaign, it represents the maximum number of times an ad can be shown to // the same user during a specified time interval. // If not specified, a default of 0 (no cap) is applied. // // This field replaces the deprecated cookie_frequency_cap field. FrequencyCap cookie_frequency_cap_setting = 8; // Chosen minimum effective frequency (the number of times a person was // exposed to the ad) for the reported reach metrics [1-10]. // This won't affect the targeting, but just the reporting. // If not specified, a default of 1 is applied. // // This field cannot be combined with the effective_frequency_limit field. optional int32 min_effective_frequency = 11; // The highest minimum effective frequency (the number of times a person was // exposed to the ad) value [1-10] to include in // Forecast.effective_frequency_breakdowns. // If not specified, Forecast.effective_frequency_breakdowns will not be // provided. // // The effective frequency value provided here will also be used as the // minimum effective frequency for the reported reach metrics. // // This field cannot be combined with the min_effective_frequency field. optional EffectiveFrequencyLimit effective_frequency_limit = 12; // The targeting to be applied to all products selected in the product mix. // // This is planned targeting: execution details might vary based on the // advertising product, consult an implementation specialist. // // See specific metrics for details on how targeting affects them. Targeting targeting = 6; // Required. The products to be forecast. // The max number of allowed planned products is 15. repeated PlannedProduct planned_products = 7 [(google.api.field_behavior) = REQUIRED]; // Controls the forecast metrics returned in the response. ForecastMetricOptions forecast_metric_options = 13; // The name of the customer being planned for. This is a user-defined value. optional string customer_reach_group = 14; } // Effective frequency limit. message EffectiveFrequencyLimit { // The highest effective frequency value to include in // Forecast.effective_frequency_breakdowns. // This field supports frequencies 1-10, inclusive. int32 effective_frequency_breakdown_limit = 1; } // A rule specifying the maximum number of times an ad can be shown to a user // over a particular time period. message FrequencyCap { // Required. The number of impressions, inclusive. int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; // Required. The type of time unit. - google.ads.googleads.v14.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit + google.ads.googleads.v15.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; } // The targeting for which traffic metrics will be reported. message Targeting { // The ID of the selected location. Plannable location IDs can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_ids`. // // This field is deprecated as of V12 and will be removed in a future release. // Use `plannable_location_ids` instead. optional string plannable_location_id = 6; // The list of plannable location IDs to target with this forecast. // // If more than one ID is provided, all IDs must have the same // `parent_country_id`. Planning for more than `parent_county` is not // supported. Plannable location IDs and their `parent_country_id` can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_id`. repeated string plannable_location_ids = 8; // Targeted age range. // An unset value is equivalent to targeting all ages. - google.ads.googleads.v14.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v15.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; // Targeted genders. // An unset value is equivalent to targeting MALE and FEMALE. - repeated google.ads.googleads.v14.common.GenderInfo genders = 3; + repeated google.ads.googleads.v15.common.GenderInfo genders = 3; // Targeted devices. // If not specified, targets all applicable devices. Applicable devices vary // by product and region and can be obtained from - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. - repeated google.ads.googleads.v14.common.DeviceInfo devices = 4; + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. + repeated google.ads.googleads.v15.common.DeviceInfo devices = 4; // Targetable network for the ad product. // If not specified, targets all applicable networks. Applicable networks vary // by product and region and can be obtained from - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. - google.ads.googleads.v14.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. + google.ads.googleads.v15.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; // Targeted audiences. // If not specified, does not target any specific audience. AudienceTargeting audience_targeting = 7; } // The duration of a planned campaign. message CampaignDuration { // The duration value in days. // // This field cannot be combined with the date_range field. optional int32 duration_in_days = 2; // Date range of the campaign. // Dates are in the yyyy-mm-dd format and inclusive. // The end date must be < 1 year in the future and the // date range must be <= 92 days long. // // This field cannot be combined with the duration_in_days field. - google.ads.googleads.v14.common.DateRange date_range = 3; + google.ads.googleads.v15.common.DateRange date_range = 3; } // A product being planned for reach. message PlannedProduct { // Required. Selected product for planning. // The code associated with the ad product (for example: Trueview, Bumper). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 3 [(google.api.field_behavior) = REQUIRED]; // Required. Maximum budget allocation in micros for the selected product. // The value is specified in the selected planning currency_code. // For example: 1 000 000$ = 1 000 000 000 000 micros. optional int64 budget_micros = 4 [(google.api.field_behavior) = REQUIRED]; // Targeting settings for the selected product. // To list the available targeting for each product use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. AdvancedProductTargeting advanced_product_targeting = 5; } // Response message containing the generated reach curve. message GenerateReachForecastResponse { // Reference on target audiences for this curve. OnTargetAudienceMetrics on_target_audience_metrics = 1; // The generated reach curve for the planned product mix. ReachCurve reach_curve = 2; } // The reach curve for the planned products. message ReachCurve { // All points on the reach curve. repeated ReachForecast reach_forecasts = 1; } // A point on reach curve. message ReachForecast { // The cost in micros. int64 cost_micros = 5; // Forecasted traffic metrics for this point. Forecast forecast = 2; // The forecasted allocation and traffic metrics for each planned product // at this point on the reach curve. repeated PlannedProductReachForecast planned_product_reach_forecasts = 4; } // Forecasted traffic metrics for the planned products and targeting. message Forecast { // Number of unique people reached at least // GenerateReachForecastRequest.min_effective_frequency or // GenerateReachForecastRequest.effective_frequency_limit times that exactly // matches the Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the on_target_reach // value will be rounded to 0. optional int64 on_target_reach = 5; // Total number of unique people reached at least // GenerateReachForecastRequest.min_effective_frequency or // GenerateReachForecastRequest.effective_frequency_limit times. This includes // people that may fall outside the specified Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the total_reach // value will be rounded to 0. optional int64 total_reach = 6; // Number of ad impressions that exactly matches the Targeting. optional int64 on_target_impressions = 7; // Total number of ad impressions. This includes impressions that may fall // outside the specified Targeting, due to insufficient information on // signed-in users. optional int64 total_impressions = 8; // Number of times the ad's impressions were considered viewable. // See https://support.google.com/google-ads/answer/7029393 for // more information about what makes an ad viewable and how // viewability is measured. optional int64 viewable_impressions = 9; // A list of effective frequency forecasts. The list is ordered starting with // 1+ and ending with the value set in // GenerateReachForecastRequest.effective_frequency_limit. If no // effective_frequency_limit was set, this list will be empty. repeated EffectiveFrequencyBreakdown effective_frequency_breakdowns = 10; // Number of unique people reached that exactly matches the Targeting // including co-viewers. optional int64 on_target_coview_reach = 11; // Number of unique people reached including co-viewers. This includes // people that may fall outside the specified Targeting. optional int64 total_coview_reach = 12; // Number of ad impressions that exactly matches the Targeting including // co-viewers. optional int64 on_target_coview_impressions = 13; // Total number of ad impressions including co-viewers. This includes // impressions that may fall outside the specified Targeting, due to // insufficient information on signed-in users. optional int64 total_coview_impressions = 14; + + // Number of ad views forecasted for the specified product and targeting. + // A view is counted when a viewer views a larger portion or the entirety of + // an ad beyond an impression. + // + // See https://support.google.com/google-ads/answer/2375431 for + // more information on views. + optional int64 views = 15; } // The forecasted allocation and traffic metrics for a specific product // at a point on the reach curve. message PlannedProductReachForecast { // Selected product for planning. The product codes returned are within the // set of the ones returned by ListPlannableProducts when using the same // location ID. string plannable_product_code = 1; // The cost in micros. This may differ from the product's input allocation // if one or more planned products cannot fulfill the budget because of // limited inventory. int64 cost_micros = 2; // Forecasted traffic metrics for this product. PlannedProductForecast planned_product_forecast = 3; } // Forecasted traffic metrics for a planned product. message PlannedProductForecast { // Number of unique people reached that exactly matches the Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the on_target_reach // value will be rounded to 0. int64 on_target_reach = 1; // Number of unique people reached. This includes people that may fall // outside the specified Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the total_reach // value will be rounded to 0. int64 total_reach = 2; // Number of ad impressions that exactly matches the Targeting. int64 on_target_impressions = 3; // Total number of ad impressions. This includes impressions that may fall // outside the specified Targeting, due to insufficient information on // signed-in users. int64 total_impressions = 4; // Number of times the ad's impressions were considered viewable. // See https://support.google.com/google-ads/answer/7029393 for // more information about what makes an ad viewable and how // viewability is measured. optional int64 viewable_impressions = 5; // Number of unique people reached that exactly matches the Targeting // including co-viewers. optional int64 on_target_coview_reach = 6; // Number of unique people reached including co-viewers. This includes // people that may fall outside the specified Targeting. optional int64 total_coview_reach = 7; // Number of ad impressions that exactly matches the Targeting including // co-viewers. optional int64 on_target_coview_impressions = 8; // Total number of ad impressions including co-viewers. This includes // impressions that may fall outside the specified Targeting, due to // insufficient information on signed-in users. optional int64 total_coview_impressions = 9; + + // The number of times per selected time unit a user will see an ad, averaged + // over the number of time units in the forecast length. This field will only + // be populated for a Target Frequency campaign. + // + // See https://support.google.com/google-ads/answer/12400225 for more + // information about Target Frequency campaigns. + optional double average_frequency = 10; + + // Number of ad views forecasted for the specified product and targeting. + // A view is counted when a viewer views a larger portion or the entirety of + // an ad beyond an impression. + // + // See https://support.google.com/google-ads/answer/2375431 for + // more information on views. + optional int64 views = 11; } // Audience metrics for the planned products. // These metrics consider the following targeting dimensions: // // - Location // - PlannableAgeRange // - Gender message OnTargetAudienceMetrics { // Reference audience size matching the considered targeting for YouTube. optional int64 youtube_audience_size = 3; // Reference audience size matching the considered targeting for Census. optional int64 census_audience_size = 4; } // A breakdown of the number of unique people reached at a given effective // frequency. message EffectiveFrequencyBreakdown { // The effective frequency [1-10]. int32 effective_frequency = 1; // The number of unique people reached at least effective_frequency times that // exactly matches the Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the on_target_reach // value will be rounded to 0. int64 on_target_reach = 2; // Total number of unique people reached at least effective_frequency times. // This includes people that may fall outside the specified Targeting. // // Note that a minimum number of unique people must be reached in order for // data to be reported. If the minimum number is not met, the total_reach // value will be rounded to 0. int64 total_reach = 3; // The number of users (including co-viewing users) reached for the associated // effective_frequency value. optional int64 effective_coview_reach = 4; // The number of users (including co-viewing users) reached for the associated // effective_frequency value within the specified plan demographic. optional int64 on_target_effective_coview_reach = 5; } // Controls forecast metrics to return. message ForecastMetricOptions { // Indicates whether to include co-view metrics in the response forecast. bool include_coview = 1; } // Audience targeting for reach forecast. message AudienceTargeting { // List of audiences based on user interests to be targeted. - repeated google.ads.googleads.v14.common.UserInterestInfo user_interest = 1; + repeated google.ads.googleads.v15.common.UserInterestInfo user_interest = 1; } // Advanced targeting settings for products. message AdvancedProductTargeting { + // Surface targeting settings for this product. + SurfaceTargeting surface_targeting_settings = 2; + + // Settings for a Target frequency campaign. Must be set when selecting the + // TARGET_FREQUENCY product. + // + // See https://support.google.com/google-ads/answer/12400225 for more + // information about Target Frequency campaigns. + TargetFrequencySettings target_frequency_settings = 3; + // Targeting options for this product. oneof advanced_targeting { // Settings for YouTube Select targeting. YouTubeSelectSettings youtube_select_settings = 1; } } // Request settings for YouTube Select Lineups message YouTubeSelectSettings { // Lineup for YouTube Select Targeting. int64 lineup_id = 1; } // A Plannable YouTube Select Lineup for product targeting. message YouTubeSelectLineUp { // The ID of the YouTube Select Lineup. int64 lineup_id = 1; // The unique name of the YouTube Select Lineup. string lineup_name = 2; } + +// The surface targeting combinations available for an ad product. +message SurfaceTargetingCombinations { + // Default surface targeting applied to the ad product. + SurfaceTargeting default_targeting = 1; + + // Available surface target combinations for the ad product. + repeated SurfaceTargeting available_targeting_combinations = 2; +} + +// Container for surfaces for a product. Surfaces refer to the available types +// of ad inventories such as In-Feed, In-Stream, and Shorts. +message SurfaceTargeting { + // List of surfaces available to target. + repeated google.ads.googleads.v15.enums.ReachPlanSurfaceEnum.ReachPlanSurface + surfaces = 1; +} + +// Target Frequency settings for a supported product. +message TargetFrequencySettings { + // Required. The time unit used to describe the time frame for + // target_frequency. + google.ads.googleads.v15.enums.TargetFrequencyTimeUnitEnum + .TargetFrequencyTimeUnit time_unit = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The target frequency goal per selected time unit. + int32 target_frequency = 2 [(google.api.field_behavior) = REQUIRED]; +}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-10-19 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]