google-apis-displayvideo_v4 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -73,6 +73,50 @@ module Google
73
73
  end
74
74
  end
75
75
 
76
+ # A single ad asset.
77
+ class AdAsset
78
+ include Google::Apis::Core::Hashable
79
+
80
+ # Output only. The ID of the ad asset. Referred to as the asset ID when assigned
81
+ # to an ad.
82
+ # Corresponds to the JSON property `adAssetId`
83
+ # @return [Fixnum]
84
+ attr_accessor :ad_asset_id
85
+
86
+ # Required. The type of the ad asset.
87
+ # Corresponds to the JSON property `adAssetType`
88
+ # @return [String]
89
+ attr_accessor :ad_asset_type
90
+
91
+ # Output only. The entity status of the ad asset.
92
+ # Corresponds to the JSON property `entityStatus`
93
+ # @return [String]
94
+ attr_accessor :entity_status
95
+
96
+ # Identifier. The resource name of the ad asset.
97
+ # Corresponds to the JSON property `name`
98
+ # @return [String]
99
+ attr_accessor :name
100
+
101
+ # Data for a YouTube video ad asset.
102
+ # Corresponds to the JSON property `youtubeVideoAsset`
103
+ # @return [Google::Apis::DisplayvideoV4::YoutubeVideoAsset]
104
+ attr_accessor :youtube_video_asset
105
+
106
+ def initialize(**args)
107
+ update!(**args)
108
+ end
109
+
110
+ # Update properties of this object
111
+ def update!(**args)
112
+ @ad_asset_id = args[:ad_asset_id] if args.key?(:ad_asset_id)
113
+ @ad_asset_type = args[:ad_asset_type] if args.key?(:ad_asset_type)
114
+ @entity_status = args[:entity_status] if args.key?(:entity_status)
115
+ @name = args[:name] if args.key?(:name)
116
+ @youtube_video_asset = args[:youtube_video_asset] if args.key?(:youtube_video_asset)
117
+ end
118
+ end
119
+
76
120
  # A single ad group associated with a line item.
77
121
  class AdGroup
78
122
  include Google::Apis::Core::Hashable
@@ -159,11 +203,19 @@ module Google
159
203
  # @return [Fixnum]
160
204
  attr_accessor :ad_group_ad_id
161
205
 
162
- # The unique ID of the ad group that the ad belongs to.
206
+ # The unique ID of the ad group that the ad belongs to. *Caution*: Parent ad
207
+ # groups for Demand Gen ads are not currently retrieveable using `advertisers.
208
+ # adGroups.list` or `advertisers.adGroups.get`. Demand Gen ads can be identified
209
+ # by the absence of the `ad_details` union field.
163
210
  # Corresponds to the JSON property `adGroupId`
164
211
  # @return [Fixnum]
165
212
  attr_accessor :ad_group_id
166
213
 
214
+ # A single ad policy associated with an ad group ad.
215
+ # Corresponds to the JSON property `adPolicy`
216
+ # @return [Google::Apis::DisplayvideoV4::AdPolicy]
217
+ attr_accessor :ad_policy
218
+
167
219
  # List of URLs used by the ad.
168
220
  # Corresponds to the JSON property `adUrls`
169
221
  # @return [Array<Google::Apis::DisplayvideoV4::AdUrl>]
@@ -238,6 +290,7 @@ module Google
238
290
  def update!(**args)
239
291
  @ad_group_ad_id = args[:ad_group_ad_id] if args.key?(:ad_group_ad_id)
240
292
  @ad_group_id = args[:ad_group_id] if args.key?(:ad_group_id)
293
+ @ad_policy = args[:ad_policy] if args.key?(:ad_policy)
241
294
  @ad_urls = args[:ad_urls] if args.key?(:ad_urls)
242
295
  @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
243
296
  @audio_ad = args[:audio_ad] if args.key?(:audio_ad)
@@ -254,21 +307,681 @@ module Google
254
307
  end
255
308
  end
256
309
 
257
- # Wrapper object associating an AssignedTargetingOption resource and the ad
258
- # group it is assigned to.
259
- class AdGroupAssignedTargetingOption
310
+ # Wrapper object associating an AssignedTargetingOption resource and the ad
311
+ # group it is assigned to.
312
+ class AdGroupAssignedTargetingOption
313
+ include Google::Apis::Core::Hashable
314
+
315
+ # The ID of the ad group the assigned targeting option is assigned to.
316
+ # Corresponds to the JSON property `adGroupId`
317
+ # @return [Fixnum]
318
+ attr_accessor :ad_group_id
319
+
320
+ # A single assigned targeting option, which defines the state of a targeting
321
+ # option for an entity with targeting settings.
322
+ # Corresponds to the JSON property `assignedTargetingOption`
323
+ # @return [Google::Apis::DisplayvideoV4::AssignedTargetingOption]
324
+ attr_accessor :assigned_targeting_option
325
+
326
+ def initialize(**args)
327
+ update!(**args)
328
+ end
329
+
330
+ # Update properties of this object
331
+ def update!(**args)
332
+ @ad_group_id = args[:ad_group_id] if args.key?(:ad_group_id)
333
+ @assigned_targeting_option = args[:assigned_targeting_option] if args.key?(:assigned_targeting_option)
334
+ end
335
+ end
336
+
337
+ # A single ad policy associated with an ad group ad.
338
+ class AdPolicy
339
+ include Google::Apis::Core::Hashable
340
+
341
+ # The policy approval status of an ad, indicating the approval decision.
342
+ # Corresponds to the JSON property `adPolicyApprovalStatus`
343
+ # @return [String]
344
+ attr_accessor :ad_policy_approval_status
345
+
346
+ # The policy review status of an ad, indicating where in the review process the
347
+ # ad is currently.
348
+ # Corresponds to the JSON property `adPolicyReviewStatus`
349
+ # @return [String]
350
+ attr_accessor :ad_policy_review_status
351
+
352
+ # The entries for each policy topic identified as relating to the ad. Each entry
353
+ # includes the topic, restriction level, and guidance on how to fix policy
354
+ # issues.
355
+ # Corresponds to the JSON property `adPolicyTopicEntry`
356
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyTopicEntry>]
357
+ attr_accessor :ad_policy_topic_entry
358
+
359
+ def initialize(**args)
360
+ update!(**args)
361
+ end
362
+
363
+ # Update properties of this object
364
+ def update!(**args)
365
+ @ad_policy_approval_status = args[:ad_policy_approval_status] if args.key?(:ad_policy_approval_status)
366
+ @ad_policy_review_status = args[:ad_policy_review_status] if args.key?(:ad_policy_review_status)
367
+ @ad_policy_topic_entry = args[:ad_policy_topic_entry] if args.key?(:ad_policy_topic_entry)
368
+ end
369
+ end
370
+
371
+ # Represents a country restriction.
372
+ class AdPolicyCriterionRestriction
373
+ include Google::Apis::Core::Hashable
374
+
375
+ # The country criterion id.
376
+ # Corresponds to the JSON property `countryCriterionId`
377
+ # @return [Fixnum]
378
+ attr_accessor :country_criterion_id
379
+
380
+ # Localized name for the country. May be empty.
381
+ # Corresponds to the JSON property `countryLabel`
382
+ # @return [String]
383
+ attr_accessor :country_label
384
+
385
+ def initialize(**args)
386
+ update!(**args)
387
+ end
388
+
389
+ # Update properties of this object
390
+ def update!(**args)
391
+ @country_criterion_id = args[:country_criterion_id] if args.key?(:country_criterion_id)
392
+ @country_label = args[:country_label] if args.key?(:country_label)
393
+ end
394
+ end
395
+
396
+ # Information on how to appeal a policy decision.
397
+ class AdPolicyTopicAppealInfo
398
+ include Google::Apis::Core::Hashable
399
+
400
+ # Only available when appeal_type is `APPEAL_FORM`.
401
+ # Corresponds to the JSON property `appealFormLink`
402
+ # @return [String]
403
+ attr_accessor :appeal_form_link
404
+
405
+ # Whether the decision can be appealed through a self-service appeal or an
406
+ # appeal form.
407
+ # Corresponds to the JSON property `appealType`
408
+ # @return [String]
409
+ attr_accessor :appeal_type
410
+
411
+ def initialize(**args)
412
+ update!(**args)
413
+ end
414
+
415
+ # Update properties of this object
416
+ def update!(**args)
417
+ @appeal_form_link = args[:appeal_form_link] if args.key?(:appeal_form_link)
418
+ @appeal_type = args[:appeal_type] if args.key?(:appeal_type)
419
+ end
420
+ end
421
+
422
+ # Details on ad serving constraints.
423
+ class AdPolicyTopicConstraint
424
+ include Google::Apis::Core::Hashable
425
+
426
+ # A list of countries where the ad cannot serve due to policy constraints.
427
+ # Corresponds to the JSON property `certificateDomainMismatchCountryList`
428
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyCountryConstraintList]
429
+ attr_accessor :certificate_domain_mismatch_country_list
430
+
431
+ # A list of countries where the ad cannot serve due to policy constraints.
432
+ # Corresponds to the JSON property `certificateMissingCountryList`
433
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyCountryConstraintList]
434
+ attr_accessor :certificate_missing_country_list
435
+
436
+ # A list of countries where the ad cannot serve due to policy constraints.
437
+ # Corresponds to the JSON property `countryConstraint`
438
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyCountryConstraintList]
439
+ attr_accessor :country_constraint
440
+
441
+ # Certificate is required to serve in any country and the existing certificate
442
+ # does not cover the ad's domain.
443
+ # Corresponds to the JSON property `globalCertificateDomainMismatch`
444
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyGlobalCertificateDomainMismatchConstraint]
445
+ attr_accessor :global_certificate_domain_mismatch
446
+
447
+ # Certificate is required to serve in any country.
448
+ # Corresponds to the JSON property `globalCertificateMissing`
449
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyGlobalCertificateMissingConstraint]
450
+ attr_accessor :global_certificate_missing
451
+
452
+ # Link to the form to request a certificate for the constraint.
453
+ # Corresponds to the JSON property `requestCertificateFormLink`
454
+ # @return [String]
455
+ attr_accessor :request_certificate_form_link
456
+
457
+ # Policy topic was constrained due to disapproval of the website for reseller
458
+ # purposes.
459
+ # Corresponds to the JSON property `resellerConstraint`
460
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicConstraintAdPolicyResellerConstraint]
461
+ attr_accessor :reseller_constraint
462
+
463
+ def initialize(**args)
464
+ update!(**args)
465
+ end
466
+
467
+ # Update properties of this object
468
+ def update!(**args)
469
+ @certificate_domain_mismatch_country_list = args[:certificate_domain_mismatch_country_list] if args.key?(:certificate_domain_mismatch_country_list)
470
+ @certificate_missing_country_list = args[:certificate_missing_country_list] if args.key?(:certificate_missing_country_list)
471
+ @country_constraint = args[:country_constraint] if args.key?(:country_constraint)
472
+ @global_certificate_domain_mismatch = args[:global_certificate_domain_mismatch] if args.key?(:global_certificate_domain_mismatch)
473
+ @global_certificate_missing = args[:global_certificate_missing] if args.key?(:global_certificate_missing)
474
+ @request_certificate_form_link = args[:request_certificate_form_link] if args.key?(:request_certificate_form_link)
475
+ @reseller_constraint = args[:reseller_constraint] if args.key?(:reseller_constraint)
476
+ end
477
+ end
478
+
479
+ # A list of countries where the ad cannot serve due to policy constraints.
480
+ class AdPolicyTopicConstraintAdPolicyCountryConstraintList
481
+ include Google::Apis::Core::Hashable
482
+
483
+ # Countries where the ad cannot serve.
484
+ # Corresponds to the JSON property `countries`
485
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyCriterionRestriction>]
486
+ attr_accessor :countries
487
+
488
+ def initialize(**args)
489
+ update!(**args)
490
+ end
491
+
492
+ # Update properties of this object
493
+ def update!(**args)
494
+ @countries = args[:countries] if args.key?(:countries)
495
+ end
496
+ end
497
+
498
+ # Certificate is required to serve in any country and the existing certificate
499
+ # does not cover the ad's domain.
500
+ class AdPolicyTopicConstraintAdPolicyGlobalCertificateDomainMismatchConstraint
501
+ include Google::Apis::Core::Hashable
502
+
503
+ def initialize(**args)
504
+ update!(**args)
505
+ end
506
+
507
+ # Update properties of this object
508
+ def update!(**args)
509
+ end
510
+ end
511
+
512
+ # Certificate is required to serve in any country.
513
+ class AdPolicyTopicConstraintAdPolicyGlobalCertificateMissingConstraint
514
+ include Google::Apis::Core::Hashable
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ end
523
+ end
524
+
525
+ # Policy topic was constrained due to disapproval of the website for reseller
526
+ # purposes.
527
+ class AdPolicyTopicConstraintAdPolicyResellerConstraint
528
+ include Google::Apis::Core::Hashable
529
+
530
+ def initialize(**args)
531
+ update!(**args)
532
+ end
533
+
534
+ # Update properties of this object
535
+ def update!(**args)
536
+ end
537
+ end
538
+
539
+ # An entry describing how an ad has been identified as relating to an ad policy.
540
+ class AdPolicyTopicEntry
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # Information on how to appeal a policy decision.
544
+ # Corresponds to the JSON property `appealInfo`
545
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicAppealInfo]
546
+ attr_accessor :appeal_info
547
+
548
+ # Ad policy help center link for the policy topic.
549
+ # Corresponds to the JSON property `helpCenterLink`
550
+ # @return [String]
551
+ attr_accessor :help_center_link
552
+
553
+ # The source of the policy decision.
554
+ # Corresponds to the JSON property `policyDecisionType`
555
+ # @return [String]
556
+ attr_accessor :policy_decision_type
557
+
558
+ # The policy enforcement means used in the policy review.
559
+ # Corresponds to the JSON property `policyEnforcementMeans`
560
+ # @return [String]
561
+ attr_accessor :policy_enforcement_means
562
+
563
+ # Localized label text for policy. Examples include "Trademarks in text", "
564
+ # Contains Alcohol", etc.
565
+ # Corresponds to the JSON property `policyLabel`
566
+ # @return [String]
567
+ attr_accessor :policy_label
568
+
569
+ # The policy topic. Examples include "TRADEMARKS", "ALCOHOL", etc.
570
+ # Corresponds to the JSON property `policyTopic`
571
+ # @return [String]
572
+ attr_accessor :policy_topic
573
+
574
+ # The serving constraints relevant to the policy decision.
575
+ # Corresponds to the JSON property `policyTopicConstraints`
576
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyTopicConstraint>]
577
+ attr_accessor :policy_topic_constraints
578
+
579
+ # A short summary description of the policy topic.
580
+ # Corresponds to the JSON property `policyTopicDescription`
581
+ # @return [String]
582
+ attr_accessor :policy_topic_description
583
+
584
+ # The evidence used in the policy decision.
585
+ # Corresponds to the JSON property `policyTopicEvidences`
586
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyTopicEvidence>]
587
+ attr_accessor :policy_topic_evidences
588
+
589
+ # How ad serving will be affected due to the relation to the ad policy topic.
590
+ # Corresponds to the JSON property `policyTopicType`
591
+ # @return [String]
592
+ attr_accessor :policy_topic_type
593
+
594
+ def initialize(**args)
595
+ update!(**args)
596
+ end
597
+
598
+ # Update properties of this object
599
+ def update!(**args)
600
+ @appeal_info = args[:appeal_info] if args.key?(:appeal_info)
601
+ @help_center_link = args[:help_center_link] if args.key?(:help_center_link)
602
+ @policy_decision_type = args[:policy_decision_type] if args.key?(:policy_decision_type)
603
+ @policy_enforcement_means = args[:policy_enforcement_means] if args.key?(:policy_enforcement_means)
604
+ @policy_label = args[:policy_label] if args.key?(:policy_label)
605
+ @policy_topic = args[:policy_topic] if args.key?(:policy_topic)
606
+ @policy_topic_constraints = args[:policy_topic_constraints] if args.key?(:policy_topic_constraints)
607
+ @policy_topic_description = args[:policy_topic_description] if args.key?(:policy_topic_description)
608
+ @policy_topic_evidences = args[:policy_topic_evidences] if args.key?(:policy_topic_evidences)
609
+ @policy_topic_type = args[:policy_topic_type] if args.key?(:policy_topic_type)
610
+ end
611
+ end
612
+
613
+ # Evidence information used in the policy decision.
614
+ class AdPolicyTopicEvidence
615
+ include Google::Apis::Core::Hashable
616
+
617
+ # Details on the counterfeit enforcement that caused a policy violation.
618
+ # Corresponds to the JSON property `counterfeit`
619
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceCounterfeit]
620
+ attr_accessor :counterfeit
621
+
622
+ # Details on a mismatch between destination URL types.
623
+ # Corresponds to the JSON property `destinationMismatch`
624
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceDestinationMismatch]
625
+ attr_accessor :destination_mismatch
626
+
627
+ # Details for on HTTP or DNS errors related to the ad destination.
628
+ # Corresponds to the JSON property `destinationNotWorking`
629
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceDestinationNotWorking]
630
+ attr_accessor :destination_not_working
631
+
632
+ # A list of destination text that violated the policy.
633
+ # Corresponds to the JSON property `destinationTextList`
634
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceDestinationTextList]
635
+ attr_accessor :destination_text_list
636
+
637
+ # HTTP code returned when the final URL was crawled.
638
+ # Corresponds to the JSON property `httpCode`
639
+ # @return [Fixnum]
640
+ attr_accessor :http_code
641
+
642
+ # The language the ad was detected to be written in. This field uses IETF
643
+ # language tags, such as "en-US".
644
+ # Corresponds to the JSON property `languageCode`
645
+ # @return [String]
646
+ attr_accessor :language_code
647
+
648
+ # Legal related regulation enforcement, either from DMCA or local legal
649
+ # regulation.
650
+ # Corresponds to the JSON property `legalRemoval`
651
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceLegalRemoval]
652
+ attr_accessor :legal_removal
653
+
654
+ # Trust & Safety (T&S) proactive enforcement for policies meant to address
655
+ # regional requirements. This is considered a Google-owned investigation instead
656
+ # of a regulation notice since it's proactive T&S enforcement.
657
+ # Corresponds to the JSON property `regionalRequirements`
658
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceRegionalRequirements]
659
+ attr_accessor :regional_requirements
660
+
661
+ # A list of fragments of text that violated the policy.
662
+ # Corresponds to the JSON property `textList`
663
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceTextList]
664
+ attr_accessor :text_list
665
+
666
+ # Trademark terms that caused a policy violation.
667
+ # Corresponds to the JSON property `trademark`
668
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceTrademark]
669
+ attr_accessor :trademark
670
+
671
+ # A list of websites that violated the policy.
672
+ # Corresponds to the JSON property `websiteList`
673
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceWebsiteList]
674
+ attr_accessor :website_list
675
+
676
+ def initialize(**args)
677
+ update!(**args)
678
+ end
679
+
680
+ # Update properties of this object
681
+ def update!(**args)
682
+ @counterfeit = args[:counterfeit] if args.key?(:counterfeit)
683
+ @destination_mismatch = args[:destination_mismatch] if args.key?(:destination_mismatch)
684
+ @destination_not_working = args[:destination_not_working] if args.key?(:destination_not_working)
685
+ @destination_text_list = args[:destination_text_list] if args.key?(:destination_text_list)
686
+ @http_code = args[:http_code] if args.key?(:http_code)
687
+ @language_code = args[:language_code] if args.key?(:language_code)
688
+ @legal_removal = args[:legal_removal] if args.key?(:legal_removal)
689
+ @regional_requirements = args[:regional_requirements] if args.key?(:regional_requirements)
690
+ @text_list = args[:text_list] if args.key?(:text_list)
691
+ @trademark = args[:trademark] if args.key?(:trademark)
692
+ @website_list = args[:website_list] if args.key?(:website_list)
693
+ end
694
+ end
695
+
696
+ # Details on the counterfeit enforcement that caused a policy violation.
697
+ class AdPolicyTopicEvidenceCounterfeit
698
+ include Google::Apis::Core::Hashable
699
+
700
+ # The content or product owners that made a complaint.
701
+ # Corresponds to the JSON property `owners`
702
+ # @return [Array<String>]
703
+ attr_accessor :owners
704
+
705
+ def initialize(**args)
706
+ update!(**args)
707
+ end
708
+
709
+ # Update properties of this object
710
+ def update!(**args)
711
+ @owners = args[:owners] if args.key?(:owners)
712
+ end
713
+ end
714
+
715
+ # Details on a mismatch between destination URL types.
716
+ class AdPolicyTopicEvidenceDestinationMismatch
717
+ include Google::Apis::Core::Hashable
718
+
719
+ # The set of URLs that do not match. The list can include single or multiple uri
720
+ # types. Example 1: [`DISPLAY_URL`, `FINAL_URL`] means ad display URL does not
721
+ # match with the ad final URL. Example 2: [`FINAL_URL`] means ad final URL did
722
+ # not match the crawled url, which is also considered as destination mismatch.
723
+ # Corresponds to the JSON property `uriTypes`
724
+ # @return [Array<String>]
725
+ attr_accessor :uri_types
726
+
727
+ def initialize(**args)
728
+ update!(**args)
729
+ end
730
+
731
+ # Update properties of this object
732
+ def update!(**args)
733
+ @uri_types = args[:uri_types] if args.key?(:uri_types)
734
+ end
735
+ end
736
+
737
+ # Details for on HTTP or DNS errors related to the ad destination.
738
+ class AdPolicyTopicEvidenceDestinationNotWorking
739
+ include Google::Apis::Core::Hashable
740
+
741
+ # The device where visiting the URL resulted in the error.
742
+ # Corresponds to the JSON property `device`
743
+ # @return [String]
744
+ attr_accessor :device
745
+
746
+ # The type of DNS error.
747
+ # Corresponds to the JSON property `dnsErrorType`
748
+ # @return [String]
749
+ attr_accessor :dns_error_type
750
+
751
+ # The full URL that didn't work.
752
+ # Corresponds to the JSON property `expandedUri`
753
+ # @return [String]
754
+ attr_accessor :expanded_uri
755
+
756
+ # The HTTP error code.
757
+ # Corresponds to the JSON property `httpErrorCode`
758
+ # @return [Fixnum]
759
+ attr_accessor :http_error_code
760
+
761
+ # The last time the error was seen when navigating to URL.
762
+ # Corresponds to the JSON property `lastCheckedTime`
763
+ # @return [String]
764
+ attr_accessor :last_checked_time
765
+
766
+ def initialize(**args)
767
+ update!(**args)
768
+ end
769
+
770
+ # Update properties of this object
771
+ def update!(**args)
772
+ @device = args[:device] if args.key?(:device)
773
+ @dns_error_type = args[:dns_error_type] if args.key?(:dns_error_type)
774
+ @expanded_uri = args[:expanded_uri] if args.key?(:expanded_uri)
775
+ @http_error_code = args[:http_error_code] if args.key?(:http_error_code)
776
+ @last_checked_time = args[:last_checked_time] if args.key?(:last_checked_time)
777
+ end
778
+ end
779
+
780
+ # A list of destination text that violated the policy.
781
+ class AdPolicyTopicEvidenceDestinationTextList
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # Destination text that caused the policy finding.
785
+ # Corresponds to the JSON property `destinationTexts`
786
+ # @return [Array<String>]
787
+ attr_accessor :destination_texts
788
+
789
+ def initialize(**args)
790
+ update!(**args)
791
+ end
792
+
793
+ # Update properties of this object
794
+ def update!(**args)
795
+ @destination_texts = args[:destination_texts] if args.key?(:destination_texts)
796
+ end
797
+ end
798
+
799
+ # Legal related regulation enforcement, either from DMCA or local legal
800
+ # regulation.
801
+ class AdPolicyTopicEvidenceLegalRemoval
802
+ include Google::Apis::Core::Hashable
803
+
804
+ # The type of complaint causing the legal removal.
805
+ # Corresponds to the JSON property `complaintType`
806
+ # @return [String]
807
+ attr_accessor :complaint_type
808
+
809
+ # The countries restricted due to the legal removal.
810
+ # Corresponds to the JSON property `countryRestrictions`
811
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyCriterionRestriction>]
812
+ attr_accessor :country_restrictions
813
+
814
+ # DMCA complaint details.
815
+ # Corresponds to the JSON property `dmca`
816
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceLegalRemovalDmca]
817
+ attr_accessor :dmca
818
+
819
+ # Local legal regulation details.
820
+ # Corresponds to the JSON property `localLegal`
821
+ # @return [Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceLegalRemovalLocalLegal]
822
+ attr_accessor :local_legal
823
+
824
+ # The urls restricted due to the legal removal.
825
+ # Corresponds to the JSON property `restrictedUris`
826
+ # @return [Array<String>]
827
+ attr_accessor :restricted_uris
828
+
829
+ def initialize(**args)
830
+ update!(**args)
831
+ end
832
+
833
+ # Update properties of this object
834
+ def update!(**args)
835
+ @complaint_type = args[:complaint_type] if args.key?(:complaint_type)
836
+ @country_restrictions = args[:country_restrictions] if args.key?(:country_restrictions)
837
+ @dmca = args[:dmca] if args.key?(:dmca)
838
+ @local_legal = args[:local_legal] if args.key?(:local_legal)
839
+ @restricted_uris = args[:restricted_uris] if args.key?(:restricted_uris)
840
+ end
841
+ end
842
+
843
+ # DMCA complaint details.
844
+ class AdPolicyTopicEvidenceLegalRemovalDmca
845
+ include Google::Apis::Core::Hashable
846
+
847
+ # The entity who made the legal complaint.
848
+ # Corresponds to the JSON property `complainant`
849
+ # @return [String]
850
+ attr_accessor :complainant
851
+
852
+ def initialize(**args)
853
+ update!(**args)
854
+ end
855
+
856
+ # Update properties of this object
857
+ def update!(**args)
858
+ @complainant = args[:complainant] if args.key?(:complainant)
859
+ end
860
+ end
861
+
862
+ # Local legal regulation details.
863
+ class AdPolicyTopicEvidenceLegalRemovalLocalLegal
864
+ include Google::Apis::Core::Hashable
865
+
866
+ # Type of law for the legal notice.
867
+ # Corresponds to the JSON property `lawType`
868
+ # @return [String]
869
+ attr_accessor :law_type
870
+
871
+ def initialize(**args)
872
+ update!(**args)
873
+ end
874
+
875
+ # Update properties of this object
876
+ def update!(**args)
877
+ @law_type = args[:law_type] if args.key?(:law_type)
878
+ end
879
+ end
880
+
881
+ # Trust & Safety (T&S) proactive enforcement for policies meant to address
882
+ # regional requirements. This is considered a Google-owned investigation instead
883
+ # of a regulation notice since it's proactive T&S enforcement.
884
+ class AdPolicyTopicEvidenceRegionalRequirements
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # List of regional requirements.
888
+ # Corresponds to the JSON property `regionalRequirementsEntries`
889
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyTopicEvidenceRegionalRequirementsRegionalRequirementsEntry>]
890
+ attr_accessor :regional_requirements_entries
891
+
892
+ def initialize(**args)
893
+ update!(**args)
894
+ end
895
+
896
+ # Update properties of this object
897
+ def update!(**args)
898
+ @regional_requirements_entries = args[:regional_requirements_entries] if args.key?(:regional_requirements_entries)
899
+ end
900
+ end
901
+
902
+ # Policy level regional legal violation details.
903
+ class AdPolicyTopicEvidenceRegionalRequirementsRegionalRequirementsEntry
904
+ include Google::Apis::Core::Hashable
905
+
906
+ # The countries restricted due to the legal policy.
907
+ # Corresponds to the JSON property `countryRestrictions`
908
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyCriterionRestriction>]
909
+ attr_accessor :country_restrictions
910
+
911
+ # The legal policy that is being violated.
912
+ # Corresponds to the JSON property `legalPolicy`
913
+ # @return [String]
914
+ attr_accessor :legal_policy
915
+
916
+ def initialize(**args)
917
+ update!(**args)
918
+ end
919
+
920
+ # Update properties of this object
921
+ def update!(**args)
922
+ @country_restrictions = args[:country_restrictions] if args.key?(:country_restrictions)
923
+ @legal_policy = args[:legal_policy] if args.key?(:legal_policy)
924
+ end
925
+ end
926
+
927
+ # A list of fragments of text that violated the policy.
928
+ class AdPolicyTopicEvidenceTextList
929
+ include Google::Apis::Core::Hashable
930
+
931
+ # The fragments of text from the resource that caused the policy finding.
932
+ # Corresponds to the JSON property `texts`
933
+ # @return [Array<String>]
934
+ attr_accessor :texts
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @texts = args[:texts] if args.key?(:texts)
943
+ end
944
+ end
945
+
946
+ # Trademark terms that caused a policy violation.
947
+ class AdPolicyTopicEvidenceTrademark
948
+ include Google::Apis::Core::Hashable
949
+
950
+ # Countries where the policy violation is relevant.
951
+ # Corresponds to the JSON property `countryRestrictions`
952
+ # @return [Array<Google::Apis::DisplayvideoV4::AdPolicyCriterionRestriction>]
953
+ attr_accessor :country_restrictions
954
+
955
+ # The trademark content owner.
956
+ # Corresponds to the JSON property `owner`
957
+ # @return [String]
958
+ attr_accessor :owner
959
+
960
+ # The trademark term.
961
+ # Corresponds to the JSON property `term`
962
+ # @return [String]
963
+ attr_accessor :term
964
+
965
+ def initialize(**args)
966
+ update!(**args)
967
+ end
968
+
969
+ # Update properties of this object
970
+ def update!(**args)
971
+ @country_restrictions = args[:country_restrictions] if args.key?(:country_restrictions)
972
+ @owner = args[:owner] if args.key?(:owner)
973
+ @term = args[:term] if args.key?(:term)
974
+ end
975
+ end
976
+
977
+ # A list of websites that violated the policy.
978
+ class AdPolicyTopicEvidenceWebsiteList
260
979
  include Google::Apis::Core::Hashable
261
980
 
262
- # The ID of the ad group the assigned targeting option is assigned to.
263
- # Corresponds to the JSON property `adGroupId`
264
- # @return [Fixnum]
265
- attr_accessor :ad_group_id
266
-
267
- # A single assigned targeting option, which defines the state of a targeting
268
- # option for an entity with targeting settings.
269
- # Corresponds to the JSON property `assignedTargetingOption`
270
- # @return [Google::Apis::DisplayvideoV4::AssignedTargetingOption]
271
- attr_accessor :assigned_targeting_option
981
+ # Websites that caused the policy finding.
982
+ # Corresponds to the JSON property `websites`
983
+ # @return [Array<String>]
984
+ attr_accessor :websites
272
985
 
273
986
  def initialize(**args)
274
987
  update!(**args)
@@ -276,8 +989,7 @@ module Google
276
989
 
277
990
  # Update properties of this object
278
991
  def update!(**args)
279
- @ad_group_id = args[:ad_group_id] if args.key?(:ad_group_id)
280
- @assigned_targeting_option = args[:assigned_targeting_option] if args.key?(:assigned_targeting_option)
992
+ @websites = args[:websites] if args.key?(:websites)
281
993
  end
282
994
  end
283
995
 
@@ -2344,6 +3056,45 @@ module Google
2344
3056
  end
2345
3057
  end
2346
3058
 
3059
+ # A request message for BulkCreateAdAssets.
3060
+ class BulkCreateAdAssetsRequest
3061
+ include Google::Apis::Core::Hashable
3062
+
3063
+ # Required. Ad assets to create. Only supports assets of AdAssetType `
3064
+ # AD_ASSET_TYPE_YOUTUBE_VIDEO`.
3065
+ # Corresponds to the JSON property `adAssets`
3066
+ # @return [Array<Google::Apis::DisplayvideoV4::AdAsset>]
3067
+ attr_accessor :ad_assets
3068
+
3069
+ def initialize(**args)
3070
+ update!(**args)
3071
+ end
3072
+
3073
+ # Update properties of this object
3074
+ def update!(**args)
3075
+ @ad_assets = args[:ad_assets] if args.key?(:ad_assets)
3076
+ end
3077
+ end
3078
+
3079
+ # A response message for BulkCreateAdAssets.
3080
+ class BulkCreateAdAssetsResponse
3081
+ include Google::Apis::Core::Hashable
3082
+
3083
+ # The created ad assets.
3084
+ # Corresponds to the JSON property `adAssets`
3085
+ # @return [Array<Google::Apis::DisplayvideoV4::AdAsset>]
3086
+ attr_accessor :ad_assets
3087
+
3088
+ def initialize(**args)
3089
+ update!(**args)
3090
+ end
3091
+
3092
+ # Update properties of this object
3093
+ def update!(**args)
3094
+ @ad_assets = args[:ad_assets] if args.key?(:ad_assets)
3095
+ end
3096
+ end
3097
+
2347
3098
  # Request message for BulkEditAdvertiserAssignedTargetingOptions.
2348
3099
  class BulkEditAdvertiserAssignedTargetingOptionsRequest
2349
3100
  include Google::Apis::Core::Hashable
@@ -4302,6 +5053,25 @@ module Google
4302
5053
  end
4303
5054
  end
4304
5055
 
5056
+ # A request message for CreateAdAsset.
5057
+ class CreateAdAssetRequest
5058
+ include Google::Apis::Core::Hashable
5059
+
5060
+ # A single ad asset.
5061
+ # Corresponds to the JSON property `adAsset`
5062
+ # @return [Google::Apis::DisplayvideoV4::AdAsset]
5063
+ attr_accessor :ad_asset
5064
+
5065
+ def initialize(**args)
5066
+ update!(**args)
5067
+ end
5068
+
5069
+ # Update properties of this object
5070
+ def update!(**args)
5071
+ @ad_asset = args[:ad_asset] if args.key?(:ad_asset)
5072
+ end
5073
+ end
5074
+
4305
5075
  # A request message for CreateAsset.
4306
5076
  class CreateAssetRequest
4307
5077
  include Google::Apis::Core::Hashable
@@ -8683,6 +9453,34 @@ module Google
8683
9453
  end
8684
9454
  end
8685
9455
 
9456
+ # A response message for ListAdAssets.
9457
+ class ListAdAssetsResponse
9458
+ include Google::Apis::Core::Hashable
9459
+
9460
+ # The list of ad assets. The list will only contain assets of AdAssetType `
9461
+ # AD_ASSET_TYPE_YOUTUBE_VIDEO`. This list will be absent if empty.
9462
+ # Corresponds to the JSON property `adAssets`
9463
+ # @return [Array<Google::Apis::DisplayvideoV4::AdAsset>]
9464
+ attr_accessor :ad_assets
9465
+
9466
+ # A token to retrieve the next page of results. Pass this value in the
9467
+ # page_token field in the subsequent call to `ListAdAssets` method to retrieve
9468
+ # the next page of results.
9469
+ # Corresponds to the JSON property `nextPageToken`
9470
+ # @return [String]
9471
+ attr_accessor :next_page_token
9472
+
9473
+ def initialize(**args)
9474
+ update!(**args)
9475
+ end
9476
+
9477
+ # Update properties of this object
9478
+ def update!(**args)
9479
+ @ad_assets = args[:ad_assets] if args.key?(:ad_assets)
9480
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
9481
+ end
9482
+ end
9483
+
8686
9484
  #
8687
9485
  class ListAdGroupAdsResponse
8688
9486
  include Google::Apis::Core::Hashable
@@ -9644,6 +10442,34 @@ module Google
9644
10442
  end
9645
10443
  end
9646
10444
 
10445
+ # Response message for YoutubeAssetAssociationService.
10446
+ # ListYoutubeAssetAssociations.
10447
+ class ListYoutubeAssetAssociationsResponse
10448
+ include Google::Apis::Core::Hashable
10449
+
10450
+ # A token to retrieve the next page of results. Pass this value in the
10451
+ # page_token field in the subsequent call to `ListYoutubeAssetAssociations`
10452
+ # method to retrieve the next page of results.
10453
+ # Corresponds to the JSON property `nextPageToken`
10454
+ # @return [String]
10455
+ attr_accessor :next_page_token
10456
+
10457
+ # The list of asset associations. This list will be absent if empty.
10458
+ # Corresponds to the JSON property `youtubeAssetAssociations`
10459
+ # @return [Array<Google::Apis::DisplayvideoV4::YoutubeAssetAssociation>]
10460
+ attr_accessor :youtube_asset_associations
10461
+
10462
+ def initialize(**args)
10463
+ update!(**args)
10464
+ end
10465
+
10466
+ # Update properties of this object
10467
+ def update!(**args)
10468
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10469
+ @youtube_asset_associations = args[:youtube_asset_associations] if args.key?(:youtube_asset_associations)
10470
+ end
10471
+ end
10472
+
9647
10473
  # A list of locations used for targeting.
9648
10474
  class LocationList
9649
10475
  include Google::Apis::Core::Hashable
@@ -12542,6 +13368,51 @@ module Google
12542
13368
  end
12543
13369
  end
12544
13370
 
13371
+ # A request message for UploadAdAsset.
13372
+ class UploadAdAssetRequest
13373
+ include Google::Apis::Core::Hashable
13374
+
13375
+ # Required. The type of the ad asset. Only `AD_ASSET_TYPE_IMAGE` is supported.
13376
+ # Corresponds to the JSON property `adAssetType`
13377
+ # @return [String]
13378
+ attr_accessor :ad_asset_type
13379
+
13380
+ # Required. The filename of the ad asset, including the file extension. The
13381
+ # filename must be UTF-8 encoded with a maximum size of 240 bytes.
13382
+ # Corresponds to the JSON property `filename`
13383
+ # @return [String]
13384
+ attr_accessor :filename
13385
+
13386
+ def initialize(**args)
13387
+ update!(**args)
13388
+ end
13389
+
13390
+ # Update properties of this object
13391
+ def update!(**args)
13392
+ @ad_asset_type = args[:ad_asset_type] if args.key?(:ad_asset_type)
13393
+ @filename = args[:filename] if args.key?(:filename)
13394
+ end
13395
+ end
13396
+
13397
+ # A response message for UploadAdAsset.
13398
+ class UploadAdAssetResponse
13399
+ include Google::Apis::Core::Hashable
13400
+
13401
+ # A single ad asset.
13402
+ # Corresponds to the JSON property `adAsset`
13403
+ # @return [Google::Apis::DisplayvideoV4::AdAsset]
13404
+ attr_accessor :ad_asset
13405
+
13406
+ def initialize(**args)
13407
+ update!(**args)
13408
+ end
13409
+
13410
+ # Update properties of this object
13411
+ def update!(**args)
13412
+ @ad_asset = args[:ad_asset] if args.key?(:ad_asset)
13413
+ end
13414
+ end
13415
+
12545
13416
  # Details for assigned URL targeting option. This will be populated in the
12546
13417
  # details field of an AssignedTargetingOption when targeting_type is `
12547
13418
  # TARGETING_TYPE_URL`.
@@ -13162,6 +14033,235 @@ module Google
13162
14033
  end
13163
14034
  end
13164
14035
 
14036
+ # An association between a resource and a YouTube asset.
14037
+ class YoutubeAssetAssociation
14038
+ include Google::Apis::Core::Hashable
14039
+
14040
+ # A YouTube asset linked to a resource in a YoutubeAssetAssociation.
14041
+ # Corresponds to the JSON property `linkedYoutubeAsset`
14042
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationLinkedYouTubeAsset]
14043
+ attr_accessor :linked_youtube_asset
14044
+
14045
+ # Identifier. The resource name of the association. For line item-level
14046
+ # associations: The name pattern is `advertisers/`advertiser_id`/lineItems/`
14047
+ # line_item_id`/youtubeAssetTypes/`youtube_asset_type`/youtubeAssetAssociations/`
14048
+ # youtube_asset_association_id``. For ad group-level associations: The name
14049
+ # pattern is `advertisers/`advertiser_id`/adGroups/`ad_group_id`/
14050
+ # youtubeAssetTypes/`youtube_asset_type`/youtubeAssetAssociations/`
14051
+ # youtube_asset_association_id``. For `YOUTUBE_ASSET_TYPE_LOCATION` and `
14052
+ # YOUTUBE_ASSET_TYPE_AFFILIATE_LOCATION` associations: `
14053
+ # youtube_asset_association_id` is the ID of the asset set linked, or 0 if the
14054
+ # location_matching_type or affiliate_location_matching_type is `DISABLED`. For `
14055
+ # YOUTUBE_ASSET_TYPE_SITELINK` associations: `youtube_asset_association_id` is
14056
+ # be the ID of the sitelink asset linked.
14057
+ # Corresponds to the JSON property `name`
14058
+ # @return [String]
14059
+ attr_accessor :name
14060
+
14061
+ # Required. The type of YouTube asset associated with the resource.
14062
+ # Corresponds to the JSON property `youtubeAssetType`
14063
+ # @return [String]
14064
+ attr_accessor :youtube_asset_type
14065
+
14066
+ def initialize(**args)
14067
+ update!(**args)
14068
+ end
14069
+
14070
+ # Update properties of this object
14071
+ def update!(**args)
14072
+ @linked_youtube_asset = args[:linked_youtube_asset] if args.key?(:linked_youtube_asset)
14073
+ @name = args[:name] if args.key?(:name)
14074
+ @youtube_asset_type = args[:youtube_asset_type] if args.key?(:youtube_asset_type)
14075
+ end
14076
+ end
14077
+
14078
+ # An asset filter that matches eligible affiliate location assets for serving.
14079
+ class YoutubeAssetAssociationAffiliateLocationAssetFilter
14080
+ include Google::Apis::Core::Hashable
14081
+
14082
+ # The matching function for an affiliate location asset filter.
14083
+ # Corresponds to the JSON property `affiliateLocationMatchingFunction`
14084
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationAffiliateLocationAssetFilterAffiliateLocationMatchingFunction]
14085
+ attr_accessor :affiliate_location_matching_function
14086
+
14087
+ # Required. The matching type of this affiliate location asset filter.
14088
+ # Corresponds to the JSON property `affiliateLocationMatchingType`
14089
+ # @return [String]
14090
+ attr_accessor :affiliate_location_matching_type
14091
+
14092
+ # Output only. The ID of the asset set that matches the affiliate location
14093
+ # assets eligible for serving.
14094
+ # Corresponds to the JSON property `assetSetId`
14095
+ # @return [Fixnum]
14096
+ attr_accessor :asset_set_id
14097
+
14098
+ def initialize(**args)
14099
+ update!(**args)
14100
+ end
14101
+
14102
+ # Update properties of this object
14103
+ def update!(**args)
14104
+ @affiliate_location_matching_function = args[:affiliate_location_matching_function] if args.key?(:affiliate_location_matching_function)
14105
+ @affiliate_location_matching_type = args[:affiliate_location_matching_type] if args.key?(:affiliate_location_matching_type)
14106
+ @asset_set_id = args[:asset_set_id] if args.key?(:asset_set_id)
14107
+ end
14108
+ end
14109
+
14110
+ # A chain of affiliate locations.
14111
+ class YoutubeAssetAssociationAffiliateLocationAssetFilterAffiliateLocationChain
14112
+ include Google::Apis::Core::Hashable
14113
+
14114
+ # Required. ID of the affiliate location chain.
14115
+ # Corresponds to the JSON property `chainId`
14116
+ # @return [Fixnum]
14117
+ attr_accessor :chain_id
14118
+
14119
+ def initialize(**args)
14120
+ update!(**args)
14121
+ end
14122
+
14123
+ # Update properties of this object
14124
+ def update!(**args)
14125
+ @chain_id = args[:chain_id] if args.key?(:chain_id)
14126
+ end
14127
+ end
14128
+
14129
+ # The matching function for an affiliate location asset filter.
14130
+ class YoutubeAssetAssociationAffiliateLocationAssetFilterAffiliateLocationMatchingFunction
14131
+ include Google::Apis::Core::Hashable
14132
+
14133
+ # Optional. The selected affiliate location chain IDs. This field is required if
14134
+ # affiliate_location_matching_type is `SELECTED_CHAINS`.
14135
+ # Corresponds to the JSON property `chains`
14136
+ # @return [Array<Google::Apis::DisplayvideoV4::YoutubeAssetAssociationAffiliateLocationAssetFilterAffiliateLocationChain>]
14137
+ attr_accessor :chains
14138
+
14139
+ def initialize(**args)
14140
+ update!(**args)
14141
+ end
14142
+
14143
+ # Update properties of this object
14144
+ def update!(**args)
14145
+ @chains = args[:chains] if args.key?(:chains)
14146
+ end
14147
+ end
14148
+
14149
+ # A YouTube asset linked to a resource in a YoutubeAssetAssociation.
14150
+ class YoutubeAssetAssociationLinkedYouTubeAsset
14151
+ include Google::Apis::Core::Hashable
14152
+
14153
+ # An asset filter that matches eligible affiliate location assets for serving.
14154
+ # Corresponds to the JSON property `affiliateLocationAssetFilter`
14155
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationAffiliateLocationAssetFilter]
14156
+ attr_accessor :affiliate_location_asset_filter
14157
+
14158
+ # An asset filter that matches eligible location assets for serving.
14159
+ # Corresponds to the JSON property `locationAssetFilter`
14160
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationLocationAssetFilter]
14161
+ attr_accessor :location_asset_filter
14162
+
14163
+ # A sitelink asset.
14164
+ # Corresponds to the JSON property `sitelinkAsset`
14165
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationSitelinkAsset]
14166
+ attr_accessor :sitelink_asset
14167
+
14168
+ def initialize(**args)
14169
+ update!(**args)
14170
+ end
14171
+
14172
+ # Update properties of this object
14173
+ def update!(**args)
14174
+ @affiliate_location_asset_filter = args[:affiliate_location_asset_filter] if args.key?(:affiliate_location_asset_filter)
14175
+ @location_asset_filter = args[:location_asset_filter] if args.key?(:location_asset_filter)
14176
+ @sitelink_asset = args[:sitelink_asset] if args.key?(:sitelink_asset)
14177
+ end
14178
+ end
14179
+
14180
+ # An asset filter that matches eligible location assets for serving.
14181
+ class YoutubeAssetAssociationLocationAssetFilter
14182
+ include Google::Apis::Core::Hashable
14183
+
14184
+ # Output only. The ID of the asset set that matches the location assets eligible
14185
+ # for serving.
14186
+ # Corresponds to the JSON property `assetSetId`
14187
+ # @return [Fixnum]
14188
+ attr_accessor :asset_set_id
14189
+
14190
+ # The matching function for a location asset filter.
14191
+ # Corresponds to the JSON property `locationMatchingFunction`
14192
+ # @return [Google::Apis::DisplayvideoV4::YoutubeAssetAssociationLocationAssetFilterLocationMatchingFunction]
14193
+ attr_accessor :location_matching_function
14194
+
14195
+ # Required. The matching type of this location asset filter.
14196
+ # Corresponds to the JSON property `locationMatchingType`
14197
+ # @return [String]
14198
+ attr_accessor :location_matching_type
14199
+
14200
+ def initialize(**args)
14201
+ update!(**args)
14202
+ end
14203
+
14204
+ # Update properties of this object
14205
+ def update!(**args)
14206
+ @asset_set_id = args[:asset_set_id] if args.key?(:asset_set_id)
14207
+ @location_matching_function = args[:location_matching_function] if args.key?(:location_matching_function)
14208
+ @location_matching_type = args[:location_matching_type] if args.key?(:location_matching_type)
14209
+ end
14210
+ end
14211
+
14212
+ # The matching function for a location asset filter.
14213
+ class YoutubeAssetAssociationLocationAssetFilterLocationMatchingFunction
14214
+ include Google::Apis::Core::Hashable
14215
+
14216
+ # Optional. The business name to match with. This field is optional and can only
14217
+ # be set if location_matching_type is `FILTER`.
14218
+ # Corresponds to the JSON property `business`
14219
+ # @return [String]
14220
+ attr_accessor :business
14221
+
14222
+ # Optional. The labels to match with. Labels are logically OR'ed together. This
14223
+ # field is optional and can only be set if location_matching_type is `FILTER`.
14224
+ # Corresponds to the JSON property `labels`
14225
+ # @return [Array<String>]
14226
+ attr_accessor :labels
14227
+
14228
+ # Optional. The selected location asset IDs. This field is required if
14229
+ # location_matching_type is `SELECTED_ASSETS`.
14230
+ # Corresponds to the JSON property `locationAssetIds`
14231
+ # @return [Array<Fixnum>]
14232
+ attr_accessor :location_asset_ids
14233
+
14234
+ def initialize(**args)
14235
+ update!(**args)
14236
+ end
14237
+
14238
+ # Update properties of this object
14239
+ def update!(**args)
14240
+ @business = args[:business] if args.key?(:business)
14241
+ @labels = args[:labels] if args.key?(:labels)
14242
+ @location_asset_ids = args[:location_asset_ids] if args.key?(:location_asset_ids)
14243
+ end
14244
+ end
14245
+
14246
+ # A sitelink asset.
14247
+ class YoutubeAssetAssociationSitelinkAsset
14248
+ include Google::Apis::Core::Hashable
14249
+
14250
+ # Required. ID of the sitelink asset.
14251
+ # Corresponds to the JSON property `assetId`
14252
+ # @return [Fixnum]
14253
+ attr_accessor :asset_id
14254
+
14255
+ def initialize(**args)
14256
+ update!(**args)
14257
+ end
14258
+
14259
+ # Update properties of this object
14260
+ def update!(**args)
14261
+ @asset_id = args[:asset_id] if args.key?(:asset_id)
14262
+ end
14263
+ end
14264
+
13165
14265
  # Details for YouTube channel assigned targeting option. This will be populated
13166
14266
  # in the youtube_channel_details field when targeting_type is `
13167
14267
  # TARGETING_TYPE_YOUTUBE_CHANNEL`.
@@ -13190,6 +14290,26 @@ module Google
13190
14290
  end
13191
14291
  end
13192
14292
 
14293
+ # Data for a YouTube video ad asset.
14294
+ class YoutubeVideoAsset
14295
+ include Google::Apis::Core::Hashable
14296
+
14297
+ # Required. The YouTube video id of the asset. This is the 11 char string value
14298
+ # used in the YouTube video URL.
14299
+ # Corresponds to the JSON property `youtubeVideoId`
14300
+ # @return [String]
14301
+ attr_accessor :youtube_video_id
14302
+
14303
+ def initialize(**args)
14304
+ update!(**args)
14305
+ end
14306
+
14307
+ # Update properties of this object
14308
+ def update!(**args)
14309
+ @youtube_video_id = args[:youtube_video_id] if args.key?(:youtube_video_id)
14310
+ end
14311
+ end
14312
+
13193
14313
  # Details for YouTube video assigned targeting option. This will be populated in
13194
14314
  # the youtube_video_details field when targeting_type is `
13195
14315
  # TARGETING_TYPE_YOUTUBE_VIDEO`.