/
classes.rb
8475 lines (7053 loc) · 366 KB
/
classes.rb
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
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Copyright 2015 Google Inc.
#
# 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.
require 'date'
require 'google/apis/core/base_service'
require 'google/apis/core/json_representation'
require 'google/apis/core/hashable'
require 'google/apis/errors'
module Google
module Apis
module DisplayvideoV1
# Request message for ManualTriggerService.ActivateManualTrigger.
class ActivateManualTriggerRequest
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# Configuration for custom Active View video viewability metrics.
class ActiveViewVideoViewabilityMetricConfig
include Google::Apis::Core::Hashable
# Required. The display name of the custom metric.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# The minimum visible video duration required (in seconds) in order for an
# impression to be recorded. You must specify minimum_duration, minimum_quartile
# or both. If both are specified, an impression meets the metric criteria if
# either requirement is met (whichever happens first).
# Corresponds to the JSON property `minimumDuration`
# @return [String]
attr_accessor :minimum_duration
# The minimum visible video duration required, based on the video quartiles, in
# order for an impression to be recorded. You must specify minimum_duration,
# minimum_quartile or both. If both are specified, an impression meets the
# metric criteria if either requirement is met (whichever happens first).
# Corresponds to the JSON property `minimumQuartile`
# @return [String]
attr_accessor :minimum_quartile
# Required. The minimum percentage of the video ad's pixels visible on the
# screen in order for an impression to be recorded.
# Corresponds to the JSON property `minimumViewability`
# @return [String]
attr_accessor :minimum_viewability
# Required. The minimum percentage of the video ad's volume required in order
# for an impression to be recorded.
# Corresponds to the JSON property `minimumVolume`
# @return [String]
attr_accessor :minimum_volume
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@minimum_duration = args[:minimum_duration] if args.key?(:minimum_duration)
@minimum_quartile = args[:minimum_quartile] if args.key?(:minimum_quartile)
@minimum_viewability = args[:minimum_viewability] if args.key?(:minimum_viewability)
@minimum_volume = args[:minimum_volume] if args.key?(:minimum_volume)
end
end
# Details of Adloox settings.
class Adloox
include Google::Apis::Core::Hashable
# Adloox's brand safety settings.
# Corresponds to the JSON property `excludedAdlooxCategories`
# @return [Array<String>]
attr_accessor :excluded_adloox_categories
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@excluded_adloox_categories = args[:excluded_adloox_categories] if args.key?(:excluded_adloox_categories)
end
end
# A single advertiser in Display & Video 360 (DV360).
class Advertiser
include Google::Apis::Core::Hashable
# Ad server related settings of an advertiser.
# Corresponds to the JSON property `adServerConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserAdServerConfig]
attr_accessor :ad_server_config
# Output only. The unique ID of the advertiser. Assigned by the system.
# Corresponds to the JSON property `advertiserId`
# @return [Fixnum]
attr_accessor :advertiser_id
# Creatives related settings of an advertiser.
# Corresponds to the JSON property `creativeConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserCreativeConfig]
attr_accessor :creative_config
# Settings that control how advertiser related data may be accessed.
# Corresponds to the JSON property `dataAccessConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserDataAccessConfig]
attr_accessor :data_access_config
# Required. The display name of the advertiser. Must be UTF-8 encoded with a
# maximum size of 240 bytes.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Required. Controls whether or not insertion orders and line items of the
# advertiser can spend their budgets and bid on inventory. * Accepted values are
# `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to
# `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30 days
# from when it was first scheduled for deletion.
# Corresponds to the JSON property `entityStatus`
# @return [String]
attr_accessor :entity_status
# General settings of an advertiser.
# Corresponds to the JSON property `generalConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserGeneralConfig]
attr_accessor :general_config
# Integration details of an entry.
# Corresponds to the JSON property `integrationDetails`
# @return [Google::Apis::DisplayvideoV1::IntegrationDetails]
attr_accessor :integration_details
# Output only. The resource name of the advertiser.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Required. Immutable. The unique ID of the partner that the advertiser belongs
# to.
# Corresponds to the JSON property `partnerId`
# @return [Fixnum]
attr_accessor :partner_id
# Targeting settings related to ad serving of an advertiser.
# Corresponds to the JSON property `servingConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserTargetingConfig]
attr_accessor :serving_config
# Output only. The timestamp when the advertiser was last updated. Assigned by
# the system.
# Corresponds to the JSON property `updateTime`
# @return [String]
attr_accessor :update_time
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ad_server_config = args[:ad_server_config] if args.key?(:ad_server_config)
@advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
@creative_config = args[:creative_config] if args.key?(:creative_config)
@data_access_config = args[:data_access_config] if args.key?(:data_access_config)
@display_name = args[:display_name] if args.key?(:display_name)
@entity_status = args[:entity_status] if args.key?(:entity_status)
@general_config = args[:general_config] if args.key?(:general_config)
@integration_details = args[:integration_details] if args.key?(:integration_details)
@name = args[:name] if args.key?(:name)
@partner_id = args[:partner_id] if args.key?(:partner_id)
@serving_config = args[:serving_config] if args.key?(:serving_config)
@update_time = args[:update_time] if args.key?(:update_time)
end
end
# Ad server related settings of an advertiser.
class AdvertiserAdServerConfig
include Google::Apis::Core::Hashable
# Settings for advertisers that use both Campaign Manager 360 (CM360) and third-
# party ad servers.
# Corresponds to the JSON property `cmHybridConfig`
# @return [Google::Apis::DisplayvideoV1::CmHybridConfig]
attr_accessor :cm_hybrid_config
# Settings for advertisers that use third-party ad servers only.
# Corresponds to the JSON property `thirdPartyOnlyConfig`
# @return [Google::Apis::DisplayvideoV1::ThirdPartyOnlyConfig]
attr_accessor :third_party_only_config
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@cm_hybrid_config = args[:cm_hybrid_config] if args.key?(:cm_hybrid_config)
@third_party_only_config = args[:third_party_only_config] if args.key?(:third_party_only_config)
end
end
# Creatives related settings of an advertiser.
class AdvertiserCreativeConfig
include Google::Apis::Core::Hashable
# Whether or not the advertiser is enabled for dynamic creatives.
# Corresponds to the JSON property `dynamicCreativeEnabled`
# @return [Boolean]
attr_accessor :dynamic_creative_enabled
alias_method :dynamic_creative_enabled?, :dynamic_creative_enabled
# An ID for configuring campaign monitoring provided by Integral Ad Service (IAS)
# . The DV360 system will append an IAS "Campaign Monitor" tag containing this
# ID to the creative tag.
# Corresponds to the JSON property `iasClientId`
# @return [Fixnum]
attr_accessor :ias_client_id
# Whether or not to use DV360's Online Behavioral Advertising (OBA) compliance.
# Warning: Changing OBA settings may cause the audit status of your creatives to
# be reset by some ad exchanges, making them ineligible to serve until they are
# re-approved.
# Corresponds to the JSON property `obaComplianceDisabled`
# @return [Boolean]
attr_accessor :oba_compliance_disabled
alias_method :oba_compliance_disabled?, :oba_compliance_disabled
# By setting this field to `true`, you, on behalf of your company, authorize
# Google to use video creatives associated with this Display & Video 360
# advertiser to provide reporting and features related to the advertiser's
# television campaigns. Applicable only when the advertiser has a CM360 hybrid
# ad server configuration.
# Corresponds to the JSON property `videoCreativeDataSharingAuthorized`
# @return [Boolean]
attr_accessor :video_creative_data_sharing_authorized
alias_method :video_creative_data_sharing_authorized?, :video_creative_data_sharing_authorized
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@dynamic_creative_enabled = args[:dynamic_creative_enabled] if args.key?(:dynamic_creative_enabled)
@ias_client_id = args[:ias_client_id] if args.key?(:ias_client_id)
@oba_compliance_disabled = args[:oba_compliance_disabled] if args.key?(:oba_compliance_disabled)
@video_creative_data_sharing_authorized = args[:video_creative_data_sharing_authorized] if args.key?(:video_creative_data_sharing_authorized)
end
end
# Settings that control how advertiser related data may be accessed.
class AdvertiserDataAccessConfig
include Google::Apis::Core::Hashable
# Structured Data Files (SDF) settings of an advertiser.
# Corresponds to the JSON property `sdfConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserSdfConfig]
attr_accessor :sdf_config
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@sdf_config = args[:sdf_config] if args.key?(:sdf_config)
end
end
# General settings of an advertiser.
class AdvertiserGeneralConfig
include Google::Apis::Core::Hashable
# Required. Immutable. Advertiser's currency in ISO 4217 format. Accepted codes
# and the currencies they represent are: Currency Code : Currency Name * `ARS` :
# Argentine Peso * `AUD` : Australian Dollar * `BRL` : Brazilian Real * `CAD` :
# Canadian Dollar * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese
# Yuan * `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone * `
# EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound * `HKD` : Hong
# Kong Dollar * `HUF` : Hungarian Forint * `IDR` : Indonesian Rupiah * `ILS` :
# Israeli Shekel * `INR` : Indian Rupee * `JPY` : Japanese Yen * `KRW` : South
# Korean Won * `MXN` : Mexican Pesos * `MYR` : Malaysian Ringgit * `NGN` :
# Nigerian Naira * `NOK` : Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` :
# Peruvian Nuevo Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` :
# Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD` : New
# Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand
# Corresponds to the JSON property `currencyCode`
# @return [String]
attr_accessor :currency_code
# Required. The domain URL of the advertiser's primary website. The system will
# send this information to publishers that require website URL to associate a
# campaign with an advertiser. Provide a URL with no path or query string,
# beginning with `http:` or `https:`. For example, http://www.example.com
# Corresponds to the JSON property `domainUrl`
# @return [String]
attr_accessor :domain_url
# Output only. The standard TZ database name of the advertiser's time zone. For
# example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/
# List_of_tz_database_time_zones For CM360 hybrid advertisers, the time zone is
# the same as that of the associated CM360 account; for third-party only
# advertisers, the time zone is the same as that of the parent partner.
# Corresponds to the JSON property `timeZone`
# @return [String]
attr_accessor :time_zone
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@currency_code = args[:currency_code] if args.key?(:currency_code)
@domain_url = args[:domain_url] if args.key?(:domain_url)
@time_zone = args[:time_zone] if args.key?(:time_zone)
end
end
# Structured Data Files (SDF) settings of an advertiser.
class AdvertiserSdfConfig
include Google::Apis::Core::Hashable
# Whether or not this advertiser overrides the SDF configuration of its parent
# partner. By default, an advertiser inherits the SDF configuration from the
# parent partner. To override the partner configuration, set this field to `true`
# and provide the new configuration in sdfConfig.
# Corresponds to the JSON property `overridePartnerSdfConfig`
# @return [Boolean]
attr_accessor :override_partner_sdf_config
alias_method :override_partner_sdf_config?, :override_partner_sdf_config
# Structured Data File (SDF) related settings.
# Corresponds to the JSON property `sdfConfig`
# @return [Google::Apis::DisplayvideoV1::SdfConfig]
attr_accessor :sdf_config
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@override_partner_sdf_config = args[:override_partner_sdf_config] if args.key?(:override_partner_sdf_config)
@sdf_config = args[:sdf_config] if args.key?(:sdf_config)
end
end
# Targeting settings related to ad serving of an advertiser.
class AdvertiserTargetingConfig
include Google::Apis::Core::Hashable
# Whether or not connected TV devices are exempt from viewability targeting for
# all video line items under the advertiser.
# Corresponds to the JSON property `exemptTvFromViewabilityTargeting`
# @return [Boolean]
attr_accessor :exempt_tv_from_viewability_targeting
alias_method :exempt_tv_from_viewability_targeting?, :exempt_tv_from_viewability_targeting
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@exempt_tv_from_viewability_targeting = args[:exempt_tv_from_viewability_targeting] if args.key?(:exempt_tv_from_viewability_targeting)
end
end
# Represents a targetable age range. This will be populated in the details field
# of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE`
# .
class AgeRangeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The age range of an audience. We only support targeting a
# continuous age range of an audience. Thus, the age range represented in this
# field can be 1) targeted solely, or, 2) part of a larger continuous age range.
# The reach of a continuous age range targeting can be expanded by also
# targeting an audience of an unknown age.
# Corresponds to the JSON property `ageRange`
# @return [String]
attr_accessor :age_range
# Required. The targeting_option_id of a TargetingOption of type `
# TARGETING_TYPE_AGE_RANGE`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_range = args[:age_range] if args.key?(:age_range)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable age range. This will be populated in the
# age_range_details field when targeting_type is `TARGETING_TYPE_AGE_RANGE`.
class AgeRangeTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The age range of an audience.
# Corresponds to the JSON property `ageRange`
# @return [String]
attr_accessor :age_range
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_range = args[:age_range] if args.key?(:age_range)
end
end
# Details for assigned app targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_APP`.
class AppAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The ID of the app. Android's Play store app uses bundle ID, for
# example `com.google.android.gm`. Apple's App store app ID uses 9 digit string,
# for example `422689480`.
# Corresponds to the JSON property `appId`
# @return [String]
attr_accessor :app_id
# Output only. The display name of the app.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Indicates if this option is being negatively targeted.
# Corresponds to the JSON property `negative`
# @return [Boolean]
attr_accessor :negative
alias_method :negative?, :negative
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@app_id = args[:app_id] if args.key?(:app_id)
@display_name = args[:display_name] if args.key?(:display_name)
@negative = args[:negative] if args.key?(:negative)
end
end
# Details for assigned app category targeting option. This will be populated in
# the app_category_details field of an AssignedTargetingOption when
# targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
class AppCategoryAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The display name of the app category.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Indicates if this option is being negatively targeted.
# Corresponds to the JSON property `negative`
# @return [Boolean]
attr_accessor :negative
alias_method :negative?, :negative
# Required. The targeting_option_id field when targeting_type is `
# TARGETING_TYPE_APP_CATEGORY`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@negative = args[:negative] if args.key?(:negative)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable collection of apps. A collection lets you target
# dynamic groups of related apps that are maintained by the platform, for
# example `All Apps/Google Play/Games`. This will be populated in the
# app_category_details field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`
# .
class AppCategoryTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The name of the app collection.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
end
end
# A single asset.
class Asset
include Google::Apis::Core::Hashable
# The asset content. For uploaded assets, the content is the serving path.
# Corresponds to the JSON property `content`
# @return [String]
attr_accessor :content
# Media ID of the uploaded asset. This is a unique identifier for the asset.
# This ID can be passed to other API calls, e.g. CreateCreative to associate the
# asset with a creative.
# Corresponds to the JSON property `mediaId`
# @return [Fixnum]
attr_accessor :media_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content = args[:content] if args.key?(:content)
@media_id = args[:media_id] if args.key?(:media_id)
end
end
# Asset association for the creative.
class AssetAssociation
include Google::Apis::Core::Hashable
# A single asset.
# Corresponds to the JSON property `asset`
# @return [Google::Apis::DisplayvideoV1::Asset]
attr_accessor :asset
# The role of this asset for the creative.
# Corresponds to the JSON property `role`
# @return [String]
attr_accessor :role
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@asset = args[:asset] if args.key?(:asset)
@role = args[:role] if args.key?(:role)
end
end
# An assignment between a targetable inventory source and an inventory source
# group.
class AssignedInventorySource
include Google::Apis::Core::Hashable
# Output only. The unique ID of the assigned inventory source. The ID is only
# unique within a given inventory source group. It may be reused in other
# contexts.
# Corresponds to the JSON property `assignedInventorySourceId`
# @return [Fixnum]
attr_accessor :assigned_inventory_source_id
# Required. The ID of the inventory source entity being targeted.
# Corresponds to the JSON property `inventorySourceId`
# @return [String]
attr_accessor :inventory_source_id
# Output only. The resource name of the assigned inventory source.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@assigned_inventory_source_id = args[:assigned_inventory_source_id] if args.key?(:assigned_inventory_source_id)
@inventory_source_id = args[:inventory_source_id] if args.key?(:inventory_source_id)
@name = args[:name] if args.key?(:name)
end
end
# An assignment between a location list and a relevant targeting option.
# Currently, geo region targeting options are the only supported option for
# assignment.
class AssignedLocation
include Google::Apis::Core::Hashable
# Output only. The unique ID of the assigned location. The ID is only unique
# within a location list. It may be reused in other contexts.
# Corresponds to the JSON property `assignedLocationId`
# @return [Fixnum]
attr_accessor :assigned_location_id
# Output only. The resource name of the assigned location.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Required. The ID of the targeting option assigned to the location list. Must
# be of type TARGETING_TYPE_GEO_REGION.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@assigned_location_id = args[:assigned_location_id] if args.key?(:assigned_location_id)
@name = args[:name] if args.key?(:name)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# A single assigned targeting option, which defines the state of a targeting
# option for an entity with targeting settings.
class AssignedTargetingOption
include Google::Apis::Core::Hashable
# Represents a targetable age range. This will be populated in the details field
# of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE`
# .
# Corresponds to the JSON property `ageRangeDetails`
# @return [Google::Apis::DisplayvideoV1::AgeRangeAssignedTargetingOptionDetails]
attr_accessor :age_range_details
# Details for assigned app category targeting option. This will be populated in
# the app_category_details field of an AssignedTargetingOption when
# targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
# Corresponds to the JSON property `appCategoryDetails`
# @return [Google::Apis::DisplayvideoV1::AppCategoryAssignedTargetingOptionDetails]
attr_accessor :app_category_details
# Details for assigned app targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_APP`.
# Corresponds to the JSON property `appDetails`
# @return [Google::Apis::DisplayvideoV1::AppAssignedTargetingOptionDetails]
attr_accessor :app_details
# Output only. The unique ID of the assigned targeting option. The ID is only
# unique within a given line item and targeting type. It may be reused in other
# contexts.
# Corresponds to the JSON property `assignedTargetingOptionId`
# @return [String]
attr_accessor :assigned_targeting_option_id
# Assigned audience group targeting option details. This will be populated in
# the details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is UNION,
# except for excluded_first_and_third_party_audience_group and
# excluded_google_audience_group, of which COMPLEMENT is UNION'ed with other
# groups.
# Corresponds to the JSON property `audienceGroupDetails`
# @return [Google::Apis::DisplayvideoV1::AudienceGroupAssignedTargetingOptionDetails]
attr_accessor :audience_group_details
# Represents an assigned authorized seller status. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
# Corresponds to the JSON property `authorizedSellerStatusDetails`
# @return [Google::Apis::DisplayvideoV1::AuthorizedSellerStatusAssignedTargetingOptionDetails]
attr_accessor :authorized_seller_status_details
# Details for assigned browser targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_BROWSER`.
# Corresponds to the JSON property `browserDetails`
# @return [Google::Apis::DisplayvideoV1::BrowserAssignedTargetingOptionDetails]
attr_accessor :browser_details
# Details for assigned carrier and ISP targeting option. This will be populated
# in the details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_CARRIER_AND_ISP`.
# Corresponds to the JSON property `carrierAndIspDetails`
# @return [Google::Apis::DisplayvideoV1::CarrierAndIspAssignedTargetingOptionDetails]
attr_accessor :carrier_and_isp_details
# Assigned category targeting option details. This will be populated in the
# category_details field when targeting_type is `TARGETING_TYPE_CATEGORY`.
# Corresponds to the JSON property `categoryDetails`
# @return [Google::Apis::DisplayvideoV1::CategoryAssignedTargetingOptionDetails]
attr_accessor :category_details
# Details for assigned channel targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_CHANNEL`.
# Corresponds to the JSON property `channelDetails`
# @return [Google::Apis::DisplayvideoV1::ChannelAssignedTargetingOptionDetails]
attr_accessor :channel_details
# Assigned content instream position targeting option details. This will be
# populated in the content_instream_position_details field when targeting_type
# is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
# Corresponds to the JSON property `contentInstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentInstreamPositionAssignedTargetingOptionDetails]
attr_accessor :content_instream_position_details
# Assigned content outstream position targeting option details. This will be
# populated in the content_outstream_position_details field when targeting_type
# is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
# Corresponds to the JSON property `contentOutstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentOutstreamPositionAssignedTargetingOptionDetails]
attr_accessor :content_outstream_position_details
# Representation of a segment of time defined on a specific day of the week and
# with a start and end time. The time represented by `start_hour` must be before
# the time represented by `end_hour`.
# Corresponds to the JSON property `dayAndTimeDetails`
# @return [Google::Apis::DisplayvideoV1::DayAndTimeAssignedTargetingOptionDetails]
attr_accessor :day_and_time_details
# Assigned device make and model targeting option details. This will be
# populated in the device_make_model_details field when targeting_type is `
# TARGETING_TYPE_DEVICE_MAKE_MODEL`.
# Corresponds to the JSON property `deviceMakeModelDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceMakeModelAssignedTargetingOptionDetails]
attr_accessor :device_make_model_details
# Targeting details for device type. This will be populated in the details field
# of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_DEVICE_TYPE`.
# Corresponds to the JSON property `deviceTypeDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceTypeAssignedTargetingOptionDetails]
attr_accessor :device_type_details
# Targeting details for digital content label. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
# Corresponds to the JSON property `digitalContentLabelExclusionDetails`
# @return [Google::Apis::DisplayvideoV1::DigitalContentLabelAssignedTargetingOptionDetails]
attr_accessor :digital_content_label_exclusion_details
# Assigned environment targeting option details. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_ENVIRONMENT`.
# Corresponds to the JSON property `environmentDetails`
# @return [Google::Apis::DisplayvideoV1::EnvironmentAssignedTargetingOptionDetails]
attr_accessor :environment_details
# Details for assigned exchange targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_EXCHANGE`.
# Corresponds to the JSON property `exchangeDetails`
# @return [Google::Apis::DisplayvideoV1::ExchangeAssignedTargetingOptionDetails]
attr_accessor :exchange_details
# Details for assigned gender targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARTGETING_TYPE_GENDER`.
# Corresponds to the JSON property `genderDetails`
# @return [Google::Apis::DisplayvideoV1::GenderAssignedTargetingOptionDetails]
attr_accessor :gender_details
# Details for assigned geographic region targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is `TARGETING_TYPE_GEO_REGION`.
# Corresponds to the JSON property `geoRegionDetails`
# @return [Google::Apis::DisplayvideoV1::GeoRegionAssignedTargetingOptionDetails]
attr_accessor :geo_region_details
# Details for assigned household income targeting option. This will be populated
# in the details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_HOUSEHOLD_INCOME`.
# Corresponds to the JSON property `householdIncomeDetails`
# @return [Google::Apis::DisplayvideoV1::HouseholdIncomeAssignedTargetingOptionDetails]
attr_accessor :household_income_details
# Output only. The inheritance status of the assigned targeting option.
# Corresponds to the JSON property `inheritance`
# @return [String]
attr_accessor :inheritance
# Targeting details for inventory source. This will be populated in the details
# field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_INVENTORY_SOURCE`.
# Corresponds to the JSON property `inventorySourceDetails`
# @return [Google::Apis::DisplayvideoV1::InventorySourceAssignedTargetingOptionDetails]
attr_accessor :inventory_source_details
# Targeting details for inventory source group. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
# Corresponds to the JSON property `inventorySourceGroupDetails`
# @return [Google::Apis::DisplayvideoV1::InventorySourceGroupAssignedTargetingOptionDetails]
attr_accessor :inventory_source_group_details
# Details for assigned keyword targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_KEYWORD`.
# Corresponds to the JSON property `keywordDetails`
# @return [Google::Apis::DisplayvideoV1::KeywordAssignedTargetingOptionDetails]
attr_accessor :keyword_details
# Details for assigned language targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_LANGUAGE`.
# Corresponds to the JSON property `languageDetails`
# @return [Google::Apis::DisplayvideoV1::LanguageAssignedTargetingOptionDetails]
attr_accessor :language_details
# Output only. The resource name for this assigned targeting option.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Targeting details for negative keyword list. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.
# Corresponds to the JSON property `negativeKeywordListDetails`
# @return [Google::Apis::DisplayvideoV1::NegativeKeywordListAssignedTargetingOptionDetails]
attr_accessor :negative_keyword_list_details
# On screen position targeting option details. This will be populated in the
# on_screen_position_details field when targeting_type is `
# TARGETING_TYPE_ON_SCREEN_POSITION`.
# Corresponds to the JSON property `onScreenPositionDetails`
# @return [Google::Apis::DisplayvideoV1::OnScreenPositionAssignedTargetingOptionDetails]
attr_accessor :on_screen_position_details
# Assigned operating system targeting option details. This will be populated in
# the operating_system_details field when targeting_type is `
# TARGETING_TYPE_OPERATING_SYSTEM`.
# Corresponds to the JSON property `operatingSystemDetails`
# @return [Google::Apis::DisplayvideoV1::OperatingSystemAssignedTargetingOptionDetails]
attr_accessor :operating_system_details
# Details for assigned parental status targeting option. This will be populated
# in the details field of an AssignedTargetingOption when targeting_type is `
# TARTGETING_TYPE_PARENTAL_STATUS`.
# Corresponds to the JSON property `parentalStatusDetails`
# @return [Google::Apis::DisplayvideoV1::ParentalStatusAssignedTargetingOptionDetails]
attr_accessor :parental_status_details
# Targeting details for proximity location list. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
# Corresponds to the JSON property `proximityLocationListDetails`
# @return [Google::Apis::DisplayvideoV1::ProximityLocationListAssignedTargetingOptionDetails]
attr_accessor :proximity_location_list_details
# Targeting details for regional location list. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
# Corresponds to the JSON property `regionalLocationListDetails`
# @return [Google::Apis::DisplayvideoV1::RegionalLocationListAssignedTargetingOptionDetails]
attr_accessor :regional_location_list_details
# Targeting details for sensitive category. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
# Corresponds to the JSON property `sensitiveCategoryExclusionDetails`
# @return [Google::Apis::DisplayvideoV1::SensitiveCategoryAssignedTargetingOptionDetails]
attr_accessor :sensitive_category_exclusion_details
# Details for assigned sub-exchange targeting option. This will be populated in
# the details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_SUB_EXCHANGE`.
# Corresponds to the JSON property `subExchangeDetails`
# @return [Google::Apis::DisplayvideoV1::SubExchangeAssignedTargetingOptionDetails]
attr_accessor :sub_exchange_details
# Output only. Identifies the type of this assigned targeting option.
# Corresponds to the JSON property `targetingType`
# @return [String]
attr_accessor :targeting_type
# Assigned third party verifier targeting option details. This will be populated
# in the details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
# Corresponds to the JSON property `thirdPartyVerifierDetails`
# @return [Google::Apis::DisplayvideoV1::ThirdPartyVerifierAssignedTargetingOptionDetails]
attr_accessor :third_party_verifier_details
# Details for assigned URL targeting option. This will be populated in the
# details field of an AssignedTargetingOption when targeting_type is `
# TARGETING_TYPE_URL`.
# Corresponds to the JSON property `urlDetails`
# @return [Google::Apis::DisplayvideoV1::UrlAssignedTargetingOptionDetails]
attr_accessor :url_details
# User rewarded content targeting option details. This will be populated in the
# user_rewarded_content_details field when targeting_type is `
# TARGETING_TYPE_USER_REWARDED_CONTENT`.
# Corresponds to the JSON property `userRewardedContentDetails`
# @return [Google::Apis::DisplayvideoV1::UserRewardedContentAssignedTargetingOptionDetails]
attr_accessor :user_rewarded_content_details
# Video player size targeting option details. This will be populated in the
# video_player_size_details field when targeting_type is `
# TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options is not
# supported. Remove all video player size targeting options to achieve this
# effect.
# Corresponds to the JSON property `videoPlayerSizeDetails`
# @return [Google::Apis::DisplayvideoV1::VideoPlayerSizeAssignedTargetingOptionDetails]
attr_accessor :video_player_size_details
# Assigned viewability targeting option details. This will be populated in the
# viewability_details field of an AssignedTargetingOption when targeting_type is
# `TARGETING_TYPE_VIEWABILITY`.
# Corresponds to the JSON property `viewabilityDetails`
# @return [Google::Apis::DisplayvideoV1::ViewabilityAssignedTargetingOptionDetails]
attr_accessor :viewability_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_range_details = args[:age_range_details] if args.key?(:age_range_details)
@app_category_details = args[:app_category_details] if args.key?(:app_category_details)
@app_details = args[:app_details] if args.key?(:app_details)
@assigned_targeting_option_id = args[:assigned_targeting_option_id] if args.key?(:assigned_targeting_option_id)
@audience_group_details = args[:audience_group_details] if args.key?(:audience_group_details)
@authorized_seller_status_details = args[:authorized_seller_status_details] if args.key?(:authorized_seller_status_details)
@browser_details = args[:browser_details] if args.key?(:browser_details)
@carrier_and_isp_details = args[:carrier_and_isp_details] if args.key?(:carrier_and_isp_details)
@category_details = args[:category_details] if args.key?(:category_details)
@channel_details = args[:channel_details] if args.key?(:channel_details)
@content_instream_position_details = args[:content_instream_position_details] if args.key?(:content_instream_position_details)
@content_outstream_position_details = args[:content_outstream_position_details] if args.key?(:content_outstream_position_details)
@day_and_time_details = args[:day_and_time_details] if args.key?(:day_and_time_details)
@device_make_model_details = args[:device_make_model_details] if args.key?(:device_make_model_details)
@device_type_details = args[:device_type_details] if args.key?(:device_type_details)
@digital_content_label_exclusion_details = args[:digital_content_label_exclusion_details] if args.key?(:digital_content_label_exclusion_details)
@environment_details = args[:environment_details] if args.key?(:environment_details)
@exchange_details = args[:exchange_details] if args.key?(:exchange_details)
@gender_details = args[:gender_details] if args.key?(:gender_details)
@geo_region_details = args[:geo_region_details] if args.key?(:geo_region_details)
@household_income_details = args[:household_income_details] if args.key?(:household_income_details)
@inheritance = args[:inheritance] if args.key?(:inheritance)
@inventory_source_details = args[:inventory_source_details] if args.key?(:inventory_source_details)
@inventory_source_group_details = args[:inventory_source_group_details] if args.key?(:inventory_source_group_details)
@keyword_details = args[:keyword_details] if args.key?(:keyword_details)
@language_details = args[:language_details] if args.key?(:language_details)
@name = args[:name] if args.key?(:name)
@negative_keyword_list_details = args[:negative_keyword_list_details] if args.key?(:negative_keyword_list_details)
@on_screen_position_details = args[:on_screen_position_details] if args.key?(:on_screen_position_details)
@operating_system_details = args[:operating_system_details] if args.key?(:operating_system_details)
@parental_status_details = args[:parental_status_details] if args.key?(:parental_status_details)
@proximity_location_list_details = args[:proximity_location_list_details] if args.key?(:proximity_location_list_details)
@regional_location_list_details = args[:regional_location_list_details] if args.key?(:regional_location_list_details)
@sensitive_category_exclusion_details = args[:sensitive_category_exclusion_details] if args.key?(:sensitive_category_exclusion_details)
@sub_exchange_details = args[:sub_exchange_details] if args.key?(:sub_exchange_details)
@targeting_type = args[:targeting_type] if args.key?(:targeting_type)
@third_party_verifier_details = args[:third_party_verifier_details] if args.key?(:third_party_verifier_details)
@url_details = args[:url_details] if args.key?(:url_details)
@user_rewarded_content_details = args[:user_rewarded_content_details] if args.key?(:user_rewarded_content_details)
@video_player_size_details = args[:video_player_size_details] if args.key?(:video_player_size_details)
@viewability_details = args[:viewability_details] if args.key?(:viewability_details)
end
end