# 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 # 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] 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 # 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) @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 (CM) 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 # CM 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 CM hybrid advertisers, the time zone is the same as that of the # associated CM 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 # 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 # A single assigned targeting option, which defines the state of a targeting # option for an entity with targeting settings, such as a Line Item or # Insertion Order. 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 # 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. class AudienceGroupAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Details of first and third party audience group. # All first and third party audience targeting settings are logically ‘OR’ of # each other. # Corresponds to the JSON property `excludedFirstAndThirdPartyAudienceGroup` # @return [Google::Apis::DisplayvideoV1::FirstAndThirdPartyAudienceGroup] attr_accessor :excluded_first_and_third_party_audience_group # Details of Google audience group. # All Google audience targeting settings are logically ‘OR’ of each other. # Corresponds to the JSON property `excludedGoogleAudienceGroup` # @return [Google::Apis::DisplayvideoV1::GoogleAudienceGroup] attr_accessor :excluded_google_audience_group # Details of combined audience group. # All combined audience targeting settings are logically ‘OR’ of each other. # Corresponds to the JSON property `includedCombinedAudienceGroup` # @return [Google::Apis::DisplayvideoV1::CombinedAudienceGroup] attr_accessor :included_combined_audience_group # Details of custom list group. # All custom list targeting settings are logically ‘OR’ of each other. # Corresponds to the JSON property `includedCustomListGroup` # @return [Google::Apis::DisplayvideoV1::CustomListGroup] attr_accessor :included_custom_list_group # The first and third party audience ids and recencies of included first # and third party audience groups. Each first and third party audience group # contains first and third party audience ids only. # The relation between each first and third party audience group is # INTERSECTION, and the result is UNION'ed with other audience groups. # Repeated groups with same settings will be ignored. # Corresponds to the JSON property `includedFirstAndThirdPartyAudienceGroups` # @return [Array] attr_accessor :included_first_and_third_party_audience_groups # Details of Google audience group. # All Google audience targeting settings are logically ‘OR’ of each other. # Corresponds to the JSON property `includedGoogleAudienceGroup` # @return [Google::Apis::DisplayvideoV1::GoogleAudienceGroup] attr_accessor :included_google_audience_group def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @excluded_first_and_third_party_audience_group = args[:excluded_first_and_third_party_audience_group] if args.key?(:excluded_first_and_third_party_audience_group) @excluded_google_audience_group = args[:excluded_google_audience_group] if args.key?(:excluded_google_audience_group) @included_combined_audience_group = args[:included_combined_audience_group] if args.key?(:included_combined_audience_group) @included_custom_list_group = args[:included_custom_list_group] if args.key?(:included_custom_list_group) @included_first_and_third_party_audience_groups = args[:included_first_and_third_party_audience_groups] if args.key?(:included_first_and_third_party_audience_groups) @included_google_audience_group = args[:included_google_audience_group] if args.key?(:included_google_audience_group) end end # The length an audio or a video has been played. class AudioVideoOffset include Google::Apis::Core::Hashable # The offset in percentage of the audio or video duration. # Corresponds to the JSON property `percentage` # @return [Fixnum] attr_accessor :percentage # The offset in seconds from the start of the audio or video. # Corresponds to the JSON property `seconds` # @return [Fixnum] attr_accessor :seconds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @percentage = args[:percentage] if args.key?(:percentage) @seconds = args[:seconds] if args.key?(:seconds) end end # 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`. class AuthorizedSellerStatusAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The authorized seller status to target. # Corresponds to the JSON property `authorizedSellerStatus` # @return [String] attr_accessor :authorized_seller_status # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. # 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) @authorized_seller_status = args[:authorized_seller_status] if args.key?(:authorized_seller_status) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable authorized seller status. This will be populated in # the # authorized_seller_status_details # field when targeting_type is # `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. class AuthorizedSellerStatusTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The authorized seller status. # Corresponds to the JSON property `authorizedSellerStatus` # @return [String] attr_accessor :authorized_seller_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authorized_seller_status = args[:authorized_seller_status] if args.key?(:authorized_seller_status) end end # Settings that control the bid strategy. # Bid strategy determines the bid price. class BiddingStrategy include Google::Apis::Core::Hashable # A strategy that uses a fixed bidding price. # Corresponds to the JSON property `fixedBid` # @return [Google::Apis::DisplayvideoV1::FixedBidStrategy] attr_accessor :fixed_bid # A strategy that automatically adjusts the bid to optimize a specified # performance goal while spending the full budget. # Corresponds to the JSON property `maximizeSpendAutoBid` # @return [Google::Apis::DisplayvideoV1::MaximizeSpendBidStrategy] attr_accessor :maximize_spend_auto_bid # A strategy that automatically adjusts the bid to meet or beat a specified # performance goal. # Corresponds to the JSON property `performanceGoalAutoBid` # @return [Google::Apis::DisplayvideoV1::PerformanceGoalBidStrategy] attr_accessor :performance_goal_auto_bid def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @fixed_bid = args[:fixed_bid] if args.key?(:fixed_bid) @maximize_spend_auto_bid = args[:maximize_spend_auto_bid] if args.key?(:maximize_spend_auto_bid) @performance_goal_auto_bid = args[:performance_goal_auto_bid] if args.key?(:performance_goal_auto_bid) end end # Details for assigned browser targeting option. This will be populated in # the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_BROWSER`. class BrowserAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the browser. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Indicates if this option is being negatively targeted. All assigned browser # targeting options on the same line item must have the same value for this # field. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_BROWSER`. # 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 browser. This will be populated in the # browser_details field when # targeting_type is # `TARGETING_TYPE_BROWSER`. class BrowserTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the browser. # 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 # Request message for # BulkEditLineItemAssignedTargetingOptions. class BulkEditLineItemAssignedTargetingOptionsRequest include Google::Apis::Core::Hashable # The assigned targeting options to create in batch, specified as a list of # `CreateAssignedTargetingOptionsRequest`. # Corresponds to the JSON property `createRequests` # @return [Array] attr_accessor :create_requests # The assigned targeting options to delete in batch, specified as a list of # `DeleteAssignedTargetingOptionsRequest`. # Corresponds to the JSON property `deleteRequests` # @return [Array] attr_accessor :delete_requests def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_requests = args[:create_requests] if args.key?(:create_requests) @delete_requests = args[:delete_requests] if args.key?(:delete_requests) end end # class BulkEditLineItemAssignedTargetingOptionsResponse include Google::Apis::Core::Hashable # The list of assigned targeting options that have been successfully created. # This list will be absent if empty. # Corresponds to the JSON property `createdAssignedTargetingOptions` # @return [Array] attr_accessor :created_assigned_targeting_options def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @created_assigned_targeting_options = args[:created_assigned_targeting_options] if args.key?(:created_assigned_targeting_options) end end # class BulkListLineItemAssignedTargetingOptionsResponse include Google::Apis::Core::Hashable # The list of assigned targeting options. # This list will be absent if empty. # Corresponds to the JSON property `assignedTargetingOptions` # @return [Array] attr_accessor :assigned_targeting_options # A token identifying the next page of results. This value should be # specified as the # pageToken in # a subsequent BulkListLineItemAssignedTargetingOptionsRequest to fetch # the next page of results. This token will be absent if there are no more # assigned_targeting_options # to return. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_targeting_options = args[:assigned_targeting_options] if args.key?(:assigned_targeting_options) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # A single campaign. class Campaign include Google::Apis::Core::Hashable # Output only. The unique ID of the advertiser the campaign belongs to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Settings that track the planned spend and duration of a campaign. # Corresponds to the JSON property `campaignFlight` # @return [Google::Apis::DisplayvideoV1::CampaignFlight] attr_accessor :campaign_flight # Settings that control the goal of a campaign. # Corresponds to the JSON property `campaignGoal` # @return [Google::Apis::DisplayvideoV1::CampaignGoal] attr_accessor :campaign_goal # Output only. The unique ID of the campaign. Assigned by the system. # Corresponds to the JSON property `campaignId` # @return [Fixnum] attr_accessor :campaign_id # Required. The display name of the campaign. # 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 the insertion orders under this campaign # can spend their budgets and bid on inventory. # * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and # `ENTITY_STATUS_PAUSED`. # * For # CreateCampaign method, # `ENTITY_STATUS_ARCHIVED` is not allowed. # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Settings that control the number of times a user may be shown with the same # ad during a given time period. # Corresponds to the JSON property `frequencyCap` # @return [Google::Apis::DisplayvideoV1::FrequencyCap] attr_accessor :frequency_cap # Output only. The resource name of the campaign. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The timestamp when the campaign 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) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @campaign_flight = args[:campaign_flight] if args.key?(:campaign_flight) @campaign_goal = args[:campaign_goal] if args.key?(:campaign_goal) @campaign_id = args[:campaign_id] if args.key?(:campaign_id) @display_name = args[:display_name] if args.key?(:display_name) @entity_status = args[:entity_status] if args.key?(:entity_status) @frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap) @name = args[:name] if args.key?(:name) @update_time = args[:update_time] if args.key?(:update_time) end end # Settings that track the planned spend and duration of a campaign. class CampaignFlight include Google::Apis::Core::Hashable # A date range. # Corresponds to the JSON property `plannedDates` # @return [Google::Apis::DisplayvideoV1::DateRange] attr_accessor :planned_dates # The amount the campaign is expected to spend for its given # planned_dates. This will not limit serving, # but will be used for tracking spend in the DV360 UI. # The amount is in micros. Must be greater than or equal to 0. For example, # 500000000 represents 500 standard units of the currency. # Corresponds to the JSON property `plannedSpendAmountMicros` # @return [Fixnum] attr_accessor :planned_spend_amount_micros def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @planned_dates = args[:planned_dates] if args.key?(:planned_dates) @planned_spend_amount_micros = args[:planned_spend_amount_micros] if args.key?(:planned_spend_amount_micros) end end # Settings that control the goal of a campaign. class CampaignGoal include Google::Apis::Core::Hashable # Required. The type of the campaign goal. # Corresponds to the JSON property `campaignGoalType` # @return [String] attr_accessor :campaign_goal_type # Settings that control the performance goal of a campaign or insertion order. # Corresponds to the JSON property `performanceGoal` # @return [Google::Apis::DisplayvideoV1::PerformanceGoal] attr_accessor :performance_goal def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @campaign_goal_type = args[:campaign_goal_type] if args.key?(:campaign_goal_type) @performance_goal = args[:performance_goal] if args.key?(:performance_goal) end end # 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`. class CarrierAndIspAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the carrier or ISP. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Indicates if this option is being negatively targeted. All assigned carrier # and ISP targeting options on the same line item must have the same value # for this field. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`. # 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 carrier or ISP. This will be populated in the # carrier_and_isp_details field of # a TargetingOption when # targeting_type is # `TARGETING_TYPE_CARRIER_AND_ISP`. class CarrierAndIspTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the carrier or ISP. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The type indicating if it's carrier or ISP. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @type = args[:type] if args.key?(:type) end end # Assigned category targeting option details. This will be populated in the # category_details field when # targeting_type is # `TARGETING_TYPE_CATEGORY`. class CategoryAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the 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_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 category. This will be populated in the # category_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_CATEGORY`. class CategoryTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the category. # 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 channel. Channels are custom groups of related websites and apps. class Channel include Google::Apis::Core::Hashable # The ID of the advertiser that owns the channel. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Output only. The unique ID of the channel. Assigned by the system. # Corresponds to the JSON property `channelId` # @return [Fixnum] attr_accessor :channel_id # Required. The display name of the channel. # Must be UTF-8 encoded with a maximum length of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The resource name of the channel. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The ID of the partner that owns the channel. # Corresponds to the JSON property `partnerId` # @return [Fixnum] attr_accessor :partner_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @channel_id = args[:channel_id] if args.key?(:channel_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @partner_id = args[:partner_id] if args.key?(:partner_id) end end # Details for assigned channel targeting option. This will be populated in # the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_CHANNEL`. class ChannelAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the channel. Should refer to the channel ID # field on a # [Partner-owned channel](partners.channels#Channel.FIELDS.channel_id) or # [advertiser-owned channel](advertisers.channels#Channel.FIELDS.channel_id) # resource. # Corresponds to the JSON property `channelId` # @return [Fixnum] attr_accessor :channel_id # Indicates if this option is being negatively targeted. For advertiser # level assigned targeting option, this field must be true. # 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) @channel_id = args[:channel_id] if args.key?(:channel_id) @negative = args[:negative] if args.key?(:negative) end end # Settings for advertisers that use both Campaign Manager (CM) and third-party # ad servers. class CmHybridConfig include Google::Apis::Core::Hashable # Required. Immutable. Account ID of the CM Floodlight configuration linked with # the DV360 # advertiser. # Corresponds to the JSON property `cmAccountId` # @return [Fixnum] attr_accessor :cm_account_id # Required. Immutable. ID of the CM Floodlight configuration linked with the # DV360 advertiser. # Corresponds to the JSON property `cmFloodlightConfigId` # @return [Fixnum] attr_accessor :cm_floodlight_config_id # Required. Immutable. By setting this field to `true`, you, on behalf of your # company, # authorize the sharing of information from the given Floodlight # configuration to this Display & Video 360 advertiser. # Corresponds to the JSON property `cmFloodlightLinkingAuthorized` # @return [Boolean] attr_accessor :cm_floodlight_linking_authorized alias_method :cm_floodlight_linking_authorized?, :cm_floodlight_linking_authorized # A list of CM sites whose placements will be synced to DV360 as creatives. # If absent or empty in # CreateAdvertiser method, the system # will automatically create a CM site. # Removing sites from this list may cause DV360 creatives synced from CM to # be deleted. At least one site must be specified. # Corresponds to the JSON property `cmSyncableSiteIds` # @return [Array] attr_accessor :cm_syncable_site_ids # Whether or not to report DV360 cost to CM. # Corresponds to the JSON property `dv360ToCmCostReportingEnabled` # @return [Boolean] attr_accessor :dv360_to_cm_cost_reporting_enabled alias_method :dv360_to_cm_cost_reporting_enabled?, :dv360_to_cm_cost_reporting_enabled # Whether or not to include DV360 data in CM data transfer reports. # Corresponds to the JSON property `dv360ToCmDataSharingEnabled` # @return [Boolean] attr_accessor :dv360_to_cm_data_sharing_enabled alias_method :dv360_to_cm_data_sharing_enabled?, :dv360_to_cm_data_sharing_enabled def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cm_account_id = args[:cm_account_id] if args.key?(:cm_account_id) @cm_floodlight_config_id = args[:cm_floodlight_config_id] if args.key?(:cm_floodlight_config_id) @cm_floodlight_linking_authorized = args[:cm_floodlight_linking_authorized] if args.key?(:cm_floodlight_linking_authorized) @cm_syncable_site_ids = args[:cm_syncable_site_ids] if args.key?(:cm_syncable_site_ids) @dv360_to_cm_cost_reporting_enabled = args[:dv360_to_cm_cost_reporting_enabled] if args.key?(:dv360_to_cm_cost_reporting_enabled) @dv360_to_cm_data_sharing_enabled = args[:dv360_to_cm_data_sharing_enabled] if args.key?(:dv360_to_cm_data_sharing_enabled) end end # A Campaign Manager tracking ad. class CmTrackingAd include Google::Apis::Core::Hashable # The ad ID of the campaign manager tracking Ad. # Corresponds to the JSON property `cmAdId` # @return [Fixnum] attr_accessor :cm_ad_id # The creative ID of the campaign manager tracking Ad. # Corresponds to the JSON property `cmCreativeId` # @return [Fixnum] attr_accessor :cm_creative_id # The placement ID of the campaign manager tracking Ad. # Corresponds to the JSON property `cmPlacementId` # @return [Fixnum] attr_accessor :cm_placement_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cm_ad_id = args[:cm_ad_id] if args.key?(:cm_ad_id) @cm_creative_id = args[:cm_creative_id] if args.key?(:cm_creative_id) @cm_placement_id = args[:cm_placement_id] if args.key?(:cm_placement_id) end end # Describes a combined audience resource. class CombinedAudience include Google::Apis::Core::Hashable # Output only. The unique ID of the combined audience. Assigned by the system. # Corresponds to the JSON property `combinedAudienceId` # @return [Fixnum] attr_accessor :combined_audience_id # Output only. The display name of the combined audience. # . # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The resource name of the combined audience. # 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) @combined_audience_id = args[:combined_audience_id] if args.key?(:combined_audience_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) end end # Details of combined audience group. # All combined audience targeting settings are logically ‘OR’ of each other. class CombinedAudienceGroup include Google::Apis::Core::Hashable # Required. All combined audience targeting settings in combined audience group. # Repeated settings with same id will be ignored. # The number of combined audience settings should be no more than five, error # will be thrown otherwise. # Corresponds to the JSON property `settings` # @return [Array] attr_accessor :settings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @settings = args[:settings] if args.key?(:settings) end end # Details of combined audience targeting setting. class CombinedAudienceTargetingSetting include Google::Apis::Core::Hashable # Required. Combined audience id of combined audience targeting setting. # This id is combined_audience_id. # Corresponds to the JSON property `combinedAudienceId` # @return [Fixnum] attr_accessor :combined_audience_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @combined_audience_id = args[:combined_audience_id] if args.key?(:combined_audience_id) end end # 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`. class ContentInstreamPositionAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The content instream position for video or audio ads. # Corresponds to the JSON property `contentInstreamPosition` # @return [String] attr_accessor :content_instream_position # Required. The targeting_option_id field when # targeting_type is # `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. # 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) @content_instream_position = args[:content_instream_position] if args.key?(:content_instream_position) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable content instream position, which could be used by # video and audio ads. This will be populated in the # content_instream_position_details # field when targeting_type is # `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. class ContentInstreamPositionTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The content instream position. # Corresponds to the JSON property `contentInstreamPosition` # @return [String] attr_accessor :content_instream_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_instream_position = args[:content_instream_position] if args.key?(:content_instream_position) end end # 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`. class ContentOutstreamPositionAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The content outstream position. # Corresponds to the JSON property `contentOutstreamPosition` # @return [String] attr_accessor :content_outstream_position # Required. The targeting_option_id field when # targeting_type is # `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. # 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) @content_outstream_position = args[:content_outstream_position] if args.key?(:content_outstream_position) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable content outstream position, which could be used by # display and video ads. This will be populated in the # content_outstream_position_details # field when targeting_type is # `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. class ContentOutstreamPositionTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The content outstream position. # Corresponds to the JSON property `contentOutstreamPosition` # @return [String] attr_accessor :content_outstream_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_outstream_position = args[:content_outstream_position] if args.key?(:content_outstream_position) end end # Settings that control how conversions are counted. # All post-click conversions will be counted. A percentage value can be set # for post-view conversions counting. class ConversionCountingConfig include Google::Apis::Core::Hashable # The Floodlight activity configs used to track conversions. # The number of conversions counted is the sum of all of the conversions # counted by all of the Floodlight activity IDs specified in this field. # Corresponds to the JSON property `floodlightActivityConfigs` # @return [Array] attr_accessor :floodlight_activity_configs # The percentage of post-view conversions to count, in millis (1/1000 of a # percent). Must be between 0 and 100000 inclusive. # For example, to track 50% of the post-click conversions, set a value of # 50000. # Corresponds to the JSON property `postViewCountPercentageMillis` # @return [Fixnum] attr_accessor :post_view_count_percentage_millis def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @floodlight_activity_configs = args[:floodlight_activity_configs] if args.key?(:floodlight_activity_configs) @post_view_count_percentage_millis = args[:post_view_count_percentage_millis] if args.key?(:post_view_count_percentage_millis) end end # Counter event of the creative. class CounterEvent include Google::Apis::Core::Hashable # Required. The name of the counter event. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The name used to identify this counter event in reports. # Corresponds to the JSON property `reportingName` # @return [String] attr_accessor :reporting_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @reporting_name = args[:reporting_name] if args.key?(:reporting_name) end end # A request message for CreateAsset. class CreateAssetRequest include Google::Apis::Core::Hashable # Required. The filename of the asset, including the file extension. # The filename must be UTF-8 encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `filename` # @return [String] attr_accessor :filename def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @filename = args[:filename] if args.key?(:filename) end end # A response message for CreateAsset. class CreateAssetResponse include Google::Apis::Core::Hashable # A single asset. # Corresponds to the JSON property `asset` # @return [Google::Apis::DisplayvideoV1::Asset] attr_accessor :asset def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @asset = args[:asset] if args.key?(:asset) end end # A request listing which assigned targeting options of a given targeting type # should be created and added. class CreateAssignedTargetingOptionsRequest include Google::Apis::Core::Hashable # Required. The assigned targeting options to create and add. # Corresponds to the JSON property `assignedTargetingOptions` # @return [Array] attr_accessor :assigned_targeting_options # Required. Identifies the type of this assigned targeting option. # Corresponds to the JSON property `targetingType` # @return [String] attr_accessor :targeting_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_targeting_options = args[:assigned_targeting_options] if args.key?(:assigned_targeting_options) @targeting_type = args[:targeting_type] if args.key?(:targeting_type) end end # Request message for [SdfDownloadTaskService.CreateSdfDownloadTask]. class CreateSdfDownloadTaskRequest include Google::Apis::Core::Hashable # The ID of the advertiser to download SDF for. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # A filtering option that filters entities by their entity IDs. # Corresponds to the JSON property `idFilter` # @return [Google::Apis::DisplayvideoV1::IdFilter] attr_accessor :id_filter # A filtering option for filtering on Inventory Source entities. # Corresponds to the JSON property `inventorySourceFilter` # @return [Google::Apis::DisplayvideoV1::InventorySourceFilter] attr_accessor :inventory_source_filter # A filtering option that filters on selected file types belonging to a chosen # set of filter entities. # Corresponds to the JSON property `parentEntityFilter` # @return [Google::Apis::DisplayvideoV1::ParentEntityFilter] attr_accessor :parent_entity_filter # The ID of the partner to download SDF for. # Corresponds to the JSON property `partnerId` # @return [Fixnum] attr_accessor :partner_id # Required. The SDF version of the downloaded file. If set to # `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by # the advertiser or partner identified by `root_id`. An advertiser inherits # its SDF version from its partner unless configured otherwise. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @id_filter = args[:id_filter] if args.key?(:id_filter) @inventory_source_filter = args[:inventory_source_filter] if args.key?(:inventory_source_filter) @parent_entity_filter = args[:parent_entity_filter] if args.key?(:parent_entity_filter) @partner_id = args[:partner_id] if args.key?(:partner_id) @version = args[:version] if args.key?(:version) end end # A single Creative. class Creative include Google::Apis::Core::Hashable # Additional dimensions. # Applicable when creative_type is one of: # * `CREATIVE_TYPE_STANDARD` # * `CREATIVE_TYPE_EXPANDABLE` # * `CREATIVE_TYPE_NATIVE` # * `CREATIVE_TYPE_TEMPLATED_APP_INSTALL` # * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` # * `CREATIVE_TYPE_LIGHTBOX` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` # * `CREATIVE_TYPE_PUBLISHER_HOSTED` # If this field is specified, width_pixels and # height_pixels are both required and must be # greater than or equal to 0. # Corresponds to the JSON property `additionalDimensions` # @return [Array] attr_accessor :additional_dimensions # Output only. The unique ID of the advertiser the creative belongs to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Third-party HTML tracking tag to be appended to the creative tag. # Corresponds to the JSON property `appendedTag` # @return [String] attr_accessor :appended_tag # Required. Assets associated to this creative. # Assets can be associated to the creative in one of following roles: # * `ASSET_ROLE_UNSPECIFIED` # * `ASSET_ROLE_MAIN` # * `ASSET_ROLE_BACKUP` # * `ASSET_ROLE_POLITE_LOAD` # Corresponds to the JSON property `assets` # @return [Array] attr_accessor :assets # Output only. The unique ID of the Campaign Manager placement associated with # the # creative. # This field is only applicable for creatives that are synced from Campaign # Manager. # Corresponds to the JSON property `cmPlacementId` # @return [Fixnum] attr_accessor :cm_placement_id # A Campaign Manager tracking ad. # Corresponds to the JSON property `cmTrackingAd` # @return [Google::Apis::DisplayvideoV1::CmTrackingAd] attr_accessor :cm_tracking_ad # The IDs of companion creatives for a video creative. # You can assign existing display creatives (with image or HTML5 assets) # to serve surrounding the publisher's video player. Companions display # around the video player while the video is playing and remain after the # video has completed. # Creatives contain additional dimensions # can not be companion creatives. # This field is only supported for following # creative_type: # * `CREATIVE_TYPE_AUDIO` # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `companionCreativeIds` # @return [Array] attr_accessor :companion_creative_ids # Counter events for a rich media creative. # Counters track the number of times that a user interacts with any part of a # rich media creative in a specified way (mouse-overs, mouse-outs, clicks, # taps, data loading, keyboard entries, etc.). # Any event that can be captured in the creative can be recorded as a # counter. # Leave it empty or unset for creatives containing image assets only. # Corresponds to the JSON property `counterEvents` # @return [Array] attr_accessor :counter_events # Output only. The timestamp when the creative was created. Assigned by # the system. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Output only. A list of attributes of the creative that is generated by the # system. # Corresponds to the JSON property `creativeAttributes` # @return [Array] attr_accessor :creative_attributes # Output only. The unique ID of the creative. Assigned by the system. # Corresponds to the JSON property `creativeId` # @return [Fixnum] attr_accessor :creative_id # Required. Immutable. The type of the creative. # Corresponds to the JSON property `creativeType` # @return [String] attr_accessor :creative_type # Dimensions. # Corresponds to the JSON property `dimensions` # @return [Google::Apis::DisplayvideoV1::Dimensions] attr_accessor :dimensions # Required. The display name of the creative. # Must be UTF-8 encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. Indicates whether the creative is dynamic. # Corresponds to the JSON property `dynamic` # @return [Boolean] attr_accessor :dynamic alias_method :dynamic?, :dynamic # Required. Controls whether or not the creative can serve. # Accepted values are: # * `ENTITY_STATUS_ACTIVE` # * `ENTITY_STATUS_ARCHIVED` # * `ENTITY_STATUS_PAUSED` # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Required. Exit events for this creative. # An exit (also known as a click tag) is any area in your creative that # someone can click or tap to open an advertiser's landing page. # Every creative must include at least one exit. # You can add an exit to your creative in any of the following ways: # * Use Google Web Designer's tap area. # * Define a JavaScript variable called "clickTag". # * Use the Enabler (Enabler.exit()) to track exits in rich media formats. # Corresponds to the JSON property `exitEvents` # @return [Array] attr_accessor :exit_events # Optional. Indicates the creative will automatically expand on hover. # Optional and only valid for third-party expandable creatives. # Third-party expandable creatives are creatives with following hosting # source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_EXPANDABLE` # Corresponds to the JSON property `expandOnHover` # @return [Boolean] attr_accessor :expand_on_hover alias_method :expand_on_hover?, :expand_on_hover # Optional. Specifies the expanding direction of the creative. # Required and only valid for third-party expandable creatives. # Third-party expandable creatives are creatives with following hosting # source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_EXPANDABLE` # Corresponds to the JSON property `expandingDirection` # @return [String] attr_accessor :expanding_direction # Required. Indicates where the creative is hosted. # Corresponds to the JSON property `hostingSource` # @return [String] attr_accessor :hosting_source # Output only. Indicates the third-party VAST tag creative requires HTML5 Video # support. # Output only and only valid for third-party VAST tag creatives. # Third-party VAST tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `html5Video` # @return [Boolean] attr_accessor :html5_video alias_method :html5_video?, :html5_video # Indicates whether Integral Ad Science (IAS) campaign monitoring is enabled. # To enable this for the creative, make sure the # Advertiser.creative_config.ias_client_id # has been set to your IAS client ID. # Corresponds to the JSON property `iasCampaignMonitoring` # @return [Boolean] attr_accessor :ias_campaign_monitoring alias_method :ias_campaign_monitoring?, :ias_campaign_monitoring # ID information used to link this creative to an external system. # Must be UTF-8 encoded with a length of no more than 10,000 characters. # Corresponds to the JSON property `integrationCode` # @return [String] attr_accessor :integration_code # JavaScript measurement URL from supported third-party verification # providers (ComScore, DoubleVerify, IAS, Moat). HTML script tags are not # supported. # This field is only supported in following # creative_type: # * `CREATIVE_TYPE_NATIVE` # * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` # * `CREATIVE_TYPE_NATIVE_VIDEO` # Corresponds to the JSON property `jsTrackerUrl` # @return [String] attr_accessor :js_tracker_url # Output only. Media duration of the creative. # Applicable when creative_type # is one of: # * `CREATIVE_TYPE_VIDEO` # * `CREATIVE_TYPE_AUDIO` # * `CREATIVE_TYPE_NATIVE_VIDEO` # * `CREATIVE_TYPE_PUBLISHER_HOSTED` # Corresponds to the JSON property `mediaDuration` # @return [String] attr_accessor :media_duration # Output only. The resource name of the creative. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # User notes for this creative. # Must be UTF-8 encoded with a length of no more than 20,000 characters. # Corresponds to the JSON property `notes` # @return [String] attr_accessor :notes # OBA Icon for a Creative # Corresponds to the JSON property `obaIcon` # @return [Google::Apis::DisplayvideoV1::ObaIcon] attr_accessor :oba_icon # The length an audio or a video has been played. # Corresponds to the JSON property `progressOffset` # @return [Google::Apis::DisplayvideoV1::AudioVideoOffset] attr_accessor :progress_offset # Optional. Indicates that the creative relies on HTML5 to render properly. # Optional and only valid for third-party tag creatives. # Third-party tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_STANDARD` # * `CREATIVE_TYPE_EXPANDABLE` # Corresponds to the JSON property `requireHtml5` # @return [Boolean] attr_accessor :require_html5 alias_method :require_html5?, :require_html5 # Optional. Indicates that the creative requires MRAID (Mobile Rich Media Ad # Interface # Definitions system). # Set this if the creative relies on mobile gestures for interactivity, such # as swiping or tapping. # Optional and only valid for third-party tag creatives. # Third-party tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_STANDARD` # * `CREATIVE_TYPE_EXPANDABLE` # Corresponds to the JSON property `requireMraid` # @return [Boolean] attr_accessor :require_mraid alias_method :require_mraid?, :require_mraid # Optional. Indicates that the creative will wait for a return ping for # attribution. # Only valid when using a Campaign Manager tracking ad with a third-party ad # server parameter and the $`DC_DBM_TOKEN` macro. # Optional and only valid for third-party tag creatives or third-party VAST # tag creatives. # Third-party tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_STANDARD` # * `CREATIVE_TYPE_EXPANDABLE` # Third-party VAST tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `requirePingForAttribution` # @return [Boolean] attr_accessor :require_ping_for_attribution alias_method :require_ping_for_attribution?, :require_ping_for_attribution # Review statuses for the creative. # Corresponds to the JSON property `reviewStatus` # @return [Google::Apis::DisplayvideoV1::ReviewStatusInfo] attr_accessor :review_status # The length an audio or a video has been played. # Corresponds to the JSON property `skipOffset` # @return [Google::Apis::DisplayvideoV1::AudioVideoOffset] attr_accessor :skip_offset # Whether the user can choose to skip a video creative. # This field is only supported for the following # creative_type: # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `skippable` # @return [Boolean] attr_accessor :skippable alias_method :skippable?, :skippable # Optional. The original third-party tag used for the creative. # Required and only valid for third-party tag creatives. # Third-party tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_STANDARD` # * `CREATIVE_TYPE_EXPANDABLE` # Corresponds to the JSON property `thirdPartyTag` # @return [String] attr_accessor :third_party_tag # Tracking URLs from third parties to track interactions with a video # creative. # This field is only supported for the following # creative_type: # * `CREATIVE_TYPE_AUDIO` # * `CREATIVE_TYPE_VIDEO` # * `CREATIVE_TYPE_NATIVE_VIDEO` # Corresponds to the JSON property `thirdPartyUrls` # @return [Array] attr_accessor :third_party_urls # Timer custom events for a rich media creative. # Timers track the time during which a user views and interacts with a # specified part of a rich media creative. # A creative can have multiple timer events, each timed independently. # Leave it empty or unset for creatives containing image assets only. # Corresponds to the JSON property `timerEvents` # @return [Array] attr_accessor :timer_events # Tracking URLs for analytics providers or third-party ad technology vendors. # The URLs must start with https (except on inventory that doesn't require # SSL compliance). # If using macros in your URL, use only macros supported by Display & Video # 360. # Standard URLs only, no IMG or SCRIPT tags. # This field is only supported in following # creative_type: # * `CREATIVE_TYPE_NATIVE` # * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL` # * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` # * `CREATIVE_TYPE_NATIVE_VIDEO` # Corresponds to the JSON property `trackerUrls` # @return [Array] attr_accessor :tracker_urls # Output only. Audio/Video transcodes. # Display & Video 360 transcodes the main asset into a number of alternative # versions that use different file formats or have different properties # (resolution, audio bit rate, and video bit rate), each designed for # specific video players or bandwidths. # These transcodes give a publisher's system more options to choose from for # each impression on your video and ensures that the appropriate file serves # based on the viewer’s connection and screen size. # This field is only supported in following # creative_type: # * `CREATIVE_TYPE_VIDEO` # * `CREATIVE_TYPE_NATIVE_VIDEO` # * `CREATIVE_TYPE_AUDIO` # Corresponds to the JSON property `transcodes` # @return [Array] attr_accessor :transcodes # A creative identifier provided by a registry that is unique across all # platforms. This is part of the VAST 4.0 standard. # Corresponds to the JSON property `universalAdId` # @return [Google::Apis::DisplayvideoV1::UniversalAdId] attr_accessor :universal_ad_id # Output only. The timestamp when the creative was last updated. Assigned by # the system. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time # Optional. The URL of the VAST tag for a third-party VAST tag creative. # Required and only valid for third-party VAST tag creatives. # Third-party VAST tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `vastTagUrl` # @return [String] attr_accessor :vast_tag_url # Output only. Indicates the third-party VAST tag creative requires VPAID ( # Digital Video # Player-Ad Interface). # Output only and only valid for third-party VAST tag creatives. # Third-party VAST tag creatives are creatives with following # hosting_source: # * `HOSTING_SOURCE_THIRD_PARTY` # combined with following creative_type: # * `CREATIVE_TYPE_VIDEO` # Corresponds to the JSON property `vpaid` # @return [Boolean] attr_accessor :vpaid alias_method :vpaid?, :vpaid def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @additional_dimensions = args[:additional_dimensions] if args.key?(:additional_dimensions) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @appended_tag = args[:appended_tag] if args.key?(:appended_tag) @assets = args[:assets] if args.key?(:assets) @cm_placement_id = args[:cm_placement_id] if args.key?(:cm_placement_id) @cm_tracking_ad = args[:cm_tracking_ad] if args.key?(:cm_tracking_ad) @companion_creative_ids = args[:companion_creative_ids] if args.key?(:companion_creative_ids) @counter_events = args[:counter_events] if args.key?(:counter_events) @create_time = args[:create_time] if args.key?(:create_time) @creative_attributes = args[:creative_attributes] if args.key?(:creative_attributes) @creative_id = args[:creative_id] if args.key?(:creative_id) @creative_type = args[:creative_type] if args.key?(:creative_type) @dimensions = args[:dimensions] if args.key?(:dimensions) @display_name = args[:display_name] if args.key?(:display_name) @dynamic = args[:dynamic] if args.key?(:dynamic) @entity_status = args[:entity_status] if args.key?(:entity_status) @exit_events = args[:exit_events] if args.key?(:exit_events) @expand_on_hover = args[:expand_on_hover] if args.key?(:expand_on_hover) @expanding_direction = args[:expanding_direction] if args.key?(:expanding_direction) @hosting_source = args[:hosting_source] if args.key?(:hosting_source) @html5_video = args[:html5_video] if args.key?(:html5_video) @ias_campaign_monitoring = args[:ias_campaign_monitoring] if args.key?(:ias_campaign_monitoring) @integration_code = args[:integration_code] if args.key?(:integration_code) @js_tracker_url = args[:js_tracker_url] if args.key?(:js_tracker_url) @media_duration = args[:media_duration] if args.key?(:media_duration) @name = args[:name] if args.key?(:name) @notes = args[:notes] if args.key?(:notes) @oba_icon = args[:oba_icon] if args.key?(:oba_icon) @progress_offset = args[:progress_offset] if args.key?(:progress_offset) @require_html5 = args[:require_html5] if args.key?(:require_html5) @require_mraid = args[:require_mraid] if args.key?(:require_mraid) @require_ping_for_attribution = args[:require_ping_for_attribution] if args.key?(:require_ping_for_attribution) @review_status = args[:review_status] if args.key?(:review_status) @skip_offset = args[:skip_offset] if args.key?(:skip_offset) @skippable = args[:skippable] if args.key?(:skippable) @third_party_tag = args[:third_party_tag] if args.key?(:third_party_tag) @third_party_urls = args[:third_party_urls] if args.key?(:third_party_urls) @timer_events = args[:timer_events] if args.key?(:timer_events) @tracker_urls = args[:tracker_urls] if args.key?(:tracker_urls) @transcodes = args[:transcodes] if args.key?(:transcodes) @universal_ad_id = args[:universal_ad_id] if args.key?(:universal_ad_id) @update_time = args[:update_time] if args.key?(:update_time) @vast_tag_url = args[:vast_tag_url] if args.key?(:vast_tag_url) @vpaid = args[:vpaid] if args.key?(:vpaid) end end # Creative requirements configuration for the inventory source. class CreativeConfig include Google::Apis::Core::Hashable # The type of creative that can be assigned to the inventory source. # Corresponds to the JSON property `creativeType` # @return [String] attr_accessor :creative_type # The configuration for display creatives. # Corresponds to the JSON property `displayCreativeConfig` # @return [Google::Apis::DisplayvideoV1::InventorySourceDisplayCreativeConfig] attr_accessor :display_creative_config # The configuration for video creatives. # Corresponds to the JSON property `videoCreativeConfig` # @return [Google::Apis::DisplayvideoV1::InventorySourceVideoCreativeConfig] attr_accessor :video_creative_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creative_type = args[:creative_type] if args.key?(:creative_type) @display_creative_config = args[:display_creative_config] if args.key?(:display_creative_config) @video_creative_config = args[:video_creative_config] if args.key?(:video_creative_config) end end # Describes a custom list entity, such as a custom affinity or custom intent # audience list. class CustomList include Google::Apis::Core::Hashable # Output only. The unique ID of the custom list. Assigned by the system. # Corresponds to the JSON property `customListId` # @return [Fixnum] attr_accessor :custom_list_id # Output only. The display name of the custom list. # . # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The resource name of the custom list. # 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) @custom_list_id = args[:custom_list_id] if args.key?(:custom_list_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) end end # Details of custom list group. # All custom list targeting settings are logically ‘OR’ of each other. class CustomListGroup include Google::Apis::Core::Hashable # Required. All custom list targeting settings in custom list group. # Repeated settings with same id will be ignored. # Corresponds to the JSON property `settings` # @return [Array] attr_accessor :settings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @settings = args[:settings] if args.key?(:settings) end end # Details of custom list targeting setting. class CustomListTargetingSetting include Google::Apis::Core::Hashable # Required. Custom id of custom list targeting setting. # This id is custom_list_id. # Corresponds to the JSON property `customListId` # @return [Fixnum] attr_accessor :custom_list_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_list_id = args[:custom_list_id] if args.key?(:custom_list_id) end end # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. class Date include Google::Apis::Core::Hashable # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 # if specifying a year by itself or a year and month where the day is not # significant. # Corresponds to the JSON property `day` # @return [Fixnum] attr_accessor :day # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. # Corresponds to the JSON property `month` # @return [Fixnum] attr_accessor :month # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. # Corresponds to the JSON property `year` # @return [Fixnum] attr_accessor :year def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day = args[:day] if args.key?(:day) @month = args[:month] if args.key?(:month) @year = args[:year] if args.key?(:year) end end # A date range. class DateRange include Google::Apis::Core::Hashable # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Corresponds to the JSON property `endDate` # @return [Google::Apis::DisplayvideoV1::Date] attr_accessor :end_date # Represents a whole or partial calendar date, e.g. a birthday. The time of day # and time zone are either specified elsewhere or are not significant. The date # is relative to the Proleptic Gregorian Calendar. This can represent: # * A full date, with non-zero year, month and day values # * A month and day value, with a zero year, e.g. an anniversary # * A year on its own, with zero month and day values # * A year and month value, with a zero day, e.g. a credit card expiration date # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Corresponds to the JSON property `startDate` # @return [Google::Apis::DisplayvideoV1::Date] attr_accessor :start_date def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_date = args[:end_date] if args.key?(:end_date) @start_date = args[:start_date] if args.key?(:start_date) end end # 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`. class DayAndTimeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The day of the week for this day and time targeting setting. # Corresponds to the JSON property `dayOfWeek` # @return [String] attr_accessor :day_of_week # Required. The end hour for day and time targeting. Must be between 1 (1 hour # after # start of day) and 24 (end of day). # Corresponds to the JSON property `endHour` # @return [Fixnum] attr_accessor :end_hour # Required. The start hour for day and time targeting. Must be between 0 (start # of day) # and 23 (1 hour before end of day). # Corresponds to the JSON property `startHour` # @return [Fixnum] attr_accessor :start_hour # Required. The mechanism used to determine which timezone to use for this day # and time # targeting setting. # Corresponds to the JSON property `timeZoneResolution` # @return [String] attr_accessor :time_zone_resolution def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day_of_week = args[:day_of_week] if args.key?(:day_of_week) @end_hour = args[:end_hour] if args.key?(:end_hour) @start_hour = args[:start_hour] if args.key?(:start_hour) @time_zone_resolution = args[:time_zone_resolution] if args.key?(:time_zone_resolution) end end # A request listing which assigned targeting options of a given targeting type # should be deleted. class DeleteAssignedTargetingOptionsRequest include Google::Apis::Core::Hashable # Required. The assigned targeting option IDs to delete. # Corresponds to the JSON property `assignedTargetingOptionIds` # @return [Array] attr_accessor :assigned_targeting_option_ids # Required. Identifies the type of this assigned targeting option. # Corresponds to the JSON property `targetingType` # @return [String] attr_accessor :targeting_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_targeting_option_ids = args[:assigned_targeting_option_ids] if args.key?(:assigned_targeting_option_ids) @targeting_type = args[:targeting_type] if args.key?(:targeting_type) end end # 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`. class DeviceMakeModelAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the device make and model. # 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_DEVICE_MAKE_MODEL`. # 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 device make and model. This will be populated in the # device_make_model_details # field of a TargetingOption when # targeting_type is # `TARGETING_TYPE_DEVICE_MAKE_MODEL`. class DeviceMakeModelTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the device make and model. # 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 # Targeting details for device type. This will be # populated in the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_DEVICE_TYPE`. class DeviceTypeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the device type. # Corresponds to the JSON property `deviceType` # @return [String] attr_accessor :device_type # Required. ID of the device type. # 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) @device_type = args[:device_type] if args.key?(:device_type) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable device type. This will be populated in the # device_type_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_DEVICE_TYPE`. class DeviceTypeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The device type that is used to be targeted. # Corresponds to the JSON property `deviceType` # @return [String] attr_accessor :device_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_type = args[:device_type] if args.key?(:device_type) end end # 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`. class DigitalContentLabelAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the digital content label rating tier. # Corresponds to the JSON property `contentRatingTier` # @return [String] attr_accessor :content_rating_tier # Required. ID of the digital content label to be EXCLUDED. # Corresponds to the JSON property `excludedTargetingOptionId` # @return [String] attr_accessor :excluded_targeting_option_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_rating_tier = args[:content_rating_tier] if args.key?(:content_rating_tier) @excluded_targeting_option_id = args[:excluded_targeting_option_id] if args.key?(:excluded_targeting_option_id) end end # Represents a targetable digital content label rating tier. This will be # populated in the # digital_content_label_details # field of the TargetingOption when # targeting_type is # `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. class DigitalContentLabelTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. An enum for the content label brand safety tiers. # Corresponds to the JSON property `contentRatingTier` # @return [String] attr_accessor :content_rating_tier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content_rating_tier = args[:content_rating_tier] if args.key?(:content_rating_tier) end end # Dimensions. class Dimensions include Google::Apis::Core::Hashable # The height in pixels. # Corresponds to the JSON property `heightPixels` # @return [Fixnum] attr_accessor :height_pixels # The width in pixels. # Corresponds to the JSON property `widthPixels` # @return [Fixnum] attr_accessor :width_pixels def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @height_pixels = args[:height_pixels] if args.key?(:height_pixels) @width_pixels = args[:width_pixels] if args.key?(:width_pixels) end end # Details of DoubleVerify settings. class DoubleVerify include Google::Apis::Core::Hashable # Details of DoubleVerify star ratings settings. # Corresponds to the JSON property `appStarRating` # @return [Google::Apis::DisplayvideoV1::DoubleVerifyAppStarRating] attr_accessor :app_star_rating # Avoid bidding on apps with the age rating. # Corresponds to the JSON property `avoidedAgeRatings` # @return [Array] attr_accessor :avoided_age_ratings # Settings for brand safety controls. # Corresponds to the JSON property `brandSafetyCategories` # @return [Google::Apis::DisplayvideoV1::DoubleVerifyBrandSafetyCategories] attr_accessor :brand_safety_categories # Details of DoubleVerify display viewability settings. # Corresponds to the JSON property `displayViewability` # @return [Google::Apis::DisplayvideoV1::DoubleVerifyDisplayViewability] attr_accessor :display_viewability # DoubleVerify Fraud & Invalid Traffic settings. # Corresponds to the JSON property `fraudInvalidTraffic` # @return [Google::Apis::DisplayvideoV1::DoubleVerifyFraudInvalidTraffic] attr_accessor :fraud_invalid_traffic # Details of DoubleVerify video viewability settings. # Corresponds to the JSON property `videoViewability` # @return [Google::Apis::DisplayvideoV1::DoubleVerifyVideoViewability] attr_accessor :video_viewability def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @app_star_rating = args[:app_star_rating] if args.key?(:app_star_rating) @avoided_age_ratings = args[:avoided_age_ratings] if args.key?(:avoided_age_ratings) @brand_safety_categories = args[:brand_safety_categories] if args.key?(:brand_safety_categories) @display_viewability = args[:display_viewability] if args.key?(:display_viewability) @fraud_invalid_traffic = args[:fraud_invalid_traffic] if args.key?(:fraud_invalid_traffic) @video_viewability = args[:video_viewability] if args.key?(:video_viewability) end end # Details of DoubleVerify star ratings settings. class DoubleVerifyAppStarRating include Google::Apis::Core::Hashable # Avoid bidding on apps with insufficient star ratings. # Corresponds to the JSON property `avoidInsufficientStarRating` # @return [Boolean] attr_accessor :avoid_insufficient_star_rating alias_method :avoid_insufficient_star_rating?, :avoid_insufficient_star_rating # Avoid bidding on apps with the star ratings. # Corresponds to the JSON property `avoidedStarRating` # @return [String] attr_accessor :avoided_star_rating def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @avoid_insufficient_star_rating = args[:avoid_insufficient_star_rating] if args.key?(:avoid_insufficient_star_rating) @avoided_star_rating = args[:avoided_star_rating] if args.key?(:avoided_star_rating) end end # Settings for brand safety controls. class DoubleVerifyBrandSafetyCategories include Google::Apis::Core::Hashable # Unknown or unrateable. # Corresponds to the JSON property `avoidUnknownBrandSafetyCategory` # @return [Boolean] attr_accessor :avoid_unknown_brand_safety_category alias_method :avoid_unknown_brand_safety_category?, :avoid_unknown_brand_safety_category # Brand safety high severity avoidance categories. # Corresponds to the JSON property `avoidedHighSeverityCategories` # @return [Array] attr_accessor :avoided_high_severity_categories # Brand safety medium severity avoidance categories. # Corresponds to the JSON property `avoidedMediumSeverityCategories` # @return [Array] attr_accessor :avoided_medium_severity_categories def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @avoid_unknown_brand_safety_category = args[:avoid_unknown_brand_safety_category] if args.key?(:avoid_unknown_brand_safety_category) @avoided_high_severity_categories = args[:avoided_high_severity_categories] if args.key?(:avoided_high_severity_categories) @avoided_medium_severity_categories = args[:avoided_medium_severity_categories] if args.key?(:avoided_medium_severity_categories) end end # Details of DoubleVerify display viewability settings. class DoubleVerifyDisplayViewability include Google::Apis::Core::Hashable # Target web and app inventory to maximize IAB viewable rate. # Corresponds to the JSON property `iab` # @return [String] attr_accessor :iab # Target web and app inventory to maximize 100% viewable duration. # Corresponds to the JSON property `viewableDuring` # @return [String] attr_accessor :viewable_during def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @iab = args[:iab] if args.key?(:iab) @viewable_during = args[:viewable_during] if args.key?(:viewable_during) end end # DoubleVerify Fraud & Invalid Traffic settings. class DoubleVerifyFraudInvalidTraffic include Google::Apis::Core::Hashable # Insufficient Historical Fraud & IVT Stats. # Corresponds to the JSON property `avoidInsufficientOption` # @return [Boolean] attr_accessor :avoid_insufficient_option alias_method :avoid_insufficient_option?, :avoid_insufficient_option # Avoid Sites and Apps with historical Fraud & IVT. # Corresponds to the JSON property `avoidedFraudOption` # @return [String] attr_accessor :avoided_fraud_option def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @avoid_insufficient_option = args[:avoid_insufficient_option] if args.key?(:avoid_insufficient_option) @avoided_fraud_option = args[:avoided_fraud_option] if args.key?(:avoided_fraud_option) end end # Details of DoubleVerify video viewability settings. class DoubleVerifyVideoViewability include Google::Apis::Core::Hashable # Target inventory to maximize impressions with 400x300 or greater player # size. # Corresponds to the JSON property `playerImpressionRate` # @return [String] attr_accessor :player_impression_rate # Target web inventory to maximize IAB viewable rate. # Corresponds to the JSON property `videoIab` # @return [String] attr_accessor :video_iab # Target web inventory to maximize fully viewable rate. # Corresponds to the JSON property `videoViewableRate` # @return [String] attr_accessor :video_viewable_rate def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @player_impression_rate = args[:player_impression_rate] if args.key?(:player_impression_rate) @video_iab = args[:video_iab] if args.key?(:video_iab) @video_viewable_rate = args[:video_viewable_rate] if args.key?(:video_viewable_rate) end end # A generic empty message that you can re-use to avoid defining duplicated # empty messages in your APIs. A typical example is to use it as the request # or the response type of an API method. For instance: # service Foo ` # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); # ` # The JSON representation for `Empty` is empty JSON object ````. class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Assigned environment targeting option details. This will be populated # in the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_ENVIRONMENT`. class EnvironmentAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The serving environment. # Corresponds to the JSON property `environment` # @return [String] attr_accessor :environment # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., "508010" # for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option). # 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) @environment = args[:environment] if args.key?(:environment) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable environment. This will be populated in the # environment_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_ENVIRONMENT`. class EnvironmentTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The serving environment. # Corresponds to the JSON property `environment` # @return [String] attr_accessor :environment def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @environment = args[:environment] if args.key?(:environment) end end # Details for assigned exchange targeting option. This will be populated in # the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_EXCHANGE`. class ExchangeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_EXCHANGE`. # 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) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Exchange review status for the creative. class ExchangeReviewStatus include Google::Apis::Core::Hashable # The exchange reviewing the creative. # Corresponds to the JSON property `exchange` # @return [String] attr_accessor :exchange # Status of the exchange review. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exchange = args[:exchange] if args.key?(:exchange) @status = args[:status] if args.key?(:status) end end # Represents a targetable exchange. This will be populated in the # exchange_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_EXCHANGE`. class ExchangeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The type of exchange. # Corresponds to the JSON property `exchange` # @return [String] attr_accessor :exchange def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exchange = args[:exchange] if args.key?(:exchange) end end # Exit event of the creative. class ExitEvent include Google::Apis::Core::Hashable # The name of the click tag of the exit event. # The name must be unique within one creative. # Leave it empty or unset for creatives containing image assets only. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The name used to identify this event in reports. # Leave it empty or unset for creatives containing image assets only. # Corresponds to the JSON property `reportingName` # @return [String] attr_accessor :reporting_name # Required. The type of the exit event. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Required. The click through URL of the exit event. # This is required when type is: # * `EXIT_EVENT_TYPE_DEFAULT` # * `EXIT_EVENT_TYPE_BACKUP` # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @reporting_name = args[:reporting_name] if args.key?(:reporting_name) @type = args[:type] if args.key?(:type) @url = args[:url] if args.key?(:url) end end # Describes a first or third party audience list used for targeting. # First party audiences are created via usage of client data. # Third party audiences are provided by Third Party data providers and can only # be licensed to customers. class FirstAndThirdPartyAudience include Google::Apis::Core::Hashable # Output only. The display name of the first and third party audience. # . # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The unique ID of the first and third party audience. Assigned by # the # system. # Corresponds to the JSON property `firstAndThirdPartyAudienceId` # @return [Fixnum] attr_accessor :first_and_third_party_audience_id # Output only. Whether the audience is a first or third party audience. # . # Corresponds to the JSON property `firstAndThirdPartyAudienceType` # @return [String] attr_accessor :first_and_third_party_audience_type # Output only. The resource name of the first and third party audience. # 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) @display_name = args[:display_name] if args.key?(:display_name) @first_and_third_party_audience_id = args[:first_and_third_party_audience_id] if args.key?(:first_and_third_party_audience_id) @first_and_third_party_audience_type = args[:first_and_third_party_audience_type] if args.key?(:first_and_third_party_audience_type) @name = args[:name] if args.key?(:name) end end # Details of first and third party audience group. # All first and third party audience targeting settings are logically ‘OR’ of # each other. class FirstAndThirdPartyAudienceGroup include Google::Apis::Core::Hashable # Required. All first and third party audience targeting settings in first and # third party audience group. # Repeated settings with same id are not allowed. # Corresponds to the JSON property `settings` # @return [Array] attr_accessor :settings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @settings = args[:settings] if args.key?(:settings) end end # Details of first and third party audience targeting setting. class FirstAndThirdPartyAudienceTargetingSetting include Google::Apis::Core::Hashable # Required. First and third party audience id of the first and third party # audience # targeting setting. This id is # first_and_third_party_audience_id. # Corresponds to the JSON property `firstAndThirdPartyAudienceId` # @return [Fixnum] attr_accessor :first_and_third_party_audience_id # The recency of the first and third party audience targeting setting. # Only applicable to first party audiences, otherwise # will be ignored. For more info, refer to # https://support.google.com/displayvideo/answer/2949947#recency # When unspecified, no recency limit will be used. # Corresponds to the JSON property `recency` # @return [String] attr_accessor :recency def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @first_and_third_party_audience_id = args[:first_and_third_party_audience_id] if args.key?(:first_and_third_party_audience_id) @recency = args[:recency] if args.key?(:recency) end end # A strategy that uses a fixed bidding price. class FixedBidStrategy include Google::Apis::Core::Hashable # The fixed bid amount, in micros of the advertiser's currency. # For insertion order entity, # bid_amount_micros should be set as 0. # For line item entity, # bid_amount_micros must be greater # than or equal to billable unit of the given currency and smaller than or # equal to the upper limit 1000000000. # For example, 1500000 represents 1.5 standard units of the currency. # Corresponds to the JSON property `bidAmountMicros` # @return [Fixnum] attr_accessor :bid_amount_micros def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bid_amount_micros = args[:bid_amount_micros] if args.key?(:bid_amount_micros) end end # A single Floodlight group. class FloodlightGroup include Google::Apis::Core::Hashable # Configuration for custom Active View video viewability metrics. # Corresponds to the JSON property `activeViewConfig` # @return [Google::Apis::DisplayvideoV1::ActiveViewVideoViewabilityMetricConfig] attr_accessor :active_view_config # User-defined custom variables owned by the Floodlight group. # Use custom Floodlight variables to create reporting data that is tailored # to your unique business needs. Custom Floodlight variables use the keys # `U1=`, `U2=`, and so on, and can take any values that you choose to pass to # them. You can use them to track virtually any type of data that you collect # about your customers, such as the genre of movie that a customer purchases, # the country to which the item is shipped, and so on. # Custom Floodlight variables may not be used to pass any data that could be # used or recognized as personally identifiable information (PII). # Example: # `custom_variables ` # fields ` # "U1": value ` number_value: 123.4 `, # "U2": value ` string_value: "MyVariable2" `, # "U3": value ` string_value: "MyVariable3" ` # ` # `` # Acceptable values for keys are "U1" through "U100", inclusive. String # values must be less than 64 characters long, and cannot contain the # following characters: `"<>`. # Corresponds to the JSON property `customVariables` # @return [Hash] attr_accessor :custom_variables # Required. The display name of the Floodlight group. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The unique ID of the Floodlight group. Assigned by the system. # Corresponds to the JSON property `floodlightGroupId` # @return [Fixnum] attr_accessor :floodlight_group_id # Specifies how many days into the past to look when determining whether to # record a conversion. # Corresponds to the JSON property `lookbackWindow` # @return [Google::Apis::DisplayvideoV1::LookbackWindow] attr_accessor :lookback_window # Output only. The resource name of the Floodlight group. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The web tag type enabled for the Floodlight group. # Corresponds to the JSON property `webTagType` # @return [String] attr_accessor :web_tag_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @active_view_config = args[:active_view_config] if args.key?(:active_view_config) @custom_variables = args[:custom_variables] if args.key?(:custom_variables) @display_name = args[:display_name] if args.key?(:display_name) @floodlight_group_id = args[:floodlight_group_id] if args.key?(:floodlight_group_id) @lookback_window = args[:lookback_window] if args.key?(:lookback_window) @name = args[:name] if args.key?(:name) @web_tag_type = args[:web_tag_type] if args.key?(:web_tag_type) end end # Settings that control the number of times a user may be shown with the same # ad during a given time period. class FrequencyCap include Google::Apis::Core::Hashable # The maximum number of times a user may be shown with the same ad # during this period. Must be greater than 0. # Applicable when unlimited is `false`. # Corresponds to the JSON property `maxImpressions` # @return [Fixnum] attr_accessor :max_impressions # The time unit in which the frequency cap will be applied. # Applicable when unlimited is `false`. # Corresponds to the JSON property `timeUnit` # @return [String] attr_accessor :time_unit # The number of time_unit the frequency cap will # last. # Applicable when unlimited is `false`. # The following restrictions apply based on the value of # time_unit: # * `TIME_UNIT_LIFETIME` - this field is output only and will # default to 1 # * `TIME_UNIT_MONTHS` - must be between 1 and 2 # * `TIME_UNIT_WEEKS` - must be between 1 and 4 # * `TIME_UNIT_DAYS` - must be between 1 and 6 # * `TIME_UNIT_HOURS` - must be between 1 and 23 # * `TIME_UNIT_MINUTES` - must be between 1 and 59 # Corresponds to the JSON property `timeUnitCount` # @return [Fixnum] attr_accessor :time_unit_count # Whether unlimited frequency capping is applied. When this field is set to # `true`, the remaining frequency cap fields are not applicable. # Corresponds to the JSON property `unlimited` # @return [Boolean] attr_accessor :unlimited alias_method :unlimited?, :unlimited def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_impressions = args[:max_impressions] if args.key?(:max_impressions) @time_unit = args[:time_unit] if args.key?(:time_unit) @time_unit_count = args[:time_unit_count] if args.key?(:time_unit_count) @unlimited = args[:unlimited] if args.key?(:unlimited) end end # Details for assigned gender targeting option. This will be populated in # the details field of an AssignedTargetingOption when # targeting_type is # `TARTGETING_TYPE_GENDER`. class GenderAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The gender of the audience. # Corresponds to the JSON property `gender` # @return [String] attr_accessor :gender # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_GENDER`. # 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) @gender = args[:gender] if args.key?(:gender) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable gender. This will be populated in the # gender_details field of a TargetingOption # when targeting_type is # `TARGETING_TYPE_GENDER`. class GenderTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The gender of an audience. # Corresponds to the JSON property `gender` # @return [String] attr_accessor :gender def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @gender = args[:gender] if args.key?(:gender) end end # 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`. class GeoRegionAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the geographic region (e.g., "Ontario, Canada" # ). # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The type of geographic region targeting. # Corresponds to the JSON property `geoRegionType` # @return [String] attr_accessor :geo_region_type # 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 of a # TargetingOption 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) @display_name = args[:display_name] if args.key?(:display_name) @geo_region_type = args[:geo_region_type] if args.key?(:geo_region_type) @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 geographic region. This will be populated in the # geo_region_details field when # targeting_type is # `TARGETING_TYPE_GEO_REGION`. class GeoRegionTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the geographic region (e.g., "Ontario, Canada" # ). # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The type of geographic region targeting. # Corresponds to the JSON property `geoRegionType` # @return [String] attr_accessor :geo_region_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @geo_region_type = args[:geo_region_type] if args.key?(:geo_region_type) end end # Describes a Google audience resource. # Includes Google audience lists. class GoogleAudience include Google::Apis::Core::Hashable # Output only. The display name of the Google audience. # . # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The unique ID of the Google audience. Assigned by the system. # Corresponds to the JSON property `googleAudienceId` # @return [Fixnum] attr_accessor :google_audience_id # Output only. The type of Google audience. # . # Corresponds to the JSON property `googleAudienceType` # @return [String] attr_accessor :google_audience_type # Output only. The resource name of the google audience. # 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) @display_name = args[:display_name] if args.key?(:display_name) @google_audience_id = args[:google_audience_id] if args.key?(:google_audience_id) @google_audience_type = args[:google_audience_type] if args.key?(:google_audience_type) @name = args[:name] if args.key?(:name) end end # Details of Google audience group. # All Google audience targeting settings are logically ‘OR’ of each other. class GoogleAudienceGroup include Google::Apis::Core::Hashable # Required. All Google audience targeting settings in Google audience group. # Repeated settings with same id will be ignored. # Corresponds to the JSON property `settings` # @return [Array] attr_accessor :settings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @settings = args[:settings] if args.key?(:settings) end end # Details of Google audience targeting setting. class GoogleAudienceTargetingSetting include Google::Apis::Core::Hashable # Required. Google audience id of the Google audience targeting setting. # This id is google_audience_id. # Corresponds to the JSON property `googleAudienceId` # @return [Fixnum] attr_accessor :google_audience_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @google_audience_id = args[:google_audience_id] if args.key?(:google_audience_id) end end # Media resource. class GoogleBytestreamMedia include Google::Apis::Core::Hashable # Name of the media resource. # Corresponds to the JSON property `resourceName` # @return [String] attr_accessor :resource_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_name = args[:resource_name] if args.key?(:resource_name) end end # 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`. class HouseholdIncomeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The household income of the audience. # Corresponds to the JSON property `householdIncome` # @return [String] attr_accessor :household_income # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`. # 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) @household_income = args[:household_income] if args.key?(:household_income) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable household income. This will be populated in the # household_income_details field of # a TargetingOption when targeting_type is # `TARGETING_TYPE_HOUSEHOLD_INCOME`. class HouseholdIncomeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The household income of an audience. # Corresponds to the JSON property `householdIncome` # @return [String] attr_accessor :household_income def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @household_income = args[:household_income] if args.key?(:household_income) end end # A filtering option that filters entities by their entity IDs. class IdFilter include Google::Apis::Core::Hashable # TrueView Ads to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `adGroupAdIds` # @return [Array] attr_accessor :ad_group_ad_ids # TrueView Ad Groups to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `adGroupIds` # @return [Array] attr_accessor :ad_group_ids # Campaigns to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `campaignIds` # @return [Array] attr_accessor :campaign_ids # Insertion Orders to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `insertionOrderIds` # @return [Array] attr_accessor :insertion_order_ids # Line Items to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `lineItemIds` # @return [Array] attr_accessor :line_item_ids # Media Products to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. # Corresponds to the JSON property `mediaProductIds` # @return [Array] attr_accessor :media_product_ids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_group_ad_ids = args[:ad_group_ad_ids] if args.key?(:ad_group_ad_ids) @ad_group_ids = args[:ad_group_ids] if args.key?(:ad_group_ids) @campaign_ids = args[:campaign_ids] if args.key?(:campaign_ids) @insertion_order_ids = args[:insertion_order_ids] if args.key?(:insertion_order_ids) @line_item_ids = args[:line_item_ids] if args.key?(:line_item_ids) @media_product_ids = args[:media_product_ids] if args.key?(:media_product_ids) end end # A single insertion order. class InsertionOrder include Google::Apis::Core::Hashable # Output only. The unique ID of the advertiser the insertion order belongs to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Settings that control the bid strategy. # Bid strategy determines the bid price. # Corresponds to the JSON property `bidStrategy` # @return [Google::Apis::DisplayvideoV1::BiddingStrategy] attr_accessor :bid_strategy # Settings that control how insertion order budget is allocated. # Corresponds to the JSON property `budget` # @return [Google::Apis::DisplayvideoV1::InsertionOrderBudget] attr_accessor :budget # Required. Immutable. The unique ID of the campaign that the insertion order # belongs to. # Corresponds to the JSON property `campaignId` # @return [Fixnum] attr_accessor :campaign_id # Required. The display name of the insertion order. # 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 the insertion order can spend its budget # and bid on inventory. # * For # CreateInsertionOrder method, # only `ENTITY_STATUS_DRAFT` is allowed. To activate an insertion order, use # UpdateInsertionOrder method # and update the status to `ENTITY_STATUS_ACTIVE` after creation. # * An insertion order cannot be changed back to `ENTITY_STATUS_DRAFT` status # from any other status. # * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE` if its parent # campaign is not active. # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Settings that control the number of times a user may be shown with the same # ad during a given time period. # Corresponds to the JSON property `frequencyCap` # @return [Google::Apis::DisplayvideoV1::FrequencyCap] attr_accessor :frequency_cap # Output only. The unique ID of the insertion order. Assigned by the system. # Corresponds to the JSON property `insertionOrderId` # @return [Fixnum] attr_accessor :insertion_order_id # 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 insertion order. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Settings that control the rate at which a budget is spent. # Corresponds to the JSON property `pacing` # @return [Google::Apis::DisplayvideoV1::Pacing] attr_accessor :pacing # The partner costs associated with the insertion order. # If absent or empty in # CreateInsertionOrder # method, the newly created insertion order will inherit partner costs from # the partner settings. # Corresponds to the JSON property `partnerCosts` # @return [Array] attr_accessor :partner_costs # Settings that control the performance goal of a campaign or insertion order. # Corresponds to the JSON property `performanceGoal` # @return [Google::Apis::DisplayvideoV1::PerformanceGoal] attr_accessor :performance_goal # Output only. The timestamp when the insertion order 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) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @bid_strategy = args[:bid_strategy] if args.key?(:bid_strategy) @budget = args[:budget] if args.key?(:budget) @campaign_id = args[:campaign_id] if args.key?(:campaign_id) @display_name = args[:display_name] if args.key?(:display_name) @entity_status = args[:entity_status] if args.key?(:entity_status) @frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap) @insertion_order_id = args[:insertion_order_id] if args.key?(:insertion_order_id) @integration_details = args[:integration_details] if args.key?(:integration_details) @name = args[:name] if args.key?(:name) @pacing = args[:pacing] if args.key?(:pacing) @partner_costs = args[:partner_costs] if args.key?(:partner_costs) @performance_goal = args[:performance_goal] if args.key?(:performance_goal) @update_time = args[:update_time] if args.key?(:update_time) end end # Settings that control how insertion order budget is allocated. class InsertionOrderBudget include Google::Apis::Core::Hashable # The type of automation used to manage bid and budget for # the insertion order. # If this field is unspecified in creation, the value defaults to # `INSERTION_ORDER_AUTOMATION_TYPE_NONE`. # Corresponds to the JSON property `automationType` # @return [String] attr_accessor :automation_type # Required. The list of budget segments. Use a budget segment to specify # a specific budget for a given period of time an insertion order is running. # Corresponds to the JSON property `budgetSegments` # @return [Array] attr_accessor :budget_segments # Required. Immutable. The budget unit specifies whether the budget is currency # based or # impression based. # Corresponds to the JSON property `budgetUnit` # @return [String] attr_accessor :budget_unit def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @automation_type = args[:automation_type] if args.key?(:automation_type) @budget_segments = args[:budget_segments] if args.key?(:budget_segments) @budget_unit = args[:budget_unit] if args.key?(:budget_unit) end end # Settings that control the budget of a single budget segment. class InsertionOrderBudgetSegment include Google::Apis::Core::Hashable # Required. The budget amount the insertion order will spend for the given # date_range. # The amount is in micros. Must be greater than 0. For example, 500000000 # represents 500 standard units of the currency. # Corresponds to the JSON property `budgetAmountMicros` # @return [Fixnum] attr_accessor :budget_amount_micros # The ID of the campaign budget linked to this insertion order budget # segment. # Corresponds to the JSON property `campaignBudgetId` # @return [Fixnum] attr_accessor :campaign_budget_id # A date range. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::DisplayvideoV1::DateRange] attr_accessor :date_range # The budget segment description. It can be used to enter Purchase Order # information for each budget segment and have that information printed on # the invoices. # Must be UTF-8 encoded with a length of no more than 80 characters. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @budget_amount_micros = args[:budget_amount_micros] if args.key?(:budget_amount_micros) @campaign_budget_id = args[:campaign_budget_id] if args.key?(:campaign_budget_id) @date_range = args[:date_range] if args.key?(:date_range) @description = args[:description] if args.key?(:description) end end # Details of Integral Ad Science settings. class IntegralAdScience include Google::Apis::Core::Hashable # Display Viewability section (applicable to display line items only). # Corresponds to the JSON property `displayViewability` # @return [String] attr_accessor :display_viewability # Brand Safety - **Unrateable**. # Corresponds to the JSON property `excludeUnrateable` # @return [Boolean] attr_accessor :exclude_unrateable alias_method :exclude_unrateable?, :exclude_unrateable # Ad Fraud settings. # Corresponds to the JSON property `excludedAdFraudRisk` # @return [String] attr_accessor :excluded_ad_fraud_risk # Brand Safety - **Adult content**. # Corresponds to the JSON property `excludedAdultRisk` # @return [String] attr_accessor :excluded_adult_risk # Brand Safety - **Alcohol**. # Corresponds to the JSON property `excludedAlcoholRisk` # @return [String] attr_accessor :excluded_alcohol_risk # Brand Safety - **Drugs**. # Corresponds to the JSON property `excludedDrugsRisk` # @return [String] attr_accessor :excluded_drugs_risk # Brand Safety - **Gambling**. # Corresponds to the JSON property `excludedGamblingRisk` # @return [String] attr_accessor :excluded_gambling_risk # Brand Safety - **Hate speech**. # Corresponds to the JSON property `excludedHateSpeechRisk` # @return [String] attr_accessor :excluded_hate_speech_risk # Brand Safety - **Illegal downloads**. # Corresponds to the JSON property `excludedIllegalDownloadsRisk` # @return [String] attr_accessor :excluded_illegal_downloads_risk # Brand Safety - **Offensive language**. # Corresponds to the JSON property `excludedOffensiveLanguageRisk` # @return [String] attr_accessor :excluded_offensive_language_risk # Brand Safety - **Violence**. # Corresponds to the JSON property `excludedViolenceRisk` # @return [String] attr_accessor :excluded_violence_risk # True advertising quality (applicable to Display line items only). # Corresponds to the JSON property `traqScoreOption` # @return [String] attr_accessor :traq_score_option # Video Viewability Section (applicable to video line items only). # Corresponds to the JSON property `videoViewability` # @return [String] attr_accessor :video_viewability def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_viewability = args[:display_viewability] if args.key?(:display_viewability) @exclude_unrateable = args[:exclude_unrateable] if args.key?(:exclude_unrateable) @excluded_ad_fraud_risk = args[:excluded_ad_fraud_risk] if args.key?(:excluded_ad_fraud_risk) @excluded_adult_risk = args[:excluded_adult_risk] if args.key?(:excluded_adult_risk) @excluded_alcohol_risk = args[:excluded_alcohol_risk] if args.key?(:excluded_alcohol_risk) @excluded_drugs_risk = args[:excluded_drugs_risk] if args.key?(:excluded_drugs_risk) @excluded_gambling_risk = args[:excluded_gambling_risk] if args.key?(:excluded_gambling_risk) @excluded_hate_speech_risk = args[:excluded_hate_speech_risk] if args.key?(:excluded_hate_speech_risk) @excluded_illegal_downloads_risk = args[:excluded_illegal_downloads_risk] if args.key?(:excluded_illegal_downloads_risk) @excluded_offensive_language_risk = args[:excluded_offensive_language_risk] if args.key?(:excluded_offensive_language_risk) @excluded_violence_risk = args[:excluded_violence_risk] if args.key?(:excluded_violence_risk) @traq_score_option = args[:traq_score_option] if args.key?(:traq_score_option) @video_viewability = args[:video_viewability] if args.key?(:video_viewability) end end # Integration details of an entry. class IntegrationDetails include Google::Apis::Core::Hashable # Additional details of the entry in string format. # Must be UTF-8 encoded with a length of no more than 1000 characters. # Corresponds to the JSON property `details` # @return [String] attr_accessor :details # An external identifier to be associated with the entry. # The integration code will show up together with the entry in many # places in the system, for example, reporting. # Must be UTF-8 encoded with a length of no more than 500 characters. # Corresponds to the JSON property `integrationCode` # @return [String] attr_accessor :integration_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @details = args[:details] if args.key?(:details) @integration_code = args[:integration_code] if args.key?(:integration_code) end end # An inventory source. class InventorySource include Google::Apis::Core::Hashable # Whether the inventory source has a guaranteed or non-guaranteed delivery. # Corresponds to the JSON property `commitment` # @return [String] attr_accessor :commitment # The creative requirements of the inventory source. # Not applicable for auction packages. # Corresponds to the JSON property `creativeConfigs` # @return [Array] attr_accessor :creative_configs # The ID in the exchange space that uniquely identifies the inventory source. # Must be unique across buyers within each exchange but not necessarily # unique across exchanges. # Corresponds to the JSON property `dealId` # @return [String] attr_accessor :deal_id # The delivery method of the inventory source. # * For non-guaranteed inventory sources, the only acceptable value is # `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. # * For guaranteed inventory sources, acceptable values are # `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and # `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. # Corresponds to the JSON property `deliveryMethod` # @return [String] attr_accessor :delivery_method # The display name of the inventory source. # Must be UTF-8 encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # The exchange to which the inventory source belongs. # Corresponds to the JSON property `exchange` # @return [String] attr_accessor :exchange # Output only. The unique ID of the inventory source. Assigned by the system. # Corresponds to the JSON property `inventorySourceId` # @return [Fixnum] attr_accessor :inventory_source_id # Denotes the type of the inventory source. # Corresponds to the JSON property `inventorySourceType` # @return [String] attr_accessor :inventory_source_type # Output only. The resource name of the inventory source. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The publisher/seller name of the inventory source. # Corresponds to the JSON property `publisherName` # @return [String] attr_accessor :publisher_name # The rate related settings of the inventory source. # Corresponds to the JSON property `rateDetails` # @return [Google::Apis::DisplayvideoV1::RateDetails] attr_accessor :rate_details # The status related settings of the inventory source. # Corresponds to the JSON property `status` # @return [Google::Apis::DisplayvideoV1::InventorySourceStatus] attr_accessor :status # A time range. # Corresponds to the JSON property `timeRange` # @return [Google::Apis::DisplayvideoV1::TimeRange] attr_accessor :time_range # Output only. The timestamp when the inventory source 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) @commitment = args[:commitment] if args.key?(:commitment) @creative_configs = args[:creative_configs] if args.key?(:creative_configs) @deal_id = args[:deal_id] if args.key?(:deal_id) @delivery_method = args[:delivery_method] if args.key?(:delivery_method) @display_name = args[:display_name] if args.key?(:display_name) @exchange = args[:exchange] if args.key?(:exchange) @inventory_source_id = args[:inventory_source_id] if args.key?(:inventory_source_id) @inventory_source_type = args[:inventory_source_type] if args.key?(:inventory_source_type) @name = args[:name] if args.key?(:name) @publisher_name = args[:publisher_name] if args.key?(:publisher_name) @rate_details = args[:rate_details] if args.key?(:rate_details) @status = args[:status] if args.key?(:status) @time_range = args[:time_range] if args.key?(:time_range) @update_time = args[:update_time] if args.key?(:update_time) end end # Targeting details for inventory source. This will be # populated in the details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_INVENTORY_SOURCE`. class InventorySourceAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the inventory source. Should refer to the # inventory_source_id field of an # InventorySource resource. # Corresponds to the JSON property `inventorySourceId` # @return [Fixnum] attr_accessor :inventory_source_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_source_id = args[:inventory_source_id] if args.key?(:inventory_source_id) end end # The configuration for display creatives. class InventorySourceDisplayCreativeConfig include Google::Apis::Core::Hashable # Dimensions. # Corresponds to the JSON property `creativeSize` # @return [Google::Apis::DisplayvideoV1::Dimensions] attr_accessor :creative_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creative_size = args[:creative_size] if args.key?(:creative_size) end end # A filtering option for filtering on Inventory Source entities. class InventorySourceFilter include Google::Apis::Core::Hashable # Inventory Sources to download by ID. All IDs must belong to the same # Advertiser or # Partner specified in # CreateSdfDownloadTaskRequest. Leave empty to download all Inventory # Sources for the selected Advertiser or Partner. # Corresponds to the JSON property `inventorySourceIds` # @return [Array] attr_accessor :inventory_source_ids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_source_ids = args[:inventory_source_ids] if args.key?(:inventory_source_ids) end end # A collection of targetable inventory sources. class InventorySourceGroup include Google::Apis::Core::Hashable # Required. The display name of the inventory source group. # Must be UTF-8 encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The unique ID of the inventory source group. Assigned by the # system. # Corresponds to the JSON property `inventorySourceGroupId` # @return [Fixnum] attr_accessor :inventory_source_group_id # Output only. The resource name of the inventory source group. # 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) @display_name = args[:display_name] if args.key?(:display_name) @inventory_source_group_id = args[:inventory_source_group_id] if args.key?(:inventory_source_group_id) @name = args[:name] if args.key?(:name) end end # 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`. class InventorySourceGroupAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the inventory source group. Should refer to the # inventory_source_group_id # field of an InventorySourceGroup resource. # Corresponds to the JSON property `inventorySourceGroupId` # @return [Fixnum] attr_accessor :inventory_source_group_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_source_group_id = args[:inventory_source_group_id] if args.key?(:inventory_source_group_id) end end # The status related settings of the inventory source. class InventorySourceStatus include Google::Apis::Core::Hashable # Output only. The configuration status of the inventory source. # Only applicable for guaranteed inventory sources. # Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and # `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. # An inventory source must be configured (fill in the required fields, choose # creatives, and select a default campaign) before it can serve. # Corresponds to the JSON property `configStatus` # @return [String] attr_accessor :config_status # The user-provided reason for pausing this inventory source. # Must not exceed 100 characters. # Only applicable when entity_status # is set to `ENTITY_STATUS_PAUSED`. # Corresponds to the JSON property `entityPauseReason` # @return [String] attr_accessor :entity_pause_reason # Whether or not the inventory source is servable. # Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and # `ENTITY_STATUS_PAUSED`. # Default value is `ENTITY_STATUS_ACTIVE`. # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Output only. The seller-provided reason for pausing this inventory source. # Only applicable for inventory sources synced directly from the # publishers and when seller_status # is set to `ENTITY_STATUS_PAUSED`. # Corresponds to the JSON property `sellerPauseReason` # @return [String] attr_accessor :seller_pause_reason # Output only. The status set by the seller for the inventory source. # Only applicable for inventory sources synced directly from the # publishers. # Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`. # Corresponds to the JSON property `sellerStatus` # @return [String] attr_accessor :seller_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @config_status = args[:config_status] if args.key?(:config_status) @entity_pause_reason = args[:entity_pause_reason] if args.key?(:entity_pause_reason) @entity_status = args[:entity_status] if args.key?(:entity_status) @seller_pause_reason = args[:seller_pause_reason] if args.key?(:seller_pause_reason) @seller_status = args[:seller_status] if args.key?(:seller_status) end end # The configuration for video creatives. class InventorySourceVideoCreativeConfig include Google::Apis::Core::Hashable # The duration requirements for the video creatives that can be assigned to # the inventory source. # Corresponds to the JSON property `duration` # @return [String] attr_accessor :duration def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @duration = args[:duration] if args.key?(:duration) end end # Details for assigned keyword targeting option. This will be populated in the # details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_KEYWORD`. class KeywordAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The keyword, for example `car insurance`. # Positive keyword cannot be offensive word. # Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number # of characters is 80. Maximum number of words is 10. # Corresponds to the JSON property `keyword` # @return [String] attr_accessor :keyword # 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) @keyword = args[:keyword] if args.key?(:keyword) @negative = args[:negative] if args.key?(:negative) end end # Details for assigned language targeting option. This will be populated in the # details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_LANGUAGE`. class LanguageAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the language (e.g., "French"). # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Indicates if this option is being negatively targeted. All assigned # language targeting options on the same line item must have the same value # for this field. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_LANGUAGE`. # 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 language. This will be populated in the # language_details field when # targeting_type is # `TARGETING_TYPE_LANGUAGE`. class LanguageTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the language (e.g., "French"). # 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 line item. class LineItem include Google::Apis::Core::Hashable # Output only. The unique ID of the advertiser the line item belongs to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Settings that control the bid strategy. # Bid strategy determines the bid price. # Corresponds to the JSON property `bidStrategy` # @return [Google::Apis::DisplayvideoV1::BiddingStrategy] attr_accessor :bid_strategy # Settings that control how budget is allocated. # Corresponds to the JSON property `budget` # @return [Google::Apis::DisplayvideoV1::LineItemBudget] attr_accessor :budget # Output only. The unique ID of the campaign that the line item belongs to. # Corresponds to the JSON property `campaignId` # @return [Fixnum] attr_accessor :campaign_id # Settings that control how conversions are counted. # All post-click conversions will be counted. A percentage value can be set # for post-view conversions counting. # Corresponds to the JSON property `conversionCounting` # @return [Google::Apis::DisplayvideoV1::ConversionCountingConfig] attr_accessor :conversion_counting # The IDs of the creatives associated with the line item. # Corresponds to the JSON property `creativeIds` # @return [Array] attr_accessor :creative_ids # Required. The display name of the line item. # 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 the line item can spend its budget and # bid on inventory. # * For CreateLineItem method, only # `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use # UpdateLineItem method and update the # status to `ENTITY_STATUS_ACTIVE` after creation. # * A line item cannot be changed back to `ENTITY_STATUS_DRAFT` status from # any other status. # * If the line item's parent insertion order is not active, the line item # can't spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`. # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Settings that control the active duration of a line item. # Corresponds to the JSON property `flight` # @return [Google::Apis::DisplayvideoV1::LineItemFlight] attr_accessor :flight # Settings that control the number of times a user may be shown with the same # ad during a given time period. # Corresponds to the JSON property `frequencyCap` # @return [Google::Apis::DisplayvideoV1::FrequencyCap] attr_accessor :frequency_cap # Required. Immutable. The unique ID of the insertion order that the line item # belongs to. # Corresponds to the JSON property `insertionOrderId` # @return [Fixnum] attr_accessor :insertion_order_id # Integration details of an entry. # Corresponds to the JSON property `integrationDetails` # @return [Google::Apis::DisplayvideoV1::IntegrationDetails] attr_accessor :integration_details # The IDs of the private inventory sources assigned to the line item. # Corresponds to the JSON property `inventorySourceIds` # @return [Array] attr_accessor :inventory_source_ids # Output only. The unique ID of the line item. Assigned by the system. # Corresponds to the JSON property `lineItemId` # @return [Fixnum] attr_accessor :line_item_id # Required. Immutable. The type of the line item. # Corresponds to the JSON property `lineItemType` # @return [String] attr_accessor :line_item_type # Output only. The resource name of the line item. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Settings that control the rate at which a budget is spent. # Corresponds to the JSON property `pacing` # @return [Google::Apis::DisplayvideoV1::Pacing] attr_accessor :pacing # The partner costs associated with the line item. # If absent or empty in CreateLineItem # method, the newly created line item will inherit partner costs from its # parent insertion order. # Corresponds to the JSON property `partnerCosts` # @return [Array] attr_accessor :partner_costs # Settings that control how partner revenue is calculated. # Corresponds to the JSON property `partnerRevenueModel` # @return [Google::Apis::DisplayvideoV1::PartnerRevenueModel] attr_accessor :partner_revenue_model # Output only. The timestamp when the line item 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) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @bid_strategy = args[:bid_strategy] if args.key?(:bid_strategy) @budget = args[:budget] if args.key?(:budget) @campaign_id = args[:campaign_id] if args.key?(:campaign_id) @conversion_counting = args[:conversion_counting] if args.key?(:conversion_counting) @creative_ids = args[:creative_ids] if args.key?(:creative_ids) @display_name = args[:display_name] if args.key?(:display_name) @entity_status = args[:entity_status] if args.key?(:entity_status) @flight = args[:flight] if args.key?(:flight) @frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap) @insertion_order_id = args[:insertion_order_id] if args.key?(:insertion_order_id) @integration_details = args[:integration_details] if args.key?(:integration_details) @inventory_source_ids = args[:inventory_source_ids] if args.key?(:inventory_source_ids) @line_item_id = args[:line_item_id] if args.key?(:line_item_id) @line_item_type = args[:line_item_type] if args.key?(:line_item_type) @name = args[:name] if args.key?(:name) @pacing = args[:pacing] if args.key?(:pacing) @partner_costs = args[:partner_costs] if args.key?(:partner_costs) @partner_revenue_model = args[:partner_revenue_model] if args.key?(:partner_revenue_model) @update_time = args[:update_time] if args.key?(:update_time) end end # Settings that control how budget is allocated. class LineItemBudget include Google::Apis::Core::Hashable # Required. The type of the budget allocation. # `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when # automatic budget allocation is enabled for the parent insertion order. # Corresponds to the JSON property `budgetAllocationType` # @return [String] attr_accessor :budget_allocation_type # Output only. The budget unit specifies whether the budget is currency based # or impression based. This value is inherited from the parent insertion # order. # Corresponds to the JSON property `budgetUnit` # @return [String] attr_accessor :budget_unit # The maximum budget amount the line item will spend. Must be greater than 0. # When budget_allocation_type is: # * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable # and is set by the system. # * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`, if # budget_unit is: # - `BUDGET_UNIT_CURRENCY`, this field represents maximum budget amount # to spend, in micros of the advertiser's currency. For example, 1500000 # represents 1.5 standard units of the currency. # - `BUDGET_UNIT_IMPRESSIONS`, this field represents the maximum number # of impressions to serve. # * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not # applicable and will be ignored by the system. # Corresponds to the JSON property `maxAmount` # @return [Fixnum] attr_accessor :max_amount def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @budget_allocation_type = args[:budget_allocation_type] if args.key?(:budget_allocation_type) @budget_unit = args[:budget_unit] if args.key?(:budget_unit) @max_amount = args[:max_amount] if args.key?(:max_amount) end end # Settings that control the active duration of a line item. class LineItemFlight include Google::Apis::Core::Hashable # A date range. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::DisplayvideoV1::DateRange] attr_accessor :date_range # Required. The type of the line item's flight dates. # Corresponds to the JSON property `flightDateType` # @return [String] attr_accessor :flight_date_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @flight_date_type = args[:flight_date_type] if args.key?(:flight_date_type) end end # class ListAdvertisersResponse include Google::Apis::Core::Hashable # The list of advertisers. # This list will be absent if empty. # Corresponds to the JSON property `advertisers` # @return [Array] attr_accessor :advertisers # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListAdvertisers` method to retrieve the # next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertisers = args[:advertisers] if args.key?(:advertisers) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListCampaignsResponse include Google::Apis::Core::Hashable # The list of campaigns. # This list will be absent if empty. # Corresponds to the JSON property `campaigns` # @return [Array] attr_accessor :campaigns # A token to retrieve the next page of results. # Pass this value in the page_token field # in the subsequent call to `ListCampaigns` method to retrieve the next page # of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @campaigns = args[:campaigns] if args.key?(:campaigns) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListChannelsResponse include Google::Apis::Core::Hashable # The list of channels. # This list will be absent if empty. # Corresponds to the JSON property `channels` # @return [Array] attr_accessor :channels # A token to retrieve the next page of results. # Pass this value in the page_token field # in the subsequent call to `ListChannels` method to retrieve the next page # of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channels = args[:channels] if args.key?(:channels) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListCombinedAudiencesResponse include Google::Apis::Core::Hashable # The list of combined audiences. # This list will be absent if empty. # Corresponds to the JSON property `combinedAudiences` # @return [Array] attr_accessor :combined_audiences # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListCombinedAudiences` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @combined_audiences = args[:combined_audiences] if args.key?(:combined_audiences) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListCreativesResponse include Google::Apis::Core::Hashable # The list of creatives. # This list will be absent if empty. # Corresponds to the JSON property `creatives` # @return [Array] attr_accessor :creatives # A token to retrieve the next page of results. # Pass this value in the page_token field # in the subsequent call to `ListCreativesRequest` method to retrieve the # next page of results. # If this field is null, it means this is the last page. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @creatives = args[:creatives] if args.key?(:creatives) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListCustomListsResponse include Google::Apis::Core::Hashable # The list of custom lists. # This list will be absent if empty. # Corresponds to the JSON property `customLists` # @return [Array] attr_accessor :custom_lists # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListCustomLists` method to retrieve the # next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @custom_lists = args[:custom_lists] if args.key?(:custom_lists) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListFirstAndThirdPartyAudiencesResponse include Google::Apis::Core::Hashable # The list of first and third party audiences. Audience size properties will # not be included. # This list will be absent if empty. # Corresponds to the JSON property `firstAndThirdPartyAudiences` # @return [Array] attr_accessor :first_and_third_party_audiences # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListFirstAndThirdPartyAudiences` method to # retrieve the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @first_and_third_party_audiences = args[:first_and_third_party_audiences] if args.key?(:first_and_third_party_audiences) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListGoogleAudiencesResponse include Google::Apis::Core::Hashable # The list of Google audiences. # This list will be absent if empty. # Corresponds to the JSON property `googleAudiences` # @return [Array] attr_accessor :google_audiences # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListGoogleAudiences` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @google_audiences = args[:google_audiences] if args.key?(:google_audiences) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListInsertionOrdersResponse include Google::Apis::Core::Hashable # The list of insertion orders. # This list will be absent if empty. # Corresponds to the JSON property `insertionOrders` # @return [Array] attr_accessor :insertion_orders # A token to retrieve the next page of results. # Pass this value in the page_token # field in the subsequent call to `ListInsertionOrders` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @insertion_orders = args[:insertion_orders] if args.key?(:insertion_orders) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message for InventorySourceGroupService.ListInventorySourceGroups. class ListInventorySourceGroupsResponse include Google::Apis::Core::Hashable # The list of inventory source groups. # This list will be absent if empty. # Corresponds to the JSON property `inventorySourceGroups` # @return [Array] attr_accessor :inventory_source_groups # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListInventorySourceGroups` method to # retrieve the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_source_groups = args[:inventory_source_groups] if args.key?(:inventory_source_groups) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListInventorySourcesResponse include Google::Apis::Core::Hashable # The list of inventory sources. # This list will be absent if empty. # Corresponds to the JSON property `inventorySources` # @return [Array] attr_accessor :inventory_sources # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListInventorySources` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_sources = args[:inventory_sources] if args.key?(:inventory_sources) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message for # ListLineItemAssignedTargetingOptions. class ListLineItemAssignedTargetingOptionsResponse include Google::Apis::Core::Hashable # The list of assigned targeting options. # This list will be absent if empty. # Corresponds to the JSON property `assignedTargetingOptions` # @return [Array] attr_accessor :assigned_targeting_options # A token identifying the next page of results. This value should be # specified as the # pageToken in a # subsequent ListLineItemAssignedTargetingOptionsRequest to fetch the # next page of results. This token will be absent if there are no more # assigned_targeting_options # to return. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_targeting_options = args[:assigned_targeting_options] if args.key?(:assigned_targeting_options) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListLineItemsResponse include Google::Apis::Core::Hashable # The list of line items. # This list will be absent if empty. # Corresponds to the JSON property `lineItems` # @return [Array] attr_accessor :line_items # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListLineItems` method to retrieve the # next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @line_items = args[:line_items] if args.key?(:line_items) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListLocationListsResponse include Google::Apis::Core::Hashable # The list of location lists. # This list will be absent if empty. # Corresponds to the JSON property `locationLists` # @return [Array] attr_accessor :location_lists # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListLocationLists` method to retrieve the # next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @location_lists = args[:location_lists] if args.key?(:location_lists) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message for NegativeKeywordListService.ListNegativeKeywordLists. class ListNegativeKeywordListsResponse include Google::Apis::Core::Hashable # The list of negative keyword lists. # This list will be absent if empty. # Corresponds to the JSON property `negativeKeywordLists` # @return [Array] attr_accessor :negative_keyword_lists # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListNegativeKeywordLists` method to # retrieve the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @negative_keyword_lists = args[:negative_keyword_lists] if args.key?(:negative_keyword_lists) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message for # ListTargetingOptions. class ListTargetingOptionsResponse include Google::Apis::Core::Hashable # A token to retrieve the next page of results. # Pass this value in the # page_token # field in the subsequent call to `ListTargetingOptions` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of targeting options. # This list will be absent if empty. # Corresponds to the JSON property `targetingOptions` # @return [Array] attr_accessor :targeting_options def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @targeting_options = args[:targeting_options] if args.key?(:targeting_options) end end # A list of locations used for targeting. class LocationList include Google::Apis::Core::Hashable # Required. Immutable. The unique ID of the advertiser the location list belongs # to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Required. The display name of the location list. # Must be UTF-8 encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The unique ID of the location list. Assigned by the system. # Corresponds to the JSON property `locationListId` # @return [Fixnum] attr_accessor :location_list_id # Required. Immutable. The type of location. All locations in the list will # share this type. # Corresponds to the JSON property `locationType` # @return [String] attr_accessor :location_type # Output only. The resource name of the location list. # 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) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @display_name = args[:display_name] if args.key?(:display_name) @location_list_id = args[:location_list_id] if args.key?(:location_list_id) @location_type = args[:location_type] if args.key?(:location_type) @name = args[:name] if args.key?(:name) end end # Specifies how many days into the past to look when determining whether to # record a conversion. class LookbackWindow include Google::Apis::Core::Hashable # Lookback window, in days, from the last time a given user clicked on one of # your ads. # Corresponds to the JSON property `clickDays` # @return [Fixnum] attr_accessor :click_days # Lookback window, in days, from the last time a given user viewed one of # your ads. # Corresponds to the JSON property `impressionDays` # @return [Fixnum] attr_accessor :impression_days def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @click_days = args[:click_days] if args.key?(:click_days) @impression_days = args[:impression_days] if args.key?(:impression_days) end end # A strategy that automatically adjusts the bid to optimize a specified # performance goal while spending the full budget. class MaximizeSpendBidStrategy include Google::Apis::Core::Hashable # The maximum average CPM that may be bid, in micros of the advertiser's # currency. Must be greater than or equal to a billable unit of the given # currency. # For example, 1500000 represents 1.5 standard units of the currency. # Corresponds to the JSON property `maxAverageCpmBidAmountMicros` # @return [Fixnum] attr_accessor :max_average_cpm_bid_amount_micros # Required. The type of the performance goal that the bidding strategy # tries to minimize while spending the full budget. # `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not supported for # this strategy. # Corresponds to the JSON property `performanceGoalType` # @return [String] attr_accessor :performance_goal_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_average_cpm_bid_amount_micros = args[:max_average_cpm_bid_amount_micros] if args.key?(:max_average_cpm_bid_amount_micros) @performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type) end end # Represents an amount of money with its currency type. class Money include Google::Apis::Core::Hashable # The 3-letter currency code defined in ISO 4217. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Number of nano (10^-9) units of the amount. # The value must be between -999,999,999 and +999,999,999 inclusive. # If `units` is positive, `nanos` must be positive or zero. # If `units` is zero, `nanos` can be positive, zero, or negative. # If `units` is negative, `nanos` must be negative or zero. # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. # Corresponds to the JSON property `nanos` # @return [Fixnum] attr_accessor :nanos # The whole units of the amount. # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. # Corresponds to the JSON property `units` # @return [Fixnum] attr_accessor :units def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @currency_code = args[:currency_code] if args.key?(:currency_code) @nanos = args[:nanos] if args.key?(:nanos) @units = args[:units] if args.key?(:units) end end # A list of negative keywords used for targeting. class NegativeKeywordList include Google::Apis::Core::Hashable # Output only. The unique ID of the advertiser the negative keyword list belongs # to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Required. The display name of the negative keyword list. # Must be UTF-8 encoded with a maximum size of 255 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. The resource name of the negative keyword list. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The unique ID of the negative keyword list. Assigned by the # system. # Corresponds to the JSON property `negativeKeywordListId` # @return [Fixnum] attr_accessor :negative_keyword_list_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) @negative_keyword_list_id = args[:negative_keyword_list_id] if args.key?(:negative_keyword_list_id) end end # 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`. class NegativeKeywordListAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the negative keyword list. Should refer to the # negative_keyword_list_id # field of a NegativeKeywordList resource. # Corresponds to the JSON property `negativeKeywordListId` # @return [Fixnum] attr_accessor :negative_keyword_list_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @negative_keyword_list_id = args[:negative_keyword_list_id] if args.key?(:negative_keyword_list_id) end end # OBA Icon for a Creative class ObaIcon include Google::Apis::Core::Hashable # Required. The click tracking URL of the OBA icon. # Only URLs of the following domains are allowed: # * https://info.evidon.com # * https://l.betrad.com # Corresponds to the JSON property `clickTrackingUrl` # @return [String] attr_accessor :click_tracking_url # Dimensions. # Corresponds to the JSON property `dimensions` # @return [Google::Apis::DisplayvideoV1::Dimensions] attr_accessor :dimensions # Required. The landing page URL of the OBA icon. # Only URLs of the following domains are allowed: # * https://info.evidon.com # * https://l.betrad.com # Corresponds to the JSON property `landingPageUrl` # @return [String] attr_accessor :landing_page_url # The position of the OBA icon on the creative. # Corresponds to the JSON property `position` # @return [String] attr_accessor :position # The program of the OBA icon. For example: “AdChoices”. # Corresponds to the JSON property `program` # @return [String] attr_accessor :program # The MIME type of the OBA icon resource. # Corresponds to the JSON property `resourceMimeType` # @return [String] attr_accessor :resource_mime_type # The URL of the OBA icon resource. # Corresponds to the JSON property `resourceUrl` # @return [String] attr_accessor :resource_url # Required. The view tracking URL of the OBA icon. # Only URLs of the following domains are allowed: # * https://info.evidon.com # * https://l.betrad.com # Corresponds to the JSON property `viewTrackingUrl` # @return [String] attr_accessor :view_tracking_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url) @dimensions = args[:dimensions] if args.key?(:dimensions) @landing_page_url = args[:landing_page_url] if args.key?(:landing_page_url) @position = args[:position] if args.key?(:position) @program = args[:program] if args.key?(:program) @resource_mime_type = args[:resource_mime_type] if args.key?(:resource_mime_type) @resource_url = args[:resource_url] if args.key?(:resource_url) @view_tracking_url = args[:view_tracking_url] if args.key?(:view_tracking_url) end end # 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`. class OnScreenPositionAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The on screen position. # Corresponds to the JSON property `onScreenPosition` # @return [String] attr_accessor :on_screen_position # Required. The targeting_option_id field when # targeting_type is # `TARGETING_TYPE_ON_SCREEN_POSITION`. # 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) @on_screen_position = args[:on_screen_position] if args.key?(:on_screen_position) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable on screen position, which could be used by display # and video ads. This will be populated in the # on_screen_position_details # field when # targeting_type is # `TARGETING_TYPE_ON_SCREEN_POSITION`. class OnScreenPositionTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The on screen position. # Corresponds to the JSON property `onScreenPosition` # @return [String] attr_accessor :on_screen_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @on_screen_position = args[:on_screen_position] if args.key?(:on_screen_position) end end # Assigned operating system targeting option details. This will be # populated in the # operating_system_details # field when # targeting_type is # `TARGETING_TYPE_OPERATING_SYSTEM`. class OperatingSystemAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the operating system. # 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 populated in # targeting_option_id field when # targeting_type is # `TARGETING_TYPE_OPERATING_SYSTEM`. # 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 operating system. This will be populated in the # operating_system_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_OPERATING_SYSTEM`. class OperatingSystemTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the operating system. # 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 # This resource represents a long-running operation that is the result of a # network API call. class Operation include Google::Apis::Core::Hashable # If the value is `false`, it means the operation is still in progress. # If `true`, the operation is completed, and either `error` or `response` is # available. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::DisplayvideoV1::Status] attr_accessor :error # Service-specific metadata associated with the operation. It typically # contains progress information and common metadata such as create time. # Some services might not provide such metadata. Any method that returns a # long-running operation should document the metadata type, if any. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # The server-assigned name, which is only unique within the same service that # originally returns it. If you use the default HTTP mapping, the # `name` should be a resource name ending with `operations/`unique_id``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The normal response of the operation in case of success. If the original # method returns no data on success, such as `Delete`, the response is # `google.protobuf.Empty`. If the original method is standard # `Get`/`Create`/`Update`, the response should be the resource. For other # methods, the response should have the type `XxxResponse`, where `Xxx` # is the original method name. For example, if the original method name # is `TakeSnapshot()`, the inferred response type is # `TakeSnapshotResponse`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # Settings that control the rate at which a budget is spent. class Pacing include Google::Apis::Core::Hashable # Maximum number of impressions to serve every day. # Applicable when the budget is impression based. Must be greater than 0. # Corresponds to the JSON property `dailyMaxImpressions` # @return [Fixnum] attr_accessor :daily_max_impressions # Maximum currency amount to spend every day in micros of # advertiser's currency. # Applicable when the budget is currency based. Must be greater than 0. # For example, for 1.5 standard unit of the currency, set this field to # 1500000. # The value assigned will be rounded to whole billable units for the # relevant currency by the following rules: any positive value less than a # single billable unit will be rounded up to one billable unit and any # value larger than a single billable unit will be rounded down to the # nearest billable value. For example, if the currency's billable unit is # 0.01, and this field is set to 10257770, it will round down to 10250000, # a value of 10.25. If set to 505, it will round up to 10000, a value of # 0.01. # Corresponds to the JSON property `dailyMaxMicros` # @return [Fixnum] attr_accessor :daily_max_micros # Required. The time period in which the pacing budget will be spent. # When automatic budget allocation is enabled at the insertion order via # auto_budget_allocation, this # field is output only and defaults to `PACING_PERIOD_FLIGHT`. # Corresponds to the JSON property `pacingPeriod` # @return [String] attr_accessor :pacing_period # Required. The type of pacing that defines how the budget amount will be # spent across the pacing_period. # Corresponds to the JSON property `pacingType` # @return [String] attr_accessor :pacing_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @daily_max_impressions = args[:daily_max_impressions] if args.key?(:daily_max_impressions) @daily_max_micros = args[:daily_max_micros] if args.key?(:daily_max_micros) @pacing_period = args[:pacing_period] if args.key?(:pacing_period) @pacing_type = args[:pacing_type] if args.key?(:pacing_type) end end # A filtering option that filters on selected file types belonging to a chosen # set of filter entities. class ParentEntityFilter include Google::Apis::Core::Hashable # Required. File types that will be returned. # Corresponds to the JSON property `fileType` # @return [Array] attr_accessor :file_type # The IDs of the specified filter type. This is used to filter entities to # fetch. If filter type is not `FILTER_TYPE_NONE`, at least one ID must be # specified. # Corresponds to the JSON property `filterIds` # @return [Array] attr_accessor :filter_ids # Required. Filter type used to filter fetched entities. # Corresponds to the JSON property `filterType` # @return [String] attr_accessor :filter_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @file_type = args[:file_type] if args.key?(:file_type) @filter_ids = args[:filter_ids] if args.key?(:filter_ids) @filter_type = args[:filter_type] if args.key?(:filter_type) end end # 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`. class ParentalStatusAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The parental status of the audience. # Corresponds to the JSON property `parentalStatus` # @return [String] attr_accessor :parental_status # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. # 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) @parental_status = args[:parental_status] if args.key?(:parental_status) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable parental status. This will be populated in the # parental_status_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_PARENTAL_STATUS`. class ParentalStatusTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The parental status of an audience. # Corresponds to the JSON property `parentalStatus` # @return [String] attr_accessor :parental_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @parental_status = args[:parental_status] if args.key?(:parental_status) end end # Settings that control a partner cost. # A partner cost is any type of expense involved in running a campaign, other # than the costs of purchasing impressions (which is called the media cost) # and using third-party audience segment data (data fee). Some examples of # partner costs include the fees for using DV360, a third-party ad server, # or a third-party ad serving verification service. class PartnerCost include Google::Apis::Core::Hashable # Required. The type of the partner cost. # Corresponds to the JSON property `costType` # @return [String] attr_accessor :cost_type # The CPM fee amount in micros of advertiser's currency. # Applicable when the fee_type is # `PARTNER_FEE_TYPE_CPM_FEE`. Must be greater than or equal to 0. # For example, for 1.5 standard unit of the advertiser's currency, set # this field to 1500000. # Corresponds to the JSON property `feeAmount` # @return [Fixnum] attr_accessor :fee_amount # The media fee percentage in millis (1/1000 of a percent). # Applicable when the fee_type is # `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. # For example: 100 represents 0.1%. # Corresponds to the JSON property `feePercentageMillis` # @return [Fixnum] attr_accessor :fee_percentage_millis # Required. The fee type for this partner cost. # Corresponds to the JSON property `feeType` # @return [String] attr_accessor :fee_type # The invoice type for this partner cost. # * Required when cost_type is one of: # - `PARTNER_COST_TYPE_ADLOOX` # - `PARTNER_COST_TYPE_DOUBLE_VERIFY` # - `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. # * Output only for other types. # Corresponds to the JSON property `invoiceType` # @return [String] attr_accessor :invoice_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cost_type = args[:cost_type] if args.key?(:cost_type) @fee_amount = args[:fee_amount] if args.key?(:fee_amount) @fee_percentage_millis = args[:fee_percentage_millis] if args.key?(:fee_percentage_millis) @fee_type = args[:fee_type] if args.key?(:fee_type) @invoice_type = args[:invoice_type] if args.key?(:invoice_type) end end # Settings that control how partner revenue is calculated. class PartnerRevenueModel include Google::Apis::Core::Hashable # Required. The markup amount of the partner revenue model. # Must be greater than or equal to 0. # * When the markup_type is set to be # `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field represents the CPM # markup in micros of advertiser's currency. For example, 1500000 # represents 1.5 standard units of the currency. # * When the markup_type is set to be # `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field # represents the media cost percent markup in millis. For example, # 100 represents 0.1% (decimal 0.001). # * When the markup_type is set to be # `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this field # represents the total media cost percent markup in millis. For example, # 100 represents 0.1% (decimal 0.001). # Corresponds to the JSON property `markupAmount` # @return [Fixnum] attr_accessor :markup_amount # Required. The markup type of the partner revenue model. # Corresponds to the JSON property `markupType` # @return [String] attr_accessor :markup_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @markup_amount = args[:markup_amount] if args.key?(:markup_amount) @markup_type = args[:markup_type] if args.key?(:markup_type) end end # Settings that control the performance goal of a campaign or insertion order. class PerformanceGoal include Google::Apis::Core::Hashable # The goal amount, in micros of the advertiser's currency. # Applicable when # performance_goal_type is one of: # * `PERFORMANCE_GOAL_TYPE_CPM` # * `PERFORMANCE_GOAL_TYPE_CPC` # * `PERFORMANCE_GOAL_TYPE_CPA` # * `PERFORMANCE_GOAL_TYPE_CPIAVC` # For example 1500000 represents 1.5 standard units of the currency. # Corresponds to the JSON property `performanceGoalAmountMicros` # @return [Fixnum] attr_accessor :performance_goal_amount_micros # The decimal representation of the goal percentage in micros. # Applicable when # performance_goal_type is one of: # * `PERFORMANCE_GOAL_TYPE_CTR` # * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` # For example, 70000 represents 7% (decimal 0.07). # Corresponds to the JSON property `performanceGoalPercentageMicros` # @return [Fixnum] attr_accessor :performance_goal_percentage_micros # A key performance indicator (KPI) string, which can be empty. # Must be UTF-8 encoded with a length of no more than 100 characters. # Applicable when # performance_goal_type is set to # `PERFORMANCE_GOAL_TYPE_OTHER`. # Corresponds to the JSON property `performanceGoalString` # @return [String] attr_accessor :performance_goal_string # Required. The type of the performance goal. # Corresponds to the JSON property `performanceGoalType` # @return [String] attr_accessor :performance_goal_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @performance_goal_amount_micros = args[:performance_goal_amount_micros] if args.key?(:performance_goal_amount_micros) @performance_goal_percentage_micros = args[:performance_goal_percentage_micros] if args.key?(:performance_goal_percentage_micros) @performance_goal_string = args[:performance_goal_string] if args.key?(:performance_goal_string) @performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type) end end # A strategy that automatically adjusts the bid to meet or beat a specified # performance goal. class PerformanceGoalBidStrategy include Google::Apis::Core::Hashable # The maximum average CPM that may be bid, in micros of the advertiser's # currency. Must be greater than or equal to a billable unit of the given # currency. Not applicable when # performance_goal_type # is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. # For example, 1500000 represents 1.5 standard units of the currency. # Corresponds to the JSON property `maxAverageCpmBidAmountMicros` # @return [Fixnum] attr_accessor :max_average_cpm_bid_amount_micros # Required. The performance goal the bidding strategy will attempt to # meet or beat, in micros of the advertiser's currency. # Must be greater than or equal to a billable unit of the given currency and # smaller or equal to upper bounds. Each # performance_goal_type # has its upper bound: # * when # performance_goal_type # is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, # upper bound is 10000.00 USD. # * when # performance_goal_type # is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, # upper bound is 1000.00 USD. # * when # performance_goal_type # is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is # 1000.00 USD. # Example: If set to # `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price will # be based on the probability that each available impression will be # viewable. For example, if viewable CPM target is $2 and an impression is # 40% likely to be viewable, the bid price will be $0.80 CPM (40% of $2). # For example, 1500000 represents 1.5 standard units of the currency. # Corresponds to the JSON property `performanceGoalAmountMicros` # @return [Fixnum] attr_accessor :performance_goal_amount_micros # Required. The type of the performance goal that the bidding strategy # will try to meet or beat. # For line item level usage, the value must be one of: # * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` # * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` # * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. # Corresponds to the JSON property `performanceGoalType` # @return [String] attr_accessor :performance_goal_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @max_average_cpm_bid_amount_micros = args[:max_average_cpm_bid_amount_micros] if args.key?(:max_average_cpm_bid_amount_micros) @performance_goal_amount_micros = args[:performance_goal_amount_micros] if args.key?(:performance_goal_amount_micros) @performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type) end end # 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`. class ProximityLocationListAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the proximity location list. Should refer to the # location_list_id field of a # LocationList resource whose type is # `TARGETING_LOCATION_TYPE_PROXIMITY`. # Corresponds to the JSON property `proximityLocationListId` # @return [Fixnum] attr_accessor :proximity_location_list_id # Required. Radius range for proximity location list. # This represents the size of the area around a chosen location that will be # targeted. # `All` proximity location targeting under a single line item must have the # same radius range value. Set this value to match any existing targeting. # If updated, this field will change the radius range for all proximity # targeting under the line item. # Corresponds to the JSON property `proximityRadiusRange` # @return [String] attr_accessor :proximity_radius_range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @proximity_location_list_id = args[:proximity_location_list_id] if args.key?(:proximity_location_list_id) @proximity_radius_range = args[:proximity_radius_range] if args.key?(:proximity_radius_range) end end # Publisher review status for the creative. class PublisherReviewStatus include Google::Apis::Core::Hashable # The publisher reviewing the creative. # Corresponds to the JSON property `publisherName` # @return [String] attr_accessor :publisher_name # Status of the publisher review. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @publisher_name = args[:publisher_name] if args.key?(:publisher_name) @status = args[:status] if args.key?(:status) end end # The rate related settings of the inventory source. class RateDetails include Google::Apis::Core::Hashable # The rate type. # Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, # `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and # `INVENTORY_SOURCE_RATE_TYPE_CPD`. # Corresponds to the JSON property `inventorySourceRateType` # @return [String] attr_accessor :inventory_source_rate_type # Represents an amount of money with its currency type. # Corresponds to the JSON property `minimumSpend` # @return [Google::Apis::DisplayvideoV1::Money] attr_accessor :minimum_spend # Represents an amount of money with its currency type. # Corresponds to the JSON property `rate` # @return [Google::Apis::DisplayvideoV1::Money] attr_accessor :rate # Required for guaranteed inventory sources. # The number of impressions guaranteed by the seller. # Corresponds to the JSON property `unitsPurchased` # @return [Fixnum] attr_accessor :units_purchased def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @inventory_source_rate_type = args[:inventory_source_rate_type] if args.key?(:inventory_source_rate_type) @minimum_spend = args[:minimum_spend] if args.key?(:minimum_spend) @rate = args[:rate] if args.key?(:rate) @units_purchased = args[:units_purchased] if args.key?(:units_purchased) end end # 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`. class RegionalLocationListAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Indicates if this option is being negatively targeted. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative # Required. ID of the regional location list. Should refer to the # location_list_id field of a # LocationList resource whose type is `TARGETING_LOCATION_TYPE_REGIONAL`. # Corresponds to the JSON property `regionalLocationListId` # @return [Fixnum] attr_accessor :regional_location_list_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @negative = args[:negative] if args.key?(:negative) @regional_location_list_id = args[:regional_location_list_id] if args.key?(:regional_location_list_id) end end # Review statuses for the creative. class ReviewStatusInfo include Google::Apis::Core::Hashable # Represents the basic approval needed for a creative to begin serving. # Summary of # creative_and_landing_page_review_status # and # content_and_policy_review_status. # Corresponds to the JSON property `approvalStatus` # @return [String] attr_accessor :approval_status # Content and policy review status for the creative. # Corresponds to the JSON property `contentAndPolicyReviewStatus` # @return [String] attr_accessor :content_and_policy_review_status # Creative and landing page review status for the creative. # Corresponds to the JSON property `creativeAndLandingPageReviewStatus` # @return [String] attr_accessor :creative_and_landing_page_review_status # Exchange review statuses for the creative. # Corresponds to the JSON property `exchangeReviewStatuses` # @return [Array] attr_accessor :exchange_review_statuses # Publisher review statuses for the creative. # Corresponds to the JSON property `publisherReviewStatuses` # @return [Array] attr_accessor :publisher_review_statuses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @approval_status = args[:approval_status] if args.key?(:approval_status) @content_and_policy_review_status = args[:content_and_policy_review_status] if args.key?(:content_and_policy_review_status) @creative_and_landing_page_review_status = args[:creative_and_landing_page_review_status] if args.key?(:creative_and_landing_page_review_status) @exchange_review_statuses = args[:exchange_review_statuses] if args.key?(:exchange_review_statuses) @publisher_review_statuses = args[:publisher_review_statuses] if args.key?(:publisher_review_statuses) end end # Structured Data File (SDF) related settings. class SdfConfig include Google::Apis::Core::Hashable # An administrator email address to which the SDF processing status reports # will be sent. # Corresponds to the JSON property `adminEmail` # @return [String] attr_accessor :admin_email # Required. The version of SDF being used. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @admin_email = args[:admin_email] if args.key?(:admin_email) @version = args[:version] if args.key?(:version) end end # Type for the response returned # by [SdfDownloadTaskService.CreateSdfDownloadTask]. class SdfDownloadTask include Google::Apis::Core::Hashable # A resource name to be used in # media.download to Download the prepared # files. Resource names have the format # `download/sdfdownloadtasks/media/`media_id``. `media_id` will be made # available by the long running operation service once the task status is # done. # Corresponds to the JSON property `resourceName` # @return [String] attr_accessor :resource_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_name = args[:resource_name] if args.key?(:resource_name) end end # Type for the metadata returned # by [SdfDownloadTaskService.CreateSdfDownloadTask]. class SdfDownloadTaskMetadata include Google::Apis::Core::Hashable # The time when the operation was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The time when execution was completed. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The SDF version used to execute this download task. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @end_time = args[:end_time] if args.key?(:end_time) @version = args[:version] if args.key?(:version) end end # 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`. class SensitiveCategoryAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. ID of the sensitive category to be EXCLUDED. # Corresponds to the JSON property `excludedTargetingOptionId` # @return [String] attr_accessor :excluded_targeting_option_id # Output only. An enum for the DV360 Sensitive category content classifier. # Corresponds to the JSON property `sensitiveCategory` # @return [String] attr_accessor :sensitive_category def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @excluded_targeting_option_id = args[:excluded_targeting_option_id] if args.key?(:excluded_targeting_option_id) @sensitive_category = args[:sensitive_category] if args.key?(:sensitive_category) end end # Represents a targetable sensitive category. This will be # populated in the # sensitive_category_details # field of the TargetingOption when # targeting_type is # `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. class SensitiveCategoryTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. An enum for the DV360 Sensitive category content classifier. # Corresponds to the JSON property `sensitiveCategory` # @return [String] attr_accessor :sensitive_category def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @sensitive_category = args[:sensitive_category] if args.key?(:sensitive_category) end end # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any # user-facing error message should be localized and sent in the # google.rpc.Status.details field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # 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`. class SubExchangeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`. # 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) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable sub-exchange. This will be populated in the # sub_exchange_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_SUB_EXCHANGE`. class SubExchangeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the sub-exchange. # 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 # Represents a single targeting option, which is a targetable concept in # DV360. class TargetingOption include Google::Apis::Core::Hashable # Represents a targetable age range. This will be populated in the # age_range_details field when # targeting_type is # `TARGETING_TYPE_AGE_RANGE`. # Corresponds to the JSON property `ageRangeDetails` # @return [Google::Apis::DisplayvideoV1::AgeRangeTargetingOptionDetails] attr_accessor :age_range_details # 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`. # Corresponds to the JSON property `appCategoryDetails` # @return [Google::Apis::DisplayvideoV1::AppCategoryTargetingOptionDetails] attr_accessor :app_category_details # Represents a targetable authorized seller status. This will be populated in # the # authorized_seller_status_details # field when targeting_type is # `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. # Corresponds to the JSON property `authorizedSellerStatusDetails` # @return [Google::Apis::DisplayvideoV1::AuthorizedSellerStatusTargetingOptionDetails] attr_accessor :authorized_seller_status_details # Represents a targetable browser. This will be populated in the # browser_details field when # targeting_type is # `TARGETING_TYPE_BROWSER`. # Corresponds to the JSON property `browserDetails` # @return [Google::Apis::DisplayvideoV1::BrowserTargetingOptionDetails] attr_accessor :browser_details # Represents a targetable carrier or ISP. This will be populated in the # carrier_and_isp_details field of # a TargetingOption when # targeting_type is # `TARGETING_TYPE_CARRIER_AND_ISP`. # Corresponds to the JSON property `carrierAndIspDetails` # @return [Google::Apis::DisplayvideoV1::CarrierAndIspTargetingOptionDetails] attr_accessor :carrier_and_isp_details # Represents a targetable category. This will be populated in the # category_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_CATEGORY`. # Corresponds to the JSON property `categoryDetails` # @return [Google::Apis::DisplayvideoV1::CategoryTargetingOptionDetails] attr_accessor :category_details # Represents a targetable content instream position, which could be used by # video and audio ads. 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::ContentInstreamPositionTargetingOptionDetails] attr_accessor :content_instream_position_details # Represents a targetable content outstream position, which could be used by # display and video ads. 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::ContentOutstreamPositionTargetingOptionDetails] attr_accessor :content_outstream_position_details # Represents a targetable device make and model. This will be populated in the # device_make_model_details # field of a TargetingOption when # targeting_type is # `TARGETING_TYPE_DEVICE_MAKE_MODEL`. # Corresponds to the JSON property `deviceMakeModelDetails` # @return [Google::Apis::DisplayvideoV1::DeviceMakeModelTargetingOptionDetails] attr_accessor :device_make_model_details # Represents a targetable device type. This will be populated in the # device_type_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_DEVICE_TYPE`. # Corresponds to the JSON property `deviceTypeDetails` # @return [Google::Apis::DisplayvideoV1::DeviceTypeTargetingOptionDetails] attr_accessor :device_type_details # Represents a targetable digital content label rating tier. This will be # populated in the # digital_content_label_details # field of the TargetingOption when # targeting_type is # `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. # Corresponds to the JSON property `digitalContentLabelDetails` # @return [Google::Apis::DisplayvideoV1::DigitalContentLabelTargetingOptionDetails] attr_accessor :digital_content_label_details # Represents a targetable environment. This will be populated in the # environment_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_ENVIRONMENT`. # Corresponds to the JSON property `environmentDetails` # @return [Google::Apis::DisplayvideoV1::EnvironmentTargetingOptionDetails] attr_accessor :environment_details # Represents a targetable exchange. This will be populated in the # exchange_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_EXCHANGE`. # Corresponds to the JSON property `exchangeDetails` # @return [Google::Apis::DisplayvideoV1::ExchangeTargetingOptionDetails] attr_accessor :exchange_details # Represents a targetable gender. This will be populated in the # gender_details field of a TargetingOption # when targeting_type is # `TARGETING_TYPE_GENDER`. # Corresponds to the JSON property `genderDetails` # @return [Google::Apis::DisplayvideoV1::GenderTargetingOptionDetails] attr_accessor :gender_details # Represents a targetable geographic region. This will be populated in the # geo_region_details field when # targeting_type is # `TARGETING_TYPE_GEO_REGION`. # Corresponds to the JSON property `geoRegionDetails` # @return [Google::Apis::DisplayvideoV1::GeoRegionTargetingOptionDetails] attr_accessor :geo_region_details # Represents a targetable household income. This will be populated in the # household_income_details field of # a TargetingOption when targeting_type is # `TARGETING_TYPE_HOUSEHOLD_INCOME`. # Corresponds to the JSON property `householdIncomeDetails` # @return [Google::Apis::DisplayvideoV1::HouseholdIncomeTargetingOptionDetails] attr_accessor :household_income_details # Represents a targetable language. This will be populated in the # language_details field when # targeting_type is # `TARGETING_TYPE_LANGUAGE`. # Corresponds to the JSON property `languageDetails` # @return [Google::Apis::DisplayvideoV1::LanguageTargetingOptionDetails] attr_accessor :language_details # Output only. The resource name for this targeting option. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Represents a targetable on screen position, which could be used by display # and video ads. 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::OnScreenPositionTargetingOptionDetails] attr_accessor :on_screen_position_details # Represents a targetable operating system. This will be populated in the # operating_system_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_OPERATING_SYSTEM`. # Corresponds to the JSON property `operatingSystemDetails` # @return [Google::Apis::DisplayvideoV1::OperatingSystemTargetingOptionDetails] attr_accessor :operating_system_details # Represents a targetable parental status. This will be populated in the # parental_status_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_PARENTAL_STATUS`. # Corresponds to the JSON property `parentalStatusDetails` # @return [Google::Apis::DisplayvideoV1::ParentalStatusTargetingOptionDetails] attr_accessor :parental_status_details # Represents a targetable sensitive category. This will be # populated in the # sensitive_category_details # field of the TargetingOption when # targeting_type is # `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. # Corresponds to the JSON property `sensitiveCategoryDetails` # @return [Google::Apis::DisplayvideoV1::SensitiveCategoryTargetingOptionDetails] attr_accessor :sensitive_category_details # Represents a targetable sub-exchange. This will be populated in the # sub_exchange_details field # of a TargetingOption when # targeting_type is # `TARGETING_TYPE_SUB_EXCHANGE`. # Corresponds to the JSON property `subExchangeDetails` # @return [Google::Apis::DisplayvideoV1::SubExchangeTargetingOptionDetails] attr_accessor :sub_exchange_details # Output only. A unique identifier for this targeting option. The tuple # ``targeting_type`, `targeting_option_id`` will be unique. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id # Output only. The type of this targeting option. # Corresponds to the JSON property `targetingType` # @return [String] attr_accessor :targeting_type # Represents a targetable user rewarded content status for video ads only. 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::UserRewardedContentTargetingOptionDetails] attr_accessor :user_rewarded_content_details # Represents a targetable video player size. This will be populated in the # video_player_size_details # field when targeting_type is # `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. # Corresponds to the JSON property `videoPlayerSizeDetails` # @return [Google::Apis::DisplayvideoV1::VideoPlayerSizeTargetingOptionDetails] attr_accessor :video_player_size_details # Represents a targetable viewability. This will be populated in the # viewability_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_VIEWABILITY`. # Corresponds to the JSON property `viewabilityDetails` # @return [Google::Apis::DisplayvideoV1::ViewabilityTargetingOptionDetails] 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) @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) @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) @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_details = args[:digital_content_label_details] if args.key?(:digital_content_label_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) @language_details = args[:language_details] if args.key?(:language_details) @name = args[:name] if args.key?(:name) @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) @sensitive_category_details = args[:sensitive_category_details] if args.key?(:sensitive_category_details) @sub_exchange_details = args[:sub_exchange_details] if args.key?(:sub_exchange_details) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) @targeting_type = args[:targeting_type] if args.key?(:targeting_type) @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 # Settings for advertisers that use third-party ad servers only. class ThirdPartyOnlyConfig include Google::Apis::Core::Hashable # Whether or not order ID reporting for pixels is enabled. # This value cannot be changed once set to `true`. # Corresponds to the JSON property `pixelOrderIdReportingEnabled` # @return [Boolean] attr_accessor :pixel_order_id_reporting_enabled alias_method :pixel_order_id_reporting_enabled?, :pixel_order_id_reporting_enabled def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @pixel_order_id_reporting_enabled = args[:pixel_order_id_reporting_enabled] if args.key?(:pixel_order_id_reporting_enabled) end end # Tracking URLs from third parties to track interactions with an audio or a # video creative. class ThirdPartyUrl include Google::Apis::Core::Hashable # The type of interaction needs to be tracked by the tracking URL # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Tracking URL used to track the interaction. # Provide a URL with optional path or query string, beginning with `https:`. # For example, https://www.example.com/path # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @type = args[:type] if args.key?(:type) @url = args[:url] if args.key?(:url) end end # 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`. class ThirdPartyVerifierAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Details of Adloox settings. # Corresponds to the JSON property `adloox` # @return [Google::Apis::DisplayvideoV1::Adloox] attr_accessor :adloox # Details of DoubleVerify settings. # Corresponds to the JSON property `doubleVerify` # @return [Google::Apis::DisplayvideoV1::DoubleVerify] attr_accessor :double_verify # Details of Integral Ad Science settings. # Corresponds to the JSON property `integralAdScience` # @return [Google::Apis::DisplayvideoV1::IntegralAdScience] attr_accessor :integral_ad_science def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @adloox = args[:adloox] if args.key?(:adloox) @double_verify = args[:double_verify] if args.key?(:double_verify) @integral_ad_science = args[:integral_ad_science] if args.key?(:integral_ad_science) end end # A time range. class TimeRange include Google::Apis::Core::Hashable # Required. The upper bound of a time range, inclusive. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Required. The lower bound of a time range, inclusive. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # Timer event of the creative. class TimerEvent include Google::Apis::Core::Hashable # Required. The name of the timer event. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The name used to identify this timer event in reports. # Corresponds to the JSON property `reportingName` # @return [String] attr_accessor :reporting_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @reporting_name = args[:reporting_name] if args.key?(:reporting_name) end end # Settings that control the behavior of a single Floodlight activity config. class TrackingFloodlightActivityConfig include Google::Apis::Core::Hashable # Required. The ID of the Floodlight activity. # Corresponds to the JSON property `floodlightActivityId` # @return [Fixnum] attr_accessor :floodlight_activity_id # Required. The number of days after an ad has been clicked in which a # conversion may be counted. # Must be between 0 and 90 inclusive. # Corresponds to the JSON property `postClickLookbackWindowDays` # @return [Fixnum] attr_accessor :post_click_lookback_window_days # Required. The number of days after an ad has been viewed in which a # conversion may be counted. # Must be between 0 and 90 inclusive. # Corresponds to the JSON property `postViewLookbackWindowDays` # @return [Fixnum] attr_accessor :post_view_lookback_window_days def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @floodlight_activity_id = args[:floodlight_activity_id] if args.key?(:floodlight_activity_id) @post_click_lookback_window_days = args[:post_click_lookback_window_days] if args.key?(:post_click_lookback_window_days) @post_view_lookback_window_days = args[:post_view_lookback_window_days] if args.key?(:post_view_lookback_window_days) end end # Represents information about the transcoded audio or video file. class Transcode include Google::Apis::Core::Hashable # The bit rate for the audio stream of the transcoded video, or the bit rate # for the transcoded audio, in kilobits per second. # Corresponds to the JSON property `audioBitRateKbps` # @return [Fixnum] attr_accessor :audio_bit_rate_kbps # The sample rate for the audio stream of the transcoded video, or the sample # rate for the transcoded audio, in hertz. # Corresponds to the JSON property `audioSampleRateHz` # @return [Fixnum] attr_accessor :audio_sample_rate_hz # The transcoding bit rate of the transcoded video, in kilobits per second. # Corresponds to the JSON property `bitRateKbps` # @return [Fixnum] attr_accessor :bit_rate_kbps # Dimensions. # Corresponds to the JSON property `dimensions` # @return [Google::Apis::DisplayvideoV1::Dimensions] attr_accessor :dimensions # The size of the transcoded file, in bytes. # Corresponds to the JSON property `fileSizeBytes` # @return [Fixnum] attr_accessor :file_size_bytes # The frame rate of the transcoded video, in frames per second. # Corresponds to the JSON property `frameRate` # @return [Float] attr_accessor :frame_rate # The MIME type of the transcoded file. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type # The name of the transcoded file. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Indicates if the transcoding was successful. # Corresponds to the JSON property `transcoded` # @return [Boolean] attr_accessor :transcoded alias_method :transcoded?, :transcoded def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audio_bit_rate_kbps = args[:audio_bit_rate_kbps] if args.key?(:audio_bit_rate_kbps) @audio_sample_rate_hz = args[:audio_sample_rate_hz] if args.key?(:audio_sample_rate_hz) @bit_rate_kbps = args[:bit_rate_kbps] if args.key?(:bit_rate_kbps) @dimensions = args[:dimensions] if args.key?(:dimensions) @file_size_bytes = args[:file_size_bytes] if args.key?(:file_size_bytes) @frame_rate = args[:frame_rate] if args.key?(:frame_rate) @mime_type = args[:mime_type] if args.key?(:mime_type) @name = args[:name] if args.key?(:name) @transcoded = args[:transcoded] if args.key?(:transcoded) end end # A creative identifier provided by a registry that is unique across all # platforms. This is part of the VAST 4.0 standard. class UniversalAdId include Google::Apis::Core::Hashable # The unique creative identifier. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The registry provides unique creative identifiers. # Corresponds to the JSON property `registry` # @return [String] attr_accessor :registry def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @id = args[:id] if args.key?(:id) @registry = args[:registry] if args.key?(:registry) end end # Details for assigned URL targeting option. This will be populated in the # details field of an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_URL`. class UrlAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # 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 URL, for example `example.com`. # DV360 supports two levels of subdirectory targeting, for example # `www.example.com/one-subdirectory-level/second-level`, and five levels of # subdomain targeting, for example `five.four.three.two.one.example.com`. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @negative = args[:negative] if args.key?(:negative) @url = args[:url] if args.key?(:url) end end # 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`. class UserRewardedContentAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The targeting_option_id field when # targeting_type is # `TARGETING_TYPE_USER_REWARDED_CONTENT`. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id # Output only. User rewarded content status for video ads. # Corresponds to the JSON property `userRewardedContent` # @return [String] attr_accessor :user_rewarded_content def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) @user_rewarded_content = args[:user_rewarded_content] if args.key?(:user_rewarded_content) end end # Represents a targetable user rewarded content status for video ads only. This # will be populated in the # user_rewarded_content_details # field when # targeting_type is # `TARGETING_TYPE_USER_REWARDED_CONTENT`. class UserRewardedContentTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. User rewarded content status for video ads. # Corresponds to the JSON property `userRewardedContent` # @return [String] attr_accessor :user_rewarded_content def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @user_rewarded_content = args[:user_rewarded_content] if args.key?(:user_rewarded_content) end end # 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. class VideoPlayerSizeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The targeting_option_id field when # targeting_type is # `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id # Output only. The video player size. # Corresponds to the JSON property `videoPlayerSize` # @return [String] attr_accessor :video_player_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) @video_player_size = args[:video_player_size] if args.key?(:video_player_size) end end # Represents a targetable video player size. This will be populated in the # video_player_size_details # field when targeting_type is # `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. class VideoPlayerSizeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The video player size. # Corresponds to the JSON property `videoPlayerSize` # @return [String] attr_accessor :video_player_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @video_player_size = args[:video_player_size] if args.key?(:video_player_size) end end # Assigned viewability targeting option details. This will be populated in the # viewability_details field of # an AssignedTargetingOption when # targeting_type is # `TARGETING_TYPE_VIEWABILITY`. class ViewabilityAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The targeting_option_id of a # TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., "509010" # for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option). # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id # Output only. The predicted viewability percentage. # Corresponds to the JSON property `viewability` # @return [String] attr_accessor :viewability def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) @viewability = args[:viewability] if args.key?(:viewability) end end # Represents a targetable viewability. This will be populated in the # viewability_details field of a # TargetingOption when targeting_type is # `TARGETING_TYPE_VIEWABILITY`. class ViewabilityTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The predicted viewability percentage. # Corresponds to the JSON property `viewability` # @return [String] attr_accessor :viewability def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @viewability = args[:viewability] if args.key?(:viewability) end end end end end