aboutsummaryrefslogtreecommitdiff
path: root/google/ads/googleads/v16/common/criteria.proto
blob: 4e245fc785eed261b23288a46e8bc5dd40d831bd (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
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
// 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.v16.common;

import "google/ads/googleads/v16/enums/age_range_type.proto";
import "google/ads/googleads/v16/enums/app_payment_model_type.proto";
import "google/ads/googleads/v16/enums/content_label_type.proto";
import "google/ads/googleads/v16/enums/day_of_week.proto";
import "google/ads/googleads/v16/enums/device.proto";
import "google/ads/googleads/v16/enums/gender_type.proto";
import "google/ads/googleads/v16/enums/hotel_date_selection_type.proto";
import "google/ads/googleads/v16/enums/income_range_type.proto";
import "google/ads/googleads/v16/enums/interaction_type.proto";
import "google/ads/googleads/v16/enums/keyword_match_type.proto";
import "google/ads/googleads/v16/enums/listing_group_type.proto";
import "google/ads/googleads/v16/enums/location_group_radius_units.proto";
import "google/ads/googleads/v16/enums/minute_of_hour.proto";
import "google/ads/googleads/v16/enums/parental_status_type.proto";
import "google/ads/googleads/v16/enums/product_category_level.proto";
import "google/ads/googleads/v16/enums/product_channel.proto";
import "google/ads/googleads/v16/enums/product_channel_exclusivity.proto";
import "google/ads/googleads/v16/enums/product_condition.proto";
import "google/ads/googleads/v16/enums/product_custom_attribute_index.proto";
import "google/ads/googleads/v16/enums/product_type_level.proto";
import "google/ads/googleads/v16/enums/proximity_radius_units.proto";
import "google/ads/googleads/v16/enums/webpage_condition_operand.proto";
import "google/ads/googleads/v16/enums/webpage_condition_operator.proto";
import "google/api/resource.proto";

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

// Proto file describing criteria types.

// A keyword criterion.
message KeywordInfo {
  // The text of the keyword (at most 80 characters and 10 words).
  optional string text = 3;

  // The match type of the keyword.
  google.ads.googleads.v16.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".
  optional string url = 2;
}

// A Negative Keyword List criterion. Represents a shared set
// of negative keywords that can be excluded at the account-level.
// Only one negative keyword list criterion can be attached per account.
message NegativeKeywordListInfo {
  // The NegativeKeywordListInfo shared set resource name.
  optional string shared_set = 1;
}

// A mobile app category criterion.
message MobileAppCategoryInfo {
  // The mobile app category constant resource name.
  optional string mobile_app_category_constant = 2
      [(google.api.resource_reference) = {
        type: "googleads.googleapis.com/MobileAppCategoryConstant"
      }];
}

// A mobile application criterion.
message MobileApplicationInfo {
  // A string that uniquely identifies a mobile application to Google Ads API.
  // The format of this string is "{platform}-{platform_native_id}", where
  // platform is "1" for iOS apps and "2" for Android apps, and where
  // platform_native_id is the mobile application identifier native to the
  // corresponding platform.
  // For iOS, this native identifier is the 9 digit string that appears at the
  // end of an App Store URL (for example, "476943146" for "Flood-It! 2" whose
  // App Store link is
  // "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). For Android,
  // this native identifier is the application's package name (for example,
  // "com.labpixies.colordrips" for "Color Drips" given Google Play link
  // "https://play.google.com/store/apps/details?id=com.labpixies.colordrips").
  // A well formed app id for Google Ads API would thus be "1-476943146" for iOS
  // and "2-com.labpixies.colordrips" for Android.
  // This field is required and must be set in CREATE operations.
  optional string app_id = 4;

  // Name of this mobile application.
  optional string name = 5;
}

// A location criterion.
message LocationInfo {
  // The geo target constant resource name.
  optional string geo_target_constant = 2;
}

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

// A listing group criterion.
message ListingGroupInfo {
  // Type of the listing group.
  google.ads.googleads.v16.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.
  optional string parent_ad_group_criterion = 4;

  // The path of dimensions defining this listing group.
  optional ListingDimensionPath path = 5;
}

// The path of dimensions defining a listing group.
message ListingDimensionPath {
  // The complete path of dimensions through the listing group hierarchy, from
  // the root (excluding the root itself) to this listing group.
  repeated ListingDimensionInfo dimensions = 1;
}

// 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 {
    // 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;

    // Category of a product offer.
    ProductCategoryInfo product_category = 24;

    // Brand of a product offer.
    ProductBrandInfo product_brand = 15;

    // 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;

    // Custom attribute of a product offer.
    ProductCustomAttributeInfo product_custom_attribute = 16;

    // Item id of a product offer.
    ProductItemIdInfo product_item_id = 11;

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

    // Grouping of a product offer. This listing dimension is deprecated and it
    // is supported only in Display campaigns.
    ProductGroupingInfo product_grouping = 17;

    // Labels of a product offer. This listing dimension is deprecated and it is
    // supported only in Display campaigns.
    ProductLabelsInfo product_labels = 18;

    // Legacy condition of a product offer. This listing dimension is deprecated
    // and it is supported only in Display campaigns.
    ProductLegacyConditionInfo product_legacy_condition = 19;

    // Full type of a product offer. This listing dimension is deprecated and it
    // is supported only in Display campaigns.
    ProductTypeFullInfo product_type_full = 20;

    // Advertiser-specific activity ID.
    ActivityIdInfo activity_id = 21;

    // Rating of the activity as a number 1 to 5, where 5 is the best.
    ActivityRatingInfo activity_rating = 22;

    // The country where the travel activity is available.
    ActivityCountryInfo activity_country = 23;

    // The state where the travel activity is available.
    ActivityStateInfo activity_state = 25;

    // The city where the travel activity is available.
    ActivityCityInfo activity_city = 26;

    // Unknown dimension. Set when no other listing dimension is set.
    UnknownListingDimensionInfo unknown_listing_dimension = 14;
  }
}

// Advertiser-specific hotel ID.
message HotelIdInfo {
  // String value of the hotel ID.
  optional string value = 2;
}

// Class of the hotel as a number of stars 1 to 5.
message HotelClassInfo {
  // Long value of the hotel class.
  optional int64 value = 2;
}

// Country or Region the hotel is located in.
message HotelCountryRegionInfo {
  // The Geo Target Constant resource name.
  optional string country_region_criterion = 2;
}

// State the hotel is located in.
message HotelStateInfo {
  // The Geo Target Constant resource name.
  optional string state_criterion = 2;
}

// City the hotel is located in.
message HotelCityInfo {
  // The Geo Target Constant resource name.
  optional string city_criterion = 2;
}

// Category of a product offer.
message ProductCategoryInfo {
  // ID of the product category.
  //
  // This ID is equivalent to the google_product_category ID as described in
  // this article: https://support.google.com/merchants/answer/6324436
  optional int64 category_id = 1;

  // Level of the product category.
  google.ads.googleads.v16.enums.ProductCategoryLevelEnum.ProductCategoryLevel
      level = 2;
}

// Brand of the product.
message ProductBrandInfo {
  // String value of the product brand.
  optional string value = 2;
}

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

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

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

// Custom attribute of a product offer.
message ProductCustomAttributeInfo {
  // String value of the product custom attribute.
  optional string value = 3;

  // Indicates the index of the custom attribute.
  google.ads.googleads.v16.enums.ProductCustomAttributeIndexEnum
      .ProductCustomAttributeIndex index = 2;
}

// Item id of a product offer.
message ProductItemIdInfo {
  // Value of the id.
  optional string value = 2;
}

// Type of a product offer.
message ProductTypeInfo {
  // Value of the type.
  optional string value = 3;

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

// Grouping of a product offer. This listing dimension is deprecated and it is
// supported only in Display campaigns.
message ProductGroupingInfo {
  // String value of the product grouping.
  optional string value = 1;
}

// Labels of a product offer. This listing dimension is deprecated and it is
// supported only in Display campaigns.
message ProductLabelsInfo {
  // String value of the product labels.
  optional string value = 1;
}

// Legacy condition of a product offer. This listing dimension is deprecated and
// it is supported only in Display campaigns.
message ProductLegacyConditionInfo {
  // String value of the product legacy condition.
  optional string value = 1;
}

// Full type of a product offer. This listing dimension is deprecated and it is
// supported only in Display campaigns.
message ProductTypeFullInfo {
  // String value of the product full type.
  optional string value = 1;
}

// Unknown listing dimension.
message UnknownListingDimensionInfo {}

// Criterion for hotel date selection (default dates versus user selected).
message HotelDateSelectionTypeInfo {
  // Type of the hotel date selection
  google.ads.googleads.v16.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.
  optional int64 min_days = 3;

  // High end of the number of days prior to the stay.
  optional int64 max_days = 4;
}

// Criterion for length of hotel stay in nights.
message HotelLengthOfStayInfo {
  // Low end of the number of nights in the stay.
  optional int64 min_nights = 3;

  // High end of the number of nights in the stay.
  optional int64 max_nights = 4;
}

// Criterion for a check-in date range.
message HotelCheckInDateRangeInfo {
  // Start date in the YYYY-MM-DD format.
  string start_date = 1;

  // End date in the YYYY-MM-DD format.
  string end_date = 2;
}

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

// Advertiser-specific activity ID.
message ActivityIdInfo {
  // String value of the activity ID.
  optional string value = 1;
}

// Rating of the activity as a number 1 to 5, where 5 is the best.
message ActivityRatingInfo {
  // Long value of the activity rating.
  optional int64 value = 1;
}

// The country where the travel activity is available.
message ActivityCountryInfo {
  // String value of the activity country. The Geo Target Constant resource
  // name.
  optional string value = 1;
}

// The state where the travel activity is available.
message ActivityStateInfo {
  // String value of the activity state. The Geo Target Constant resource
  // name.
  optional string value = 1;
}

// The city where the travel activity is available.
message ActivityCityInfo {
  // String value of the activity city. The Geo Target Constant resource
  // name.
  optional string value = 1;
}

// Criterion for Interaction Type.
message InteractionTypeInfo {
  // The interaction type.
  google.ads.googleads.v16.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.v16.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.v16.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.
  optional int32 start_hour = 6;

  // 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.
  optional int32 end_hour = 7;

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

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

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

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

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

// A YouTube Video criterion.
message YouTubeVideoInfo {
  // YouTube video id as it appears on the YouTube watch page.
  optional string video_id = 2;
}

// A YouTube Channel criterion.
message YouTubeChannelInfo {
  // The YouTube uploader channel id or the channel code of a YouTube channel.
  optional string channel_id = 2;
}

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

// 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.
  optional double radius = 5;

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

  // Full address.
  AddressInfo address = 4;
}

// Geo point for proximity criterion.
message GeoPointInfo {
  // Micro degrees for the longitude.
  optional int32 longitude_in_micro_degrees = 3;

  // Micro degrees for the latitude.
  optional int32 latitude_in_micro_degrees = 4;
}

// Address for proximity criterion.
message AddressInfo {
  // Postal code.
  optional string postal_code = 8;

  // Province or state code.
  optional string province_code = 9;

  // Country code.
  optional string country_code = 10;

  // Province or state name.
  optional string province_name = 11;

  // Street address line 1.
  optional string street_address = 12;

  // 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.
  optional string street_address2 = 13;

  // Name of the city.
  optional string city_name = 14;
}

// 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.
  optional string topic_constant = 3 [(google.api.resource_reference) = {
    type: "googleads.googleapis.com/TopicConstant"
  }];

  // 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 string path = 4;
}

// A language criterion.
message LanguageInfo {
  // The language constant resource name.
  optional string language_constant = 2;
}

// 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.
  optional string ip_address = 2;
}

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

// Represents a Carrier Criterion.
message CarrierInfo {
  // The Carrier constant resource name.
  optional string carrier_constant = 2 [(google.api.resource_reference) = {
    type: "googleads.googleapis.com/CarrierConstant"
  }];
}

// Represents a particular interest-based topic to be targeted.
message UserInterestInfo {
  // The UserInterest resource name.
  optional string user_interest_category = 2;
}

// 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.
  optional string criterion_name = 3;

  // Conditions, or logical expressions, for webpage targeting. The list of
  // webpage targeting conditions are and-ed together when evaluated
  // for targeting. An empty list of conditions indicates all pages of the
  // campaign's website are targeted.
  //
  // This field is required for CREATE operations and is prohibited on UPDATE
  // operations.
  repeated WebpageConditionInfo conditions = 2;

  // Website criteria coverage percentage. This is the computed percentage
  // of website coverage based on the website target, negative website target
  // and negative keywords in the ad group and campaign. For instance, when
  // coverage returns as 1, it indicates it has 100% coverage. This field is
  // read-only.
  double coverage_percentage = 4;

  // List of sample urls that match the website target. This field is read-only.
  WebpageSampleInfo sample = 5;
}

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

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

  // Argument of webpage targeting condition.
  optional string argument = 4;
}

// List of sample urls that match the website target
message WebpageSampleInfo {
  // Webpage sample urls
  repeated string sample_urls = 1;
}

// Represents an operating system version to be targeted.
message OperatingSystemVersionInfo {
  // The operating system version constant resource name.
  optional string operating_system_version_constant = 2
      [(google.api.resource_reference) = {
        type: "googleads.googleapis.com/OperatingSystemVersionConstant"
      }];
}

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

// A mobile device criterion.
message MobileDeviceInfo {
  // The mobile device constant resource name.
  optional string mobile_device_constant = 2
      [(google.api.resource_reference) = {
        type: "googleads.googleapis.com/MobileDeviceConstant"
      }];
}

// A custom affinity criterion.
// A criterion of this type is only targetable.
message CustomAffinityInfo {
  // The CustomInterest resource name.
  optional string custom_affinity = 2;
}

// A custom intent criterion.
// A criterion of this type is only targetable.
message CustomIntentInfo {
  // The CustomInterest resource name.
  optional string custom_intent = 2;
}

// A radius around a list of locations specified through a feed or assetSet.
message LocationGroupInfo {
  // Feed specifying locations for targeting. Cannot be set with AssetSet
  // fields. This is required and must be set in CREATE operations.
  optional string feed = 5;

  // Geo target constant(s) restricting the scope of the geographic area within
  // the feed. Currently only one geo target constant is allowed. Cannot be set
  // with AssetSet fields.
  repeated string geo_target_constants = 6;

  // Distance in units specifying the radius around targeted locations.
  // This is required and must be set in CREATE operations.
  optional int64 radius = 7;

  // Unit of the radius. Miles and meters are supported for geo target
  // constants. Milli miles and meters are supported for feed item sets and
  // asset sets. This is required and must be set in CREATE operations.
  google.ads.googleads.v16.enums.LocationGroupRadiusUnitsEnum
      .LocationGroupRadiusUnits radius_units = 4;

  // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified,
  // then all items that appear in at least one set are targeted. This field
  // cannot be used with geo_target_constants. This is optional and can only be
  // set in CREATE operations. Cannot be set with AssetSet fields.
  repeated string feed_item_sets = 8;

  // Denotes that the latest customer level asset set is used for targeting.
  // Used with radius and radius_units. Cannot be used with
  // feed, geo target constants or feed item sets. When using asset sets, either
  // this field or location_group_asset_sets should be specified. Both cannot be
  // used at the same time. This can only be set in CREATE operations.
  optional bool enable_customer_level_location_asset_set = 9;

  // AssetSets whose Assets are targeted. If multiple IDs are specified, then
  // all items that appear in at least one set are targeted. This field cannot
  // be used with feed, geo target constants or feed item sets. When using asset
  // sets, either this field or enable_customer_level_location_asset_set should
  // be specified. Both cannot be used at the same time. This can only be set
  // in CREATE operations.
  repeated string location_group_asset_sets = 10;
}

// A custom audience criterion.
message CustomAudienceInfo {
  // The CustomAudience resource name.
  string custom_audience = 1;
}

// A combined audience criterion.
message CombinedAudienceInfo {
  // The CombinedAudience resource name.
  string combined_audience = 1 [(google.api.resource_reference) = {
    type: "googleads.googleapis.com/CombinedAudience"
  }];
}

// An audience criterion.
message AudienceInfo {
  // The Audience resource name.
  string audience = 1;
}

// A Smart Campaign keyword theme.
message KeywordThemeInfo {
  // Either a predefined keyword theme constant or free-form text may be
  // specified.
  oneof keyword_theme {
    // The resource name of a Smart Campaign keyword theme constant.
    // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`
    string keyword_theme_constant = 1 [(google.api.resource_reference) = {
      type: "googleads.googleapis.com/KeywordThemeConstant"
    }];

    // Free-form text to be matched to a Smart Campaign keyword theme constant
    // on a best-effort basis.
    string free_form_keyword_theme = 2;
  }
}

// A Local Services Ads service ID. Represents a service type
// (such as install_faucet) that a Local Services Campaign can target.
message LocalServiceIdInfo {
  // The criterion resource name.
  string service_id = 1;
}

// A Search Theme criterion only on Performance Max campaign. Represents a
// keyword-like advertiser input.
message SearchThemeInfo {
  // Each Search Theme has a value of a simple string, like keywords.
  // There are limits on overall length, allowed characters, and number
  // of words.
  string text = 1;
}

// Represents a Brand Criterion used for targeting based on commercial knowledge
// graph.
message BrandInfo {
  // The Commercial KG MID for the brand.
  optional string entity_id = 1;
}

// A Brand List Criterion is used to specify a list of brands.  The list is
// represented as a SharedSet id type BRAND_HINT. A criterion of this type can
// be either targeted or excluded.
message BrandListInfo {
  // Shared set resource name of the brand list.
  optional string shared_set = 1;
}