aboutsummaryrefslogtreecommitdiff
path: root/google/ads/googleads/v0/common/criteria.proto
blob: 1fc332394042e96910db45f29c05c78669adfe24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
// Copyright 2018 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.v0.common;

import "google/ads/googleads/v0/enums/age_range_type.proto";
import "google/ads/googleads/v0/enums/app_payment_model_type.proto";
import "google/ads/googleads/v0/enums/content_label_type.proto";
import "google/ads/googleads/v0/enums/day_of_week.proto";
import "google/ads/googleads/v0/enums/device.proto";
import "google/ads/googleads/v0/enums/gender_type.proto";
import "google/ads/googleads/v0/enums/hotel_date_selection_type.proto";
import "google/ads/googleads/v0/enums/income_range_type.proto";
import "google/ads/googleads/v0/enums/interaction_type.proto";
import "google/ads/googleads/v0/enums/keyword_match_type.proto";
import "google/ads/googleads/v0/enums/listing_custom_attribute_index.proto";
import "google/ads/googleads/v0/enums/listing_group_type.proto";
import "google/ads/googleads/v0/enums/minute_of_hour.proto";
import "google/ads/googleads/v0/enums/parental_status_type.proto";
import "google/ads/googleads/v0/enums/preferred_content_type.proto";
import "google/ads/googleads/v0/enums/product_channel.proto";
import "google/ads/googleads/v0/enums/product_channel_exclusivity.proto";
import "google/ads/googleads/v0/enums/product_condition.proto";
import "google/ads/googleads/v0/enums/product_type_level.proto";
import "google/ads/googleads/v0/enums/proximity_radius_units.proto";
import "google/ads/googleads/v0/enums/webpage_condition_operand.proto";
import "google/ads/googleads/v0/enums/webpage_condition_operator.proto";
import "google/protobuf/wrappers.proto";

option csharp_namespace = "Google.Ads.GoogleAds.V0.Common";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v0/common;common";
option java_multiple_files = true;
option java_outer_classname = "CriteriaProto";
option java_package = "com.google.ads.googleads.v0.common";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V0\\Common";
option ruby_package = "Google::Ads::GoogleAds::V0::Common";

// Proto file describing criteria types.

// A keyword criterion.
message KeywordInfo {
  // The text of the keyword (at most 80 characters and 10 words).
  google.protobuf.StringValue text = 1;

  // The match type of the keyword.
  google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType
      match_type = 2;
}

// A placement criterion. This can be used to modify bids for sites when
// targeting the content network.
message PlacementInfo {
  // URL of the placement.
  //
  // For example, "http://www.domain.com".
  google.protobuf.StringValue url = 1;
}

// A mobile app category criterion.
message MobileAppCategoryInfo {
  // The mobile app category constant resource name.
  google.protobuf.StringValue mobile_app_category_constant = 1;
}

// A location criterion.
message LocationInfo {
  // The geo target constant resource name.
  google.protobuf.StringValue geo_target_constant = 1;
}

// A device criterion.
message DeviceInfo {
  // Type of the device.
  google.ads.googleads.v0.enums.DeviceEnum.Device type = 1;
}

// A preferred content criterion.
message PreferredContentInfo {
  // Type of the preferred content.
  google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType
      type = 2;
}

// A listing group criterion.
message ListingGroupInfo {
  // Type of the listing group.
  google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType type = 1;

  // Dimension value with which this listing group is refining its parent.
  // Undefined for the root group.
  ListingDimensionInfo case_value = 2;

  // Resource name of ad group criterion which is the parent listing group
  // subdivision. Null for the root group.
  google.protobuf.StringValue parent_ad_group_criterion = 3;
}

// A listing scope criterion.
message ListingScopeInfo {
  // Scope of the campaign criterion.
  repeated ListingDimensionInfo dimensions = 2;
}

// Listing dimensions for listing group criterion.
message ListingDimensionInfo {
  // Dimension of one of the types below is always present.
  oneof dimension {
    // Brand of the listing.
    ListingBrandInfo listing_brand = 1;

    // Advertiser-specific hotel ID.
    HotelIdInfo hotel_id = 2;

    // Class of the hotel as a number of stars 1 to 5.
    HotelClassInfo hotel_class = 3;

    // Country or Region the hotel is located in.
    HotelCountryRegionInfo hotel_country_region = 4;

    // State the hotel is located in.
    HotelStateInfo hotel_state = 5;

    // City the hotel is located in.
    HotelCityInfo hotel_city = 6;

    // Listing custom attribute.
    ListingCustomAttributeInfo listing_custom_attribute = 7;

    // Locality of a product offer.
    ProductChannelInfo product_channel = 8;

    // Availability of a product offer.
    ProductChannelExclusivityInfo product_channel_exclusivity = 9;

    // Condition of a product offer.
    ProductConditionInfo product_condition = 10;

    // Id of a product offer.
    ProductOfferIdInfo product_offer_id = 11;

    // Type of a product offer.
    ProductTypeInfo product_type = 12;
  }
}

// Brand of the listing.
message ListingBrandInfo {
  // String value of the listing brand.
  google.protobuf.StringValue value = 1;
}

// Advertiser-specific hotel ID.
message HotelIdInfo {
  // String value of the hotel ID.
  google.protobuf.StringValue value = 1;
}

// Class of the hotel as a number of stars 1 to 5.
message HotelClassInfo {
  // Long value of the hotel class.
  google.protobuf.Int64Value value = 1;
}

// Country or Region the hotel is located in.
message HotelCountryRegionInfo {
  // The Geo Target Constant resource name.
  google.protobuf.StringValue country_region_criterion = 1;
}

// State the hotel is located in.
message HotelStateInfo {
  // The Geo Target Constant resource name.
  google.protobuf.StringValue state_criterion = 1;
}

// City the hotel is located in.
message HotelCityInfo {
  // The Geo Target Constant resource name.
  google.protobuf.StringValue city_criterion = 1;
}

// Listing custom attribute.
message ListingCustomAttributeInfo {
  // String value of the listing custom attribute.
  google.protobuf.StringValue value = 1;

  // Indicates the index of the custom attribute.
  google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum
      .ListingCustomAttributeIndex index = 2;
}

// Locality of a product offer.
message ProductChannelInfo {
  // Value of the locality.
  google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel channel = 1;
}

// Availability of a product offer.
message ProductChannelExclusivityInfo {
  // Value of the availability.
  google.ads.googleads.v0.enums.ProductChannelExclusivityEnum
      .ProductChannelExclusivity channel_exclusivity = 1;
}

// Condition of a product offer.
message ProductConditionInfo {
  // Value of the condition.
  google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition
      condition = 1;
}

// Id of a product offer.
message ProductOfferIdInfo {
  // Value of the id.
  google.protobuf.StringValue value = 1;
}

// Type of a product offer.
message ProductTypeInfo {
  // Value of the type.
  google.protobuf.StringValue value = 1;

  // Level of the type.
  google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2;
}

// Criterion for hotel date selection (default dates vs. user selected).
message HotelDateSelectionTypeInfo {
  // Type of the hotel date selection
  google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum
      .HotelDateSelectionType type = 1;
}

// Criterion for number of days prior to the stay the booking is being made.
message HotelAdvanceBookingWindowInfo {
  // Low end of the number of days prior to the stay.
  google.protobuf.Int64Value min_days = 1;

  // High end of the number of days prior to the stay.
  google.protobuf.Int64Value max_days = 2;
}

// Criterion for length of hotel stay in nights.
message HotelLengthOfStayInfo {
  // Low end of the number of nights in the stay.
  google.protobuf.Int64Value min_nights = 1;

  // High end of the number of nights in the stay.
  google.protobuf.Int64Value max_nights = 2;
}

// Criterion for day of the week the booking is for.
message HotelCheckInDayInfo {
  // The day of the week.
  google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1;
}

// Criterion for Interaction Type.
message InteractionTypeInfo {
  // The interaction type.
  google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType type = 1;
}

// Represents an AdSchedule criterion.
//
// AdSchedule is specified as the day of the week and a time interval
// within which ads will be shown.
//
// No more than six AdSchedules can be added for the same day.
message AdScheduleInfo {
  // Minutes after the start hour at which this schedule starts.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1;

  // Minutes after the end hour at which this schedule ends. The schedule is
  // exclusive of the end minute.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2;

  // Starting hour in 24 hour time.
  // This field must be between 0 and 23, inclusive.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.protobuf.Int32Value start_hour = 3;

  // Ending hour in 24 hour time; 24 signifies end of the day.
  // This field must be between 0 and 24, inclusive.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.protobuf.Int32Value end_hour = 4;

  // Day of the week the schedule applies to.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
}

// An age range criterion.
message AgeRangeInfo {
  // Type of the age range.
  google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType type = 1;
}

// A gender criterion.
message GenderInfo {
  // Type of the gender.
  google.ads.googleads.v0.enums.GenderTypeEnum.GenderType type = 1;
}

// An income range criterion.
message IncomeRangeInfo {
  // Type of the income range.
  google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1;
}

// A parental status criterion.
message ParentalStatusInfo {
  // Type of the parental status.
  google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType type =
      1;
}

// A YouTube Video criterion.
message YouTubeVideoInfo {
  // YouTube video id as it appears on the YouTube watch page.
  google.protobuf.StringValue video_id = 1;
}

// A YouTube Channel criterion.
message YouTubeChannelInfo {
  // The YouTube uploader channel id or the channel code of a YouTube channel.
  google.protobuf.StringValue channel_id = 1;
}

// A User List criterion. Represents a user list that is defined by the
// advertiser to be targeted.
message UserListInfo {
  // The User List resource name.
  google.protobuf.StringValue user_list = 1;
}

// A Proximity criterion. The geo point and radius determine what geographical
// area is included. The address is a description of the geo point that does
// not affect ad serving.
//
// There are two ways to create a proximity. First, by setting an address
// and radius. The geo point will be automatically computed. Second, by
// setting a geo point and radius. The address is an optional label that won't
// be validated.
message ProximityInfo {
  // Latitude and longitude.
  GeoPointInfo geo_point = 1;

  // The radius of the proximity.
  google.protobuf.DoubleValue radius = 2;

  // The unit of measurement of the radius. Default is KILOMETERS.
  google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits
      radius_units = 3;

  // Full address.
  AddressInfo address = 4;
}

// Geo point for proximity criterion.
message GeoPointInfo {
  // Micro degrees for the longitude.
  google.protobuf.Int32Value longitude_in_micro_degrees = 1;

  // Micro degrees for the latitude.
  google.protobuf.Int32Value latitude_in_micro_degrees = 2;
}

// Address for proximity criterion.
message AddressInfo {
  // Postal code.
  google.protobuf.StringValue postal_code = 1;

  // Province or state code.
  google.protobuf.StringValue province_code = 2;

  // Country code.
  google.protobuf.StringValue country_code = 3;

  // Province or state name.
  google.protobuf.StringValue province_name = 4;

  // Street address line 1.
  google.protobuf.StringValue street_address = 5;

  // Street address line 2. This field is write-only. It is only used for
  // calculating the longitude and latitude of an address when geo_point is
  // empty.
  google.protobuf.StringValue street_address2 = 6;

  // Name of the city.
  google.protobuf.StringValue city_name = 7;
}

// A topic criterion. Use topics to target or exclude placements in the
// Google Display Network based on the category into which the placement falls
// (for example, "Pets & Animals/Pets/Dogs").
message TopicInfo {
  // The Topic Constant resource name.
  google.protobuf.StringValue topic_constant = 1;

  // The category to target or exclude. Each subsequent element in the array
  // describes a more specific sub-category. For example,
  // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs"
  // category.
  repeated google.protobuf.StringValue path = 2;
}

// A language criterion.
message LanguageInfo {
  // The language constant resource name.
  google.protobuf.StringValue language_constant = 1;
}

// An IpBlock criterion used for IP exclusions. We allow:
//  - IPv4 and IPv6 addresses
//  - individual addresses (192.168.0.1)
//  - masks for individual addresses (192.168.0.1/32)
//  - masks for Class C networks (192.168.0.1/24)
message IpBlockInfo {
  // The IP address of this IP block.
  google.protobuf.StringValue ip_address = 1;
}

// Content Label for category exclusion.
message ContentLabelInfo {
  // Content label type, required for CREATE operations.
  google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType type = 1;
}

// Represents a Carrier Criterion.
message CarrierInfo {
  // The Carrier constant resource name.
  google.protobuf.StringValue carrier_constant = 1;
}

// Represents a particular interest-based topic to be targeted.
message UserInterestInfo {
  // The UserInterest resource name.
  google.protobuf.StringValue user_interest_category = 1;
}

// Represents a criterion for targeting webpages of an advertiser's website.
message WebpageInfo {
  // The name of the criterion that is defined by this parameter. The name value
  // will be used for identifying, sorting and filtering criteria with this type
  // of parameters.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  google.protobuf.StringValue criterion_name = 1;

  // Conditions, or logical expressions, for webpage targeting. The list of
  // webpage targeting conditions are and-ed together when evaluated
  // for targeting.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  repeated WebpageConditionInfo conditions = 2;
}

// Logical expression for targeting webpages of an advertiser's website.
message WebpageConditionInfo {
  // Operand of webpage targeting condition.
  google.ads.googleads.v0.enums.WebpageConditionOperandEnum
      .WebpageConditionOperand operand = 1;

  // Operator of webpage targeting condition.
  google.ads.googleads.v0.enums.WebpageConditionOperatorEnum
      .WebpageConditionOperator
      operator = 2;

  // Argument of webpage targeting condition.
  google.protobuf.StringValue argument = 3;
}

// Represents an operating system version to be targeted.
message OperatingSystemVersionInfo {
  // The operating system version constant resource name.
  google.protobuf.StringValue operating_system_version_constant = 1;
}

// An app payment model criterion.
message AppPaymentModelInfo {
  // Type of the app payment model.
  google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType
      type = 1;
}