1// Copyright 2023 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 15syntax = "proto3"; 16 17package google.ads.searchads360.v0.common; 18 19import "google/ads/searchads360/v0/enums/age_range_type.proto"; 20import "google/ads/searchads360/v0/enums/day_of_week.proto"; 21import "google/ads/searchads360/v0/enums/device.proto"; 22import "google/ads/searchads360/v0/enums/gender_type.proto"; 23import "google/ads/searchads360/v0/enums/keyword_match_type.proto"; 24import "google/ads/searchads360/v0/enums/listing_group_type.proto"; 25import "google/ads/searchads360/v0/enums/location_group_radius_units.proto"; 26import "google/ads/searchads360/v0/enums/minute_of_hour.proto"; 27import "google/ads/searchads360/v0/enums/webpage_condition_operand.proto"; 28import "google/ads/searchads360/v0/enums/webpage_condition_operator.proto"; 29 30option csharp_namespace = "Google.Ads.SearchAds360.V0.Common"; 31option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common"; 32option java_multiple_files = true; 33option java_outer_classname = "CriteriaProto"; 34option java_package = "com.google.ads.searchads360.v0.common"; 35option objc_class_prefix = "GASA360"; 36option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Common"; 37option ruby_package = "Google::Ads::SearchAds360::V0::Common"; 38 39// Proto file describing criteria types. 40 41// A keyword criterion. 42message KeywordInfo { 43 // The text of the keyword (at most 80 characters and 10 words). 44 optional string text = 3; 45 46 // The match type of the keyword. 47 google.ads.searchads360.v0.enums.KeywordMatchTypeEnum.KeywordMatchType 48 match_type = 2; 49} 50 51// A location criterion. 52message LocationInfo { 53 // The geo target constant resource name. 54 optional string geo_target_constant = 2; 55} 56 57// A device criterion. 58message DeviceInfo { 59 // Type of the device. 60 google.ads.searchads360.v0.enums.DeviceEnum.Device type = 1; 61} 62 63// A listing group criterion. 64message ListingGroupInfo { 65 // Type of the listing group. 66 google.ads.searchads360.v0.enums.ListingGroupTypeEnum.ListingGroupType type = 67 1; 68} 69 70// Represents an AdSchedule criterion. 71// 72// AdSchedule is specified as the day of the week and a time interval 73// within which ads will be shown. 74// 75// No more than six AdSchedules can be added for the same day. 76message AdScheduleInfo { 77 // Minutes after the start hour at which this schedule starts. 78 // 79 // This field is required for CREATE operations and is prohibited on UPDATE 80 // operations. 81 google.ads.searchads360.v0.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 82 1; 83 84 // Minutes after the end hour at which this schedule ends. The schedule is 85 // exclusive of the end minute. 86 // 87 // This field is required for CREATE operations and is prohibited on UPDATE 88 // operations. 89 google.ads.searchads360.v0.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; 90 91 // Starting hour in 24 hour time. 92 // This field must be between 0 and 23, inclusive. 93 // 94 // This field is required for CREATE operations and is prohibited on UPDATE 95 // operations. 96 optional int32 start_hour = 6; 97 98 // Ending hour in 24 hour time; 24 signifies end of the day. 99 // This field must be between 0 and 24, inclusive. 100 // 101 // This field is required for CREATE operations and is prohibited on UPDATE 102 // operations. 103 optional int32 end_hour = 7; 104 105 // Day of the week the schedule applies to. 106 // 107 // This field is required for CREATE operations and is prohibited on UPDATE 108 // operations. 109 google.ads.searchads360.v0.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; 110} 111 112// An age range criterion. 113message AgeRangeInfo { 114 // Type of the age range. 115 google.ads.searchads360.v0.enums.AgeRangeTypeEnum.AgeRangeType type = 1; 116} 117 118// A gender criterion. 119message GenderInfo { 120 // Type of the gender. 121 google.ads.searchads360.v0.enums.GenderTypeEnum.GenderType type = 1; 122} 123 124// A User List criterion. Represents a user list that is defined by the 125// advertiser to be targeted. 126message UserListInfo { 127 // The User List resource name. 128 optional string user_list = 2; 129} 130 131// A language criterion. 132message LanguageInfo { 133 // The language constant resource name. 134 optional string language_constant = 2; 135} 136 137// Represents a criterion for targeting webpages of an advertiser's website. 138message WebpageInfo { 139 // The name of the criterion that is defined by this parameter. The name value 140 // will be used for identifying, sorting and filtering criteria with this type 141 // of parameters. 142 // 143 // This field is required for CREATE operations and is prohibited on UPDATE 144 // operations. 145 optional string criterion_name = 3; 146 147 // Conditions, or logical expressions, for webpage targeting. The list of 148 // webpage targeting conditions are and-ed together when evaluated 149 // for targeting. An empty list of conditions indicates all pages of the 150 // campaign's website are targeted. 151 // 152 // This field is required for CREATE operations and is prohibited on UPDATE 153 // operations. 154 repeated WebpageConditionInfo conditions = 2; 155 156 // Website criteria coverage percentage. This is the computed percentage 157 // of website coverage based on the website target, negative website target 158 // and negative keywords in the ad group and campaign. For instance, when 159 // coverage returns as 1, it indicates it has 100% coverage. This field is 160 // read-only. 161 double coverage_percentage = 4; 162} 163 164// Logical expression for targeting webpages of an advertiser's website. 165message WebpageConditionInfo { 166 // Operand of webpage targeting condition. 167 google.ads.searchads360.v0.enums.WebpageConditionOperandEnum 168 .WebpageConditionOperand operand = 1; 169 170 // Operator of webpage targeting condition. 171 google.ads.searchads360.v0.enums.WebpageConditionOperatorEnum 172 .WebpageConditionOperator 173 operator = 2; 174 175 // Argument of webpage targeting condition. 176 optional string argument = 4; 177} 178 179// A radius around a list of locations specified through a feed. 180message LocationGroupInfo { 181 // Geo target constant(s) restricting the scope of the geographic area within 182 // the feed. Currently only one geo target constant is allowed. 183 repeated string geo_target_constants = 6; 184 185 // Distance in units specifying the radius around targeted locations. 186 // This is required and must be set in CREATE operations. 187 optional int64 radius = 7; 188 189 // Unit of the radius. Miles and meters are supported for geo target 190 // constants. Milli miles and meters are supported for feed item sets. 191 // This is required and must be set in CREATE operations. 192 google.ads.searchads360.v0.enums.LocationGroupRadiusUnitsEnum 193 .LocationGroupRadiusUnits radius_units = 4; 194 195 // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, 196 // then all items that appear in at least one set are targeted. This field 197 // cannot be used with geo_target_constants. This is optional and can only be 198 // set in CREATE operations. 199 repeated string feed_item_sets = 8; 200} 201 202// An audience criterion. 203message AudienceInfo { 204 // The Audience resource name. 205 string audience = 1; 206} 207