# 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 # Targeting settings related to ad serving of an advertiser. # Corresponds to the JSON property `servingConfig` # @return [Google::Apis::DisplayvideoV1::AdvertiserTargetingConfig] attr_accessor :serving_config # Output only. The timestamp when the advertiser was last updated. Assigned by # the system. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_server_config = args[:ad_server_config] if args.key?(:ad_server_config) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @creative_config = args[:creative_config] if args.key?(:creative_config) @data_access_config = args[:data_access_config] if args.key?(:data_access_config) @display_name = args[:display_name] if args.key?(:display_name) @entity_status = args[:entity_status] if args.key?(:entity_status) @general_config = args[:general_config] if args.key?(:general_config) @integration_details = args[:integration_details] if args.key?(:integration_details) @name = args[:name] if args.key?(:name) @partner_id = args[:partner_id] if args.key?(:partner_id) @serving_config = args[:serving_config] if args.key?(:serving_config) @update_time = args[:update_time] if args.key?(:update_time) end end # Ad server related settings of an advertiser. class AdvertiserAdServerConfig include Google::Apis::Core::Hashable # Settings for advertisers that use both Campaign Manager (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 # Targeting settings related to ad serving of an advertiser. class AdvertiserTargetingConfig include Google::Apis::Core::Hashable # Whether or not connected TV devices are exempt from viewability targeting for # all video line items under the advertiser. # Corresponds to the JSON property `exemptTvFromViewabilityTargeting` # @return [Boolean] attr_accessor :exempt_tv_from_viewability_targeting alias_method :exempt_tv_from_viewability_targeting?, :exempt_tv_from_viewability_targeting def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exempt_tv_from_viewability_targeting = args[:exempt_tv_from_viewability_targeting] if args.key?(:exempt_tv_from_viewability_targeting) end end # Represents a targetable age range. This will be populated in the details field # of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE` # . class AgeRangeAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The age range of an audience. We only support targeting a # continuous age range of an audience. Thus, the age range represented in this # field can be 1) targeted solely, or, 2) part of a larger continuous age range. # The reach of a continuous age range targeting can be expanded by also # targeting an audience of an unknown age. # Corresponds to the JSON property `ageRange` # @return [String] attr_accessor :age_range # Required. The targeting_option_id of a TargetingOption of type ` # TARGETING_TYPE_AGE_RANGE`. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @age_range = args[:age_range] if args.key?(:age_range) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable age range. This will be populated in the # age_range_details field when targeting_type is `TARGETING_TYPE_AGE_RANGE`. class AgeRangeTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The age range of an audience. # Corresponds to the JSON property `ageRange` # @return [String] attr_accessor :age_range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @age_range = args[:age_range] if args.key?(:age_range) end end # Details for assigned app targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_APP`. class AppAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Required. The ID of the app. Android's Play store app uses bundle ID, for # example `com.google.android.gm`. Apple's App store app ID uses 9 digit string, # for example `422689480`. # Corresponds to the JSON property `appId` # @return [String] attr_accessor :app_id # Output only. The display name of the app. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Indicates if this option is being negatively targeted. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @app_id = args[:app_id] if args.key?(:app_id) @display_name = args[:display_name] if args.key?(:display_name) @negative = args[:negative] if args.key?(:negative) end end # Details for assigned app category targeting option. This will be populated in # the app_category_details field of an AssignedTargetingOption when # targeting_type is `TARGETING_TYPE_APP_CATEGORY`. class AppCategoryAssignedTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The display name of the app category. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Indicates if this option is being negatively targeted. # Corresponds to the JSON property `negative` # @return [Boolean] attr_accessor :negative alias_method :negative?, :negative # Required. The targeting_option_id field when targeting_type is ` # TARGETING_TYPE_APP_CATEGORY`. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @negative = args[:negative] if args.key?(:negative) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # Represents a targetable collection of apps. A collection lets you target # dynamic groups of related apps that are maintained by the platform, for # example `All Apps/Google Play/Games`. This will be populated in the # app_category_details field when targeting_type is `TARGETING_TYPE_APP_CATEGORY` # . class AppCategoryTargetingOptionDetails include Google::Apis::Core::Hashable # Output only. The name of the app collection. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) end end # A single asset. class Asset include Google::Apis::Core::Hashable # The asset content. For uploaded assets, the content is the serving path. # Corresponds to the JSON property `content` # @return [String] attr_accessor :content # Media ID of the uploaded asset. This is a unique identifier for the asset. # This ID can be passed to other API calls, e.g. CreateCreative to associate the # asset with a creative. # Corresponds to the JSON property `mediaId` # @return [Fixnum] attr_accessor :media_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content = args[:content] if args.key?(:content) @media_id = args[:media_id] if args.key?(:media_id) end end # Asset association for the creative. class AssetAssociation include Google::Apis::Core::Hashable # A single asset. # Corresponds to the JSON property `asset` # @return [Google::Apis::DisplayvideoV1::Asset] attr_accessor :asset # The role of this asset for the creative. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @asset = args[:asset] if args.key?(:asset) @role = args[:role] if args.key?(:role) end end # An assignment between a targetable inventory source and an inventory source # group. class AssignedInventorySource include Google::Apis::Core::Hashable # Output only. The unique ID of the assigned inventory source. The ID is only # unique within a given inventory source group. It may be reused in other # contexts. # Corresponds to the JSON property `assignedInventorySourceId` # @return [Fixnum] attr_accessor :assigned_inventory_source_id # Required. The ID of the inventory source entity being targeted. # Corresponds to the JSON property `inventorySourceId` # @return [String] attr_accessor :inventory_source_id # Output only. The resource name of the assigned inventory source. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_inventory_source_id = args[:assigned_inventory_source_id] if args.key?(:assigned_inventory_source_id) @inventory_source_id = args[:inventory_source_id] if args.key?(:inventory_source_id) @name = args[:name] if args.key?(:name) end end # An assignment between a location list and a relevant targeting option. # Currently, geo region targeting options are the only supported option for # assignment. class AssignedLocation include Google::Apis::Core::Hashable # Output only. The unique ID of the assigned location. The ID is only unique # within a location list. It may be reused in other contexts. # Corresponds to the JSON property `assignedLocationId` # @return [Fixnum] attr_accessor :assigned_location_id # Output only. The resource name of the assigned location. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The ID of the targeting option assigned to the location list. Must # be of type TARGETING_TYPE_GEO_REGION. # Corresponds to the JSON property `targetingOptionId` # @return [String] attr_accessor :targeting_option_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_location_id = args[:assigned_location_id] if args.key?(:assigned_location_id) @name = args[:name] if args.key?(:name) @targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id) end end # A single assigned targeting option, which defines the state of a targeting # option for an entity with targeting settings. class AssignedTargetingOption include Google::Apis::Core::Hashable # Represents a targetable age range. This will be populated in the details field # of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE` # . # Corresponds to the JSON property `ageRangeDetails` # @return [Google::Apis::DisplayvideoV1::AgeRangeAssignedTargetingOptionDetails] attr_accessor :age_range_details # Details for assigned app category targeting option. This will be populated in # the app_category_details field of an AssignedTargetingOption when # targeting_type is `TARGETING_TYPE_APP_CATEGORY`. # Corresponds to the JSON property `appCategoryDetails` # @return [Google::Apis::DisplayvideoV1::AppCategoryAssignedTargetingOptionDetails] attr_accessor :app_category_details # Details for assigned app targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_APP`. # Corresponds to the JSON property `appDetails` # @return [Google::Apis::DisplayvideoV1::AppAssignedTargetingOptionDetails] attr_accessor :app_details # Output only. The unique ID of the assigned targeting option. The ID is only # unique within a given line item and targeting type. It may be reused in other # contexts. # Corresponds to the JSON property `assignedTargetingOptionId` # @return [String] attr_accessor :assigned_targeting_option_id # Assigned audience group targeting option details. This will be populated in # the details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is UNION, # except for excluded_first_and_third_party_audience_group and # excluded_google_audience_group, of which COMPLEMENT is UNION'ed with other # groups. # Corresponds to the JSON property `audienceGroupDetails` # @return [Google::Apis::DisplayvideoV1::AudienceGroupAssignedTargetingOptionDetails] attr_accessor :audience_group_details # Represents an assigned authorized seller status. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. # Corresponds to the JSON property `authorizedSellerStatusDetails` # @return [Google::Apis::DisplayvideoV1::AuthorizedSellerStatusAssignedTargetingOptionDetails] attr_accessor :authorized_seller_status_details # Details for assigned browser targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_BROWSER`. # Corresponds to the JSON property `browserDetails` # @return [Google::Apis::DisplayvideoV1::BrowserAssignedTargetingOptionDetails] attr_accessor :browser_details # Details for assigned carrier and ISP targeting option. This will be populated # in the details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_CARRIER_AND_ISP`. # Corresponds to the JSON property `carrierAndIspDetails` # @return [Google::Apis::DisplayvideoV1::CarrierAndIspAssignedTargetingOptionDetails] attr_accessor :carrier_and_isp_details # Assigned category targeting option details. This will be populated in the # category_details field when targeting_type is `TARGETING_TYPE_CATEGORY`. # Corresponds to the JSON property `categoryDetails` # @return [Google::Apis::DisplayvideoV1::CategoryAssignedTargetingOptionDetails] attr_accessor :category_details # Details for assigned channel targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_CHANNEL`. # Corresponds to the JSON property `channelDetails` # @return [Google::Apis::DisplayvideoV1::ChannelAssignedTargetingOptionDetails] attr_accessor :channel_details # Assigned content instream position targeting option details. This will be # populated in the content_instream_position_details field when targeting_type # is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. # Corresponds to the JSON property `contentInstreamPositionDetails` # @return [Google::Apis::DisplayvideoV1::ContentInstreamPositionAssignedTargetingOptionDetails] attr_accessor :content_instream_position_details # Assigned content outstream position targeting option details. This will be # populated in the content_outstream_position_details field when targeting_type # is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. # Corresponds to the JSON property `contentOutstreamPositionDetails` # @return [Google::Apis::DisplayvideoV1::ContentOutstreamPositionAssignedTargetingOptionDetails] attr_accessor :content_outstream_position_details # Representation of a segment of time defined on a specific day of the week and # with a start and end time. The time represented by `start_hour` must be before # the time represented by `end_hour`. # Corresponds to the JSON property `dayAndTimeDetails` # @return [Google::Apis::DisplayvideoV1::DayAndTimeAssignedTargetingOptionDetails] attr_accessor :day_and_time_details # Assigned device make and model targeting option details. This will be # populated in the device_make_model_details field when targeting_type is ` # TARGETING_TYPE_DEVICE_MAKE_MODEL`. # Corresponds to the JSON property `deviceMakeModelDetails` # @return [Google::Apis::DisplayvideoV1::DeviceMakeModelAssignedTargetingOptionDetails] attr_accessor :device_make_model_details # Targeting details for device type. This will be populated in the details field # of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_DEVICE_TYPE`. # Corresponds to the JSON property `deviceTypeDetails` # @return [Google::Apis::DisplayvideoV1::DeviceTypeAssignedTargetingOptionDetails] attr_accessor :device_type_details # Targeting details for digital content label. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. # Corresponds to the JSON property `digitalContentLabelExclusionDetails` # @return [Google::Apis::DisplayvideoV1::DigitalContentLabelAssignedTargetingOptionDetails] attr_accessor :digital_content_label_exclusion_details # Assigned environment targeting option details. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_ENVIRONMENT`. # Corresponds to the JSON property `environmentDetails` # @return [Google::Apis::DisplayvideoV1::EnvironmentAssignedTargetingOptionDetails] attr_accessor :environment_details # Details for assigned exchange targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_EXCHANGE`. # Corresponds to the JSON property `exchangeDetails` # @return [Google::Apis::DisplayvideoV1::ExchangeAssignedTargetingOptionDetails] attr_accessor :exchange_details # Details for assigned gender targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARTGETING_TYPE_GENDER`. # Corresponds to the JSON property `genderDetails` # @return [Google::Apis::DisplayvideoV1::GenderAssignedTargetingOptionDetails] attr_accessor :gender_details # Details for assigned geographic region targeting option. This will be # populated in the details field of an AssignedTargetingOption when # targeting_type is `TARGETING_TYPE_GEO_REGION`. # Corresponds to the JSON property `geoRegionDetails` # @return [Google::Apis::DisplayvideoV1::GeoRegionAssignedTargetingOptionDetails] attr_accessor :geo_region_details # Details for assigned household income targeting option. This will be populated # in the details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_HOUSEHOLD_INCOME`. # Corresponds to the JSON property `householdIncomeDetails` # @return [Google::Apis::DisplayvideoV1::HouseholdIncomeAssignedTargetingOptionDetails] attr_accessor :household_income_details # Output only. The inheritance status of the assigned targeting option. # Corresponds to the JSON property `inheritance` # @return [String] attr_accessor :inheritance # Targeting details for inventory source. This will be populated in the details # field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_INVENTORY_SOURCE`. # Corresponds to the JSON property `inventorySourceDetails` # @return [Google::Apis::DisplayvideoV1::InventorySourceAssignedTargetingOptionDetails] attr_accessor :inventory_source_details # Targeting details for inventory source group. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_INVENTORY_SOURCE_GROUP`. # Corresponds to the JSON property `inventorySourceGroupDetails` # @return [Google::Apis::DisplayvideoV1::InventorySourceGroupAssignedTargetingOptionDetails] attr_accessor :inventory_source_group_details # Details for assigned keyword targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_KEYWORD`. # Corresponds to the JSON property `keywordDetails` # @return [Google::Apis::DisplayvideoV1::KeywordAssignedTargetingOptionDetails] attr_accessor :keyword_details # Details for assigned language targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_LANGUAGE`. # Corresponds to the JSON property `languageDetails` # @return [Google::Apis::DisplayvideoV1::LanguageAssignedTargetingOptionDetails] attr_accessor :language_details # Output only. The resource name for this assigned targeting option. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Targeting details for negative keyword list. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Corresponds to the JSON property `negativeKeywordListDetails` # @return [Google::Apis::DisplayvideoV1::NegativeKeywordListAssignedTargetingOptionDetails] attr_accessor :negative_keyword_list_details # On screen position targeting option details. This will be populated in the # on_screen_position_details field when targeting_type is ` # TARGETING_TYPE_ON_SCREEN_POSITION`. # Corresponds to the JSON property `onScreenPositionDetails` # @return [Google::Apis::DisplayvideoV1::OnScreenPositionAssignedTargetingOptionDetails] attr_accessor :on_screen_position_details # Assigned operating system targeting option details. This will be populated in # the operating_system_details field when targeting_type is ` # TARGETING_TYPE_OPERATING_SYSTEM`. # Corresponds to the JSON property `operatingSystemDetails` # @return [Google::Apis::DisplayvideoV1::OperatingSystemAssignedTargetingOptionDetails] attr_accessor :operating_system_details # Details for assigned parental status targeting option. This will be populated # in the details field of an AssignedTargetingOption when targeting_type is ` # TARTGETING_TYPE_PARENTAL_STATUS`. # Corresponds to the JSON property `parentalStatusDetails` # @return [Google::Apis::DisplayvideoV1::ParentalStatusAssignedTargetingOptionDetails] attr_accessor :parental_status_details # Targeting details for proximity location list. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Corresponds to the JSON property `proximityLocationListDetails` # @return [Google::Apis::DisplayvideoV1::ProximityLocationListAssignedTargetingOptionDetails] attr_accessor :proximity_location_list_details # Targeting details for regional location list. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_REGIONAL_LOCATION_LIST`. # Corresponds to the JSON property `regionalLocationListDetails` # @return [Google::Apis::DisplayvideoV1::RegionalLocationListAssignedTargetingOptionDetails] attr_accessor :regional_location_list_details # Targeting details for sensitive category. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. # Corresponds to the JSON property `sensitiveCategoryExclusionDetails` # @return [Google::Apis::DisplayvideoV1::SensitiveCategoryAssignedTargetingOptionDetails] attr_accessor :sensitive_category_exclusion_details # Details for assigned sub-exchange targeting option. This will be populated in # the details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_SUB_EXCHANGE`. # Corresponds to the JSON property `subExchangeDetails` # @return [Google::Apis::DisplayvideoV1::SubExchangeAssignedTargetingOptionDetails] attr_accessor :sub_exchange_details # Output only. Identifies the type of this assigned targeting option. # Corresponds to the JSON property `targetingType` # @return [String] attr_accessor :targeting_type # Assigned third party verifier targeting option details. This will be populated # in the details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_THIRD_PARTY_VERIFIER`. # Corresponds to the JSON property `thirdPartyVerifierDetails` # @return [Google::Apis::DisplayvideoV1::ThirdPartyVerifierAssignedTargetingOptionDetails] attr_accessor :third_party_verifier_details # Details for assigned URL targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_URL`. # Corresponds to the JSON property `urlDetails` # @return [Google::Apis::DisplayvideoV1::UrlAssignedTargetingOptionDetails] attr_accessor :url_details # User rewarded content targeting option details. This will be populated in the # user_rewarded_content_details field when targeting_type is ` # TARGETING_TYPE_USER_REWARDED_CONTENT`. # Corresponds to the JSON property `userRewardedContentDetails` # @return [Google::Apis::DisplayvideoV1::UserRewardedContentAssignedTargetingOptionDetails] attr_accessor :user_rewarded_content_details # Video player size targeting option details. This will be populated in the # video_player_size_details field when targeting_type is ` # TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options is not # supported. Remove all video player size targeting options to achieve this # effect. # Corresponds to the JSON property `videoPlayerSizeDetails` # @return [Google::Apis::DisplayvideoV1::VideoPlayerSizeAssignedTargetingOptionDetails] attr_accessor :video_player_size_details # Assigned viewability targeting option details. This will be populated in the # viewability_details field of an AssignedTargetingOption when targeting_type is # `TARGETING_TYPE_VIEWABILITY`. # Corresponds to the JSON property `viewabilityDetails` # @return [Google::Apis::DisplayvideoV1::ViewabilityAssignedTargetingOptionDetails] attr_accessor :viewability_details def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @age_range_details = args[:age_range_details] if args.key?(:age_range_details) @app_category_details = args[:app_category_details] if args.key?(:app_category_details) @app_details = args[:app_details] if args.key?(:app_details) @assigned_targeting_option_id = args[:assigned_targeting_option_id] if args.key?(:assigned_targeting_option_id) @audience_group_details = args[:audience_group_details] if args.key?(:audience_group_details) @authorized_seller_status_details = args[:authorized_seller_status_details] if args.key?(:authorized_seller_status_details) @browser_details = args[:browser_details] if args.key?(:browser_details) @carrier_and_isp_details = args[:carrier_and_isp_details] if args.key?(:carrier_and_isp_details) @category_details = args[:category_details] if args.key?(:category_details) @channel_details = args[:channel_details] if args.key?(:channel_details) @content_instream_position_details = args[:content_instream_position_details] if args.key?(:content_instream_position_details) @content_outstream_position_details = args[:content_outstream_position_details] if args.key?(:content_outstream_position_details) @day_and_time_details = args[:day_and_time_details] if args.key?(:day_and_time_details) @device_make_model_details = args[:device_make_model_details] if args.key?(:device_make_model_details) @device_type_details = args[:device_type_details] if args.key?(:device_type_details) @digital_content_label_exclusion_details = args[:digital_content_label_exclusion_details] if args.key?(:digital_content_label_exclusion_details) @environment_details = args[:environment_details] if args.key?(:environment_details) @exchange_details = args[:exchange_details] if args.key?(:exchange_details) @gender_details = args[:gender_details] if args.key?(:gender_details) @geo_region_details = args[:geo_region_details] if args.key?(:geo_region_details) @household_income_details = args[:household_income_details] if args.key?(:household_income_details) @inheritance = args[:inheritance] if args.key?(:inheritance) @inventory_source_details = args[:inventory_source_details] if args.key?(:inventory_source_details) @inventory_source_group_details = args[:inventory_source_group_details] if args.key?(:inventory_source_group_details) @keyword_details = args[:keyword_details] if args.key?(:keyword_details) @language_details = args[:language_details] if args.key?(:language_details) @name = args[:name] if args.key?(:name) @negative_keyword_list_details = args[:negative_keyword_list_details] if args.key?(:negative_keyword_list_details) @on_screen_position_details = args[:on_screen_position_details] if args.key?(:on_screen_position_details) @operating_system_details = args[:operating_system_details] if args.key?(:operating_system_details) @parental_status_details = args[:parental_status_details] if args.key?(:parental_status_details) @proximity_location_list_details = args[:proximity_location_list_details] if args.key?(:proximity_location_list_details) @regional_location_list_details = args[:regional_location_list_details] if args.key?(:regional_location_list_details) @sensitive_category_exclusion_details = args[:sensitive_category_exclusion_details] if args.key?(:sensitive_category_exclusion_details) @sub_exchange_details = args[:sub_exchange_details] if args.key?(:sub_exchange_details) @targeting_type = args[:targeting_type] if args.key?(:targeting_type) @third_party_verifier_details = args[:third_party_verifier_details] if args.key?(:third_party_verifier_details) @url_details = args[:url_details] if args.key?(:url_details) @user_rewarded_content_details = args[:user_rewarded_content_details] if args.key?(:user_rewarded_content_details) @video_player_size_details = args[:video_player_size_details] if args.key?(:video_player_size_details) @viewability_details = args[:viewability_details] if args.key?(:viewability_details) end end # A single assigned user role, which defines a user's authorized interaction # with a specified partner or advertiser. class AssignedUserRole include Google::Apis::Core::Hashable # The ID of the advertiser that the assigend user role applies to. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Output only. The ID of the assigned user role. # Corresponds to the JSON property `assignedUserRoleId` # @return [String] attr_accessor :assigned_user_role_id # The ID of the partner that the assigned user role applies to. # Corresponds to the JSON property `partnerId` # @return [Fixnum] attr_accessor :partner_id # Required. The user role to assign to a user for the entity. # Corresponds to the JSON property `userRole` # @return [String] attr_accessor :user_role def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id) @assigned_user_role_id = args[:assigned_user_role_id] if args.key?(:assigned_user_role_id) @partner_id = args[:partner_id] if args.key?(:partner_id) @user_role = args[:user_role] if args.key?(:user_role) 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 # Response message for AdvertiserService.AuditAdvertiser. class AuditAdvertiserResponse include Google::Apis::Core::Hashable # The number of individual targeting options from the following targeting types # that are assigned to a line item under this advertiser. These individual # targeting options count towards the limit of 4500000 ad group targeting # options per advertiser. Qualifying Targeting types: * Channels, URLs, apps, # and collections * Demographic * Google Audiences, including Affinity, Custom # Affinity, and In-market audiences * Inventory source * Keyword * Mobile app # category * User lists * Video targeting * Viewability # Corresponds to the JSON property `adGroupCriteriaCount` # @return [Fixnum] attr_accessor :ad_group_criteria_count # The number of individual targeting options from the following targeting types # that are assigned to a line item under this advertiser. These individual # targeting options count towards the limit of 900000 campaign targeting options # per advertiser. Qualifying Targeting types: * Position * Browser * Connection # speed * Day and time * Device and operating system * Digital content label * # Sensitive categories * Environment * Geography, including business chains and # proximity * ISP * Language * Third-party verification # Corresponds to the JSON property `campaignCriteriaCount` # @return [Fixnum] attr_accessor :campaign_criteria_count # The number of channels created under this advertiser. These channels count # towards the limit of 1000 channels per advertiser. # Corresponds to the JSON property `channelsCount` # @return [Fixnum] attr_accessor :channels_count # The number of negative keyword lists created under this advertiser. These # negative keyword lists count towards the limit of 20 negative keyword lists # per advertiser. # Corresponds to the JSON property `negativeKeywordListsCount` # @return [Fixnum] attr_accessor :negative_keyword_lists_count # The number of negatively targeted channels created under this advertiser. # These negatively targeted channels count towards the limit of 5 negatively # targeted channels per advertiser. # Corresponds to the JSON property `negativelyTargetedChannelsCount` # @return [Fixnum] attr_accessor :negatively_targeted_channels_count # The number of ACTIVE and PAUSED campaigns under this advertiser. These # campaigns count towards the limit of 9999 campaigns per advertiser. # Corresponds to the JSON property `usedCampaignsCount` # @return [Fixnum] attr_accessor :used_campaigns_count # The number of ACTIVE, PAUSED and DRAFT insertion orders under this advertiser. # These insertion orders count towards the limit of 9999 insertion orders per # advertiser. # Corresponds to the JSON property `usedInsertionOrdersCount` # @return [Fixnum] attr_accessor :used_insertion_orders_count # The number of ACTIVE, PAUSED, and DRAFT line items under this advertiser. # These line items count towards the limit of 9999 line items per advertiser. # Corresponds to the JSON property `usedLineItemsCount` # @return [Fixnum] attr_accessor :used_line_items_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_group_criteria_count = args[:ad_group_criteria_count] if args.key?(:ad_group_criteria_count) @campaign_criteria_count = args[:campaign_criteria_count] if args.key?(:campaign_criteria_count) @channels_count = args[:channels_count] if args.key?(:channels_count) @negative_keyword_lists_count = args[:negative_keyword_lists_count] if args.key?(:negative_keyword_lists_count) @negatively_targeted_channels_count = args[:negatively_targeted_channels_count] if args.key?(:negatively_targeted_channels_count) @used_campaigns_count = args[:used_campaigns_count] if args.key?(:used_campaigns_count) @used_insertion_orders_count = args[:used_insertion_orders_count] if args.key?(:used_insertion_orders_count) @used_line_items_count = args[:used_line_items_count] if args.key?(:used_line_items_count) 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 BulkEditAdvertiserAssignedTargetingOptions. class BulkEditAdvertiserAssignedTargetingOptionsRequest 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 BulkEditAdvertiserAssignedTargetingOptionsResponse 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 # Request message for AssignedInventorySourceService.BulkEdit. class BulkEditAssignedInventorySourcesRequest include Google::Apis::Core::Hashable # The ID of the advertiser that owns the parent inventory source group. The # parent partner does not have access to these assigned inventory sources. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # The assigned inventory sources to create in bulk, specified as a list of # AssignedInventorySources. # Corresponds to the JSON property `createdAssignedInventorySources` # @return [Array] attr_accessor :created_assigned_inventory_sources # The IDs of the assigned inventory sources to delete in bulk, specified as a # list of assigned_inventory_source_ids. # Corresponds to the JSON property `deletedAssignedInventorySources` # @return [Array] attr_accessor :deleted_assigned_inventory_sources # The ID of the partner that owns the inventory source group. Only this partner # has write access to these assigned inventory sources. # 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) @created_assigned_inventory_sources = args[:created_assigned_inventory_sources] if args.key?(:created_assigned_inventory_sources) @deleted_assigned_inventory_sources = args[:deleted_assigned_inventory_sources] if args.key?(:deleted_assigned_inventory_sources) @partner_id = args[:partner_id] if args.key?(:partner_id) end end # Response message for AssignedInventorySourceService.BulkEdit. class BulkEditAssignedInventorySourcesResponse include Google::Apis::Core::Hashable # The list of assigned inventory sources that have been successfully created. # This list will be absent if empty. # Corresponds to the JSON property `assignedInventorySources` # @return [Array] attr_accessor :assigned_inventory_sources def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_inventory_sources = args[:assigned_inventory_sources] if args.key?(:assigned_inventory_sources) end end # Request message for AssignedLocationService.BulkEditAssignedLocations. class BulkEditAssignedLocationsRequest include Google::Apis::Core::Hashable # The assigned locations to create in bulk, specified as a list of # AssignedLocations. # Corresponds to the JSON property `createdAssignedLocations` # @return [Array] attr_accessor :created_assigned_locations # The IDs of the assigned locations to delete in bulk, specified as a list of # assigned_location_ids. # Corresponds to the JSON property `deletedAssignedLocations` # @return [Array] attr_accessor :deleted_assigned_locations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @created_assigned_locations = args[:created_assigned_locations] if args.key?(:created_assigned_locations) @deleted_assigned_locations = args[:deleted_assigned_locations] if args.key?(:deleted_assigned_locations) end end # Response message for AssignedLocationService.BulkEditAssignedLocations. class BulkEditAssignedLocationsResponse include Google::Apis::Core::Hashable # The list of assigned locations that have been successfully created. This list # will be absent if empty. # Corresponds to the JSON property `assignedLocations` # @return [Array] attr_accessor :assigned_locations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_locations = args[:assigned_locations] if args.key?(:assigned_locations) end end # Request message for BulkEditAssignedUserRoles. class BulkEditAssignedUserRolesRequest include Google::Apis::Core::Hashable # The assigned user roles to create in batch, specified as a list of # AssignedUserRoles. # Corresponds to the JSON property `createdAssignedUserRoles` # @return [Array] attr_accessor :created_assigned_user_roles # The assigned user roles to delete in batch, specified as a list of # assigned_user_role_ids. The format of assigned_user_role_id is `entityType- # entityid`, for example `partner-123`. # Corresponds to the JSON property `deletedAssignedUserRoles` # @return [Array] attr_accessor :deleted_assigned_user_roles def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @created_assigned_user_roles = args[:created_assigned_user_roles] if args.key?(:created_assigned_user_roles) @deleted_assigned_user_roles = args[:deleted_assigned_user_roles] if args.key?(:deleted_assigned_user_roles) end end # class BulkEditAssignedUserRolesResponse include Google::Apis::Core::Hashable # The list of assigned user roles that have been successfully created. This list # will be absent if empty. # Corresponds to the JSON property `createdAssignedUserRoles` # @return [Array] attr_accessor :created_assigned_user_roles def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @created_assigned_user_roles = args[:created_assigned_user_roles] if args.key?(:created_assigned_user_roles) 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 # Request message for NegativeKeywordService.BulkEditNegativeKeywords. class BulkEditNegativeKeywordsRequest include Google::Apis::Core::Hashable # The negative keywords to create in batch, specified as a list of # NegativeKeywords. # Corresponds to the JSON property `createdNegativeKeywords` # @return [Array] attr_accessor :created_negative_keywords # The negative keywords to delete in batch, specified as a list of # keyword_values. # Corresponds to the JSON property `deletedNegativeKeywords` # @return [Array] attr_accessor :deleted_negative_keywords def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @created_negative_keywords = args[:created_negative_keywords] if args.key?(:created_negative_keywords) @deleted_negative_keywords = args[:deleted_negative_keywords] if args.key?(:deleted_negative_keywords) end end # Response message for NegativeKeywordService.BulkEditNegativeKeywords. class BulkEditNegativeKeywordsResponse include Google::Apis::Core::Hashable # The list of negative keywords that have been successfully created. This list # will be absent if empty. # Corresponds to the JSON property `negativeKeywords` # @return [Array] attr_accessor :negative_keywords def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @negative_keywords = args[:negative_keywords] if args.key?(:negative_keywords) end end # Request message for BulkEditPartnerAssignedTargetingOptions. class BulkEditPartnerAssignedTargetingOptionsRequest include Google::Apis::Core::Hashable # The assigned targeting options to create in batch, specified as a list of ` # CreateAssignedTargetingOptionsRequest`. Supported targeting types: * ` # TARGETING_TYPE_CHANNEL` # 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`. Supported targeting types: * ` # TARGETING_TYPE_CHANNEL` # 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 BulkEditPartnerAssignedTargetingOptionsResponse 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 # Request message for SiteService.BulkEditSites. class BulkEditSitesRequest include Google::Apis::Core::Hashable # The ID of the advertiser that owns the parent channel. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # The sites to create in batch, specified as a list of Sites. # Corresponds to the JSON property `createdSites` # @return [Array] attr_accessor :created_sites # The sites to delete in batch, specified as a list of site url_or_app_ids. # Corresponds to the JSON property `deletedSites` # @return [Array] attr_accessor :deleted_sites # The ID of the partner that owns the parent 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) @created_sites = args[:created_sites] if args.key?(:created_sites) @deleted_sites = args[:deleted_sites] if args.key?(:deleted_sites) @partner_id = args[:partner_id] if args.key?(:partner_id) end end # Response message for SiteService.BulkEditSites. class BulkEditSitesResponse include Google::Apis::Core::Hashable # The list of sites that have been successfully created. This list will be # absent if empty. # Corresponds to the JSON property `sites` # @return [Array] attr_accessor :sites def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @sites = args[:sites] if args.key?(:sites) end end # class BulkListAdvertiserAssignedTargetingOptionsResponse 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 # BulkListAdvertiserAssignedTargetingOptionsRequest 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 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. The IDs of the line items this creative is associated with. To # associate a creative to a line item, use LineItem.creative_ids instead. # Corresponds to the JSON property `lineItemIds` # @return [Array] attr_accessor :line_item_ids # 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) @line_item_ids = args[:line_item_ids] if args.key?(:line_item_ids) @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 # A single custom bidding algorithm. class CustomBiddingAlgorithm include Google::Apis::Core::Hashable # Immutable. The unique ID of the advertiser that owns the custom bidding # algorithm. # Corresponds to the JSON property `advertiserId` # @return [Fixnum] attr_accessor :advertiser_id # Output only. The unique ID of the custom bidding algorithm. Assigned by the # system. # Corresponds to the JSON property `customBiddingAlgorithmId` # @return [Fixnum] attr_accessor :custom_bidding_algorithm_id # Required. Immutable. The type of custom bidding algorithm. # Corresponds to the JSON property `customBiddingAlgorithmType` # @return [String] attr_accessor :custom_bidding_algorithm_type # Required. The display name of the custom bidding algorithm. Must be UTF-8 # encoded with a maximum size of 240 bytes. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Controls whether or not the custom bidding algorithm can be used as a bidding # strategy. Accepted values are: * `ENTITY_STATUS_ACTIVE` * ` # ENTITY_STATUS_ARCHIVED` # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Output only. The resource name of the custom bidding algorithm. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Immutable. The unique ID of the partner that owns the custom bidding algorithm. # 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) @custom_bidding_algorithm_id = args[:custom_bidding_algorithm_id] if args.key?(:custom_bidding_algorithm_id) @custom_bidding_algorithm_type = args[:custom_bidding_algorithm_type] if args.key?(:custom_bidding_algorithm_type) @display_name = args[:display_name] if args.key?(:display_name) @entity_status = args[:entity_status] if args.key?(:entity_status) @name = args[:name] if args.key?(:name) @partner_id = args[:partner_id] if args.key?(:partner_id) 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, such as a birthday. The time of # day and time zone are either specified elsewhere or are insignificant. The # date is relative to the Gregorian Calendar. This can represent one of the # following: * A full date, with non-zero year, month, and day values * A month # and day value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as a credit card expiration date Related types are google.type.TimeOfDay and ` # google.protobuf.Timestamp`. class Date include Google::Apis::Core::Hashable # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to # specify a year by itself or a year and month where the day isn't significant. # Corresponds to the JSON property `day` # @return [Fixnum] attr_accessor :day # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month # and day. # Corresponds to the JSON property `month` # @return [Fixnum] attr_accessor :month # Year of the date. Must be from 1 to 9999, or 0 to specify 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, such as a birthday. The time of # day and time zone are either specified elsewhere or are insignificant. The # date is relative to the Gregorian Calendar. This can represent one of the # following: * A full date, with non-zero year, month, and day values * A month # and day value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as 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, such as a birthday. The time of # day and time zone are either specified elsewhere or are insignificant. The # date is relative to the Gregorian Calendar. This can represent one of the # following: * A full date, with non-zero year, month, and day values * A month # and day value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as 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 # Settings that control which exchanges are enabled for a partner. class ExchangeConfig include Google::Apis::Core::Hashable # All enabled exchanges in the partner. Duplicate enabled exchanges will be # ignored. # Corresponds to the JSON property `enabledExchanges` # @return [Array] attr_accessor :enabled_exchanges def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enabled_exchanges = args[:enabled_exchanges] if args.key?(:enabled_exchanges) end end # An enabled exchange in the partner. class ExchangeConfigEnabledExchange include Google::Apis::Core::Hashable # The enabled exchange. # Corresponds to the JSON property `exchange` # @return [String] attr_accessor :exchange # Output only. Agency ID of Google Ad Manager. The field is only relevant when # Google Ad Manager is the enabled exchange. # Corresponds to the JSON property `googleAdManagerAgencyId` # @return [String] attr_accessor :google_ad_manager_agency_id # Output only. Network ID of Google Ad Manager. The field is only relevant when # Google Ad Manager is the enabled exchange. # Corresponds to the JSON property `googleAdManagerBuyerNetworkId` # @return [String] attr_accessor :google_ad_manager_buyer_network_id # Output only. Seat ID of the enabled exchange. # Corresponds to the JSON property `seatId` # @return [String] attr_accessor :seat_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exchange = args[:exchange] if args.key?(:exchange) @google_ad_manager_agency_id = args[:google_ad_manager_agency_id] if args.key?(:google_ad_manager_agency_id) @google_ad_manager_buyer_network_id = args[:google_ad_manager_buyer_network_id] if args.key?(:google_ad_manager_buyer_network_id) @seat_id = args[:seat_id] if args.key?(:seat_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 estimated audience size for the Display network in the past # month. If the size is less than 1000, the number will be hidden and 0 will be # returned due to privacy reasons. Otherwise, the number will be rounded off to # two significant digits. Only returned in GET request. # Corresponds to the JSON property `activeDisplayAudienceSize` # @return [Fixnum] attr_accessor :active_display_audience_size # Output only. The source of the audience. # Corresponds to the JSON property `audienceSource` # @return [String] attr_accessor :audience_source # Output only. The type of the audience. # Corresponds to the JSON property `audienceType` # @return [String] attr_accessor :audience_type # The user-provided description of the audience. Only applicable to first party # audiences. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Output only. The estimated audience size for the Display network. If the size # is less than 1000, the number will be hidden and 0 will be returned due to # privacy reasons. Otherwise, the number will be rounded off to two significant # digits. Only returned in GET request. # Corresponds to the JSON property `displayAudienceSize` # @return [Fixnum] attr_accessor :display_audience_size # Output only. The estimated desktop audience size in Display network. If the # size is less than 1000, the number will be hidden and 0 will be returned due # to privacy reasons. Otherwise, the number will be rounded off to two # significant digits. Only applicable to first party audiences. Only returned in # GET request. # Corresponds to the JSON property `displayDesktopAudienceSize` # @return [Fixnum] attr_accessor :display_desktop_audience_size # Output only. The estimated mobile app audience size in Display network. If the # size is less than 1000, the number will be hidden and 0 will be returned due # to privacy reasons. Otherwise, the number will be rounded off to two # significant digits. Only applicable to first party audiences. Only returned in # GET request. # Corresponds to the JSON property `displayMobileAppAudienceSize` # @return [Fixnum] attr_accessor :display_mobile_app_audience_size # Output only. The estimated mobile web audience size in Display network. If the # size is less than 1000, the number will be hidden and 0 will be returned due # to privacy reasons. Otherwise, the number will be rounded off to two # significant digits. Only applicable to first party audiences. Only returned in # GET request. # Corresponds to the JSON property `displayMobileWebAudienceSize` # @return [Fixnum] attr_accessor :display_mobile_web_audience_size # 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 estimated audience size for Gmail network. If the size is # less than 1000, the number will be hidden and 0 will be returned due to # privacy reasons. Otherwise, the number will be rounded off to two significant # digits. Only applicable to first party audiences. Only returned in GET request. # Corresponds to the JSON property `gmailAudienceSize` # @return [Fixnum] attr_accessor :gmail_audience_size # The duration in days that an entry remains in the audience after the # qualifying event. Only applicable to first party audiences. # Corresponds to the JSON property `membershipDurationDays` # @return [Fixnum] attr_accessor :membership_duration_days # Output only. The resource name of the first and third party audience. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The estimated audience size for YouTube network. If the size is # less than 1000, the number will be hidden and 0 will be returned due to # privacy reasons. Otherwise, the number will be rounded off to two significant # digits. Only applicable to first party audiences. Only returned in GET request. # Corresponds to the JSON property `youtubeAudienceSize` # @return [Fixnum] attr_accessor :youtube_audience_size def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @active_display_audience_size = args[:active_display_audience_size] if args.key?(:active_display_audience_size) @audience_source = args[:audience_source] if args.key?(:audience_source) @audience_type = args[:audience_type] if args.key?(:audience_type) @description = args[:description] if args.key?(:description) @display_audience_size = args[:display_audience_size] if args.key?(:display_audience_size) @display_desktop_audience_size = args[:display_desktop_audience_size] if args.key?(:display_desktop_audience_size) @display_mobile_app_audience_size = args[:display_mobile_app_audience_size] if args.key?(:display_mobile_app_audience_size) @display_mobile_web_audience_size = args[:display_mobile_web_audience_size] if args.key?(:display_mobile_web_audience_size) @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) @gmail_audience_size = args[:gmail_audience_size] if args.key?(:gmail_audience_size) @membership_duration_days = args[:membership_duration_days] if args.key?(:membership_duration_days) @name = args[:name] if args.key?(:name) @youtube_audience_size = args[:youtube_audience_size] if args.key?(:youtube_audience_size) 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 # YouTube 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 # YouTube 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 # Output only. The warning messages generated by the line item. These warnings # do not block saving the line item, but some may block the line item from # running. # Corresponds to the JSON property `warningMessages` # @return [Array] attr_accessor :warning_messages 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) @warning_messages = args[:warning_messages] if args.key?(:warning_messages) 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 # Response message for ListAdvertiserAssignedTargetingOptions. class ListAdvertiserAssignedTargetingOptionsResponse 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 ListAdvertiserAssignedTargetingOptionsRequest # 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 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 # Response message for AssignedInventorySourceService. # ListAssignedInventorySources. class ListAssignedInventorySourcesResponse include Google::Apis::Core::Hashable # The list of assigned inventory sources. This list will be absent if empty. # Corresponds to the JSON property `assignedInventorySources` # @return [Array] attr_accessor :assigned_inventory_sources # A token to retrieve the next page of results. Pass this value in the # page_token field in the subsequent call to `ListAssignedInventorySources` # 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) @assigned_inventory_sources = args[:assigned_inventory_sources] if args.key?(:assigned_inventory_sources) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message for AssignedLocationService.ListAssignedLocations. class ListAssignedLocationsResponse include Google::Apis::Core::Hashable # The list of assigned locations. This list will be absent if empty. # Corresponds to the JSON property `assignedLocations` # @return [Array] attr_accessor :assigned_locations # A token to retrieve the next page of results. Pass this value in the # page_token field in the subsequent call to `ListAssignedLocations` 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) @assigned_locations = args[:assigned_locations] if args.key?(:assigned_locations) @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 ListCustomBiddingAlgorithmsResponse include Google::Apis::Core::Hashable # The list of custom bidding algorithms. This list will be absent if empty. # Corresponds to the JSON property `customBiddingAlgorithms` # @return [Array] attr_accessor :custom_bidding_algorithms # A token to retrieve the next page of results. Pass this value in the # page_token field in the subsequent call to `ListCustomBiddingAlgorithmsRequest` # 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) @custom_bidding_algorithms = args[:custom_bidding_algorithms] if args.key?(:custom_bidding_algorithms) @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 NegativeKeywordService.ListNegativeKeywords. class ListNegativeKeywordsResponse include Google::Apis::Core::Hashable # The list of negative keywords. This list will be absent if empty. # Corresponds to the JSON property `negativeKeywords` # @return [Array] attr_accessor :negative_keywords # A token to retrieve the next page of results. Pass this value in the # page_token field in the subsequent call to `ListNegativeKeywords` 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_keywords = args[:negative_keywords] if args.key?(:negative_keywords) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListPartnerAssignedTargetingOptionsResponse 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 ListPartnerAssignedTargetingOptionsRequest 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 ListPartnersResponse 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 `ListPartners` method to retrieve # the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of partners. This list will be absent if empty. # Corresponds to the JSON property `partners` # @return [Array] attr_accessor :partners 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) @partners = args[:partners] if args.key?(:partners) end end # Response message for SiteService.ListSites. class ListSitesResponse 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 `ListSites` method to retrieve the # next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of sites. This list will be absent if empty. # Corresponds to the JSON property `sites` # @return [Array] attr_accessor :sites 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) @sites = args[:sites] if args.key?(:sites) 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 # class ListUsersResponse 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 `ListUsers` method to retrieve the # next page of results. This token will be absent if there are no more results # to return. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of users. This list will be absent if empty. # Corresponds to the JSON property `users` # @return [Array] attr_accessor :users 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) @users = args[:users] if args.key?(:users) 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 ID of the Custom Bidding Algorithm used by this strategy. Only applicable # when performance_goal_type is set to ` # BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`. # Corresponds to the JSON property `customBiddingAlgorithmId` # @return [Fixnum] attr_accessor :custom_bidding_algorithm_id # 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) @custom_bidding_algorithm_id = args[:custom_bidding_algorithm_id] if args.key?(:custom_bidding_algorithm_id) @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 # Measurement settings of a partner. class MeasurementConfig include Google::Apis::Core::Hashable # 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) @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 # Represents an amount of money with its currency type. class Money include Google::Apis::Core::Hashable # The three-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 negatively targeted keyword that belongs to a negative keyword list. class NegativeKeyword include Google::Apis::Core::Hashable # Required. Immutable. The negatively targeted keyword, for example `car # insurance`. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum # number of characters is 80. Maximum number of words is 10. Valid characters # are restricted to ASCII characters only. The only URL-escaping permitted is # for representing whitespace between words. Leading or trailing whitespace is # ignored. # Corresponds to the JSON property `keywordValue` # @return [String] attr_accessor :keyword_value # Output only. The resource name of the negative keyword. # 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) @keyword_value = args[:keyword_value] if args.key?(:keyword_value) @name = args[:name] if args.key?(:name) 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 # A single partner in Display & Video 360 (DV360). class Partner include Google::Apis::Core::Hashable # Ad server related settings of a partner. # Corresponds to the JSON property `adServerConfig` # @return [Google::Apis::DisplayvideoV1::PartnerAdServerConfig] attr_accessor :ad_server_config # Settings that control how partner related data may be accessed. # Corresponds to the JSON property `dataAccessConfig` # @return [Google::Apis::DisplayvideoV1::PartnerDataAccessConfig] attr_accessor :data_access_config # The display name of the partner. 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 status of the partner. # Corresponds to the JSON property `entityStatus` # @return [String] attr_accessor :entity_status # Settings that control which exchanges are enabled for a partner. # Corresponds to the JSON property `exchangeConfig` # @return [Google::Apis::DisplayvideoV1::ExchangeConfig] attr_accessor :exchange_config # General settings of a partner. # Corresponds to the JSON property `generalConfig` # @return [Google::Apis::DisplayvideoV1::PartnerGeneralConfig] attr_accessor :general_config # Output only. The resource name of the partner. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The unique ID of the partner. Assigned by the system. # Corresponds to the JSON property `partnerId` # @return [Fixnum] attr_accessor :partner_id # Output only. The timestamp when the partner 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) @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) @exchange_config = args[:exchange_config] if args.key?(:exchange_config) @general_config = args[:general_config] if args.key?(:general_config) @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 a partner. class PartnerAdServerConfig include Google::Apis::Core::Hashable # Measurement settings of a partner. # Corresponds to the JSON property `measurementConfig` # @return [Google::Apis::DisplayvideoV1::MeasurementConfig] attr_accessor :measurement_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @measurement_config = args[:measurement_config] if args.key?(:measurement_config) 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 related data may be accessed. class PartnerDataAccessConfig include Google::Apis::Core::Hashable # 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) @sdf_config = args[:sdf_config] if args.key?(:sdf_config) end end # General settings of a partner. class PartnerGeneralConfig include Google::Apis::Core::Hashable # Immutable. Partner's currency in ISO 4217 format. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Immutable. The standard TZ database name of the partner's time zone. For # example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/ # List_of_tz_database_time_zones # 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) @time_zone = args[:time_zone] if args.key?(:time_zone) 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 ID of the Custom Bidding Algorithm used by this strategy. Only applicable # when performance_goal_type is set to ` # BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`. # Corresponds to the JSON property `customBiddingAlgorithmId` # @return [Fixnum] attr_accessor :custom_bidding_algorithm_id # 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 or in micro of the ROAS (Return # On Advertising Spend) value which is also based on 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. * when performance_goal_type is ` # BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is 1000.00 # and lower bound is 0.01. 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 or ROAS value. # 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` * ` # BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`. # 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) @custom_bidding_algorithm_id = args[:custom_bidding_algorithm_id] if args.key?(:custom_bidding_algorithm_id) @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 # A single site. Sites are apps or websites belonging to a channel. class Site include Google::Apis::Core::Hashable # Output only. The resource name of the site. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The URL or app ID of the site. Must be UTF-8 encoded with a maximum # length of 240 bytes. # Corresponds to the JSON property `urlOrAppId` # @return [String] attr_accessor :url_or_app_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @url_or_app_id = args[:url_or_app_id] if args.key?(:url_or_app_id) 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 # A single user in Display & Video 360. class User include Google::Apis::Core::Hashable # The assigned user roles. Required in CreateUser. Output only in UpdateUser. # Can only be updated through BulkEditAssignedUserRoles. # Corresponds to the JSON property `assignedUserRoles` # @return [Array] attr_accessor :assigned_user_roles # Required. The display name of the user. 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. Immutable. The email address used to identify the user. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # Output only. The resource name of the user. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The unique ID of the user. Assigned by the system. # Corresponds to the JSON property `userId` # @return [Fixnum] attr_accessor :user_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_user_roles = args[:assigned_user_roles] if args.key?(:assigned_user_roles) @display_name = args[:display_name] if args.key?(:display_name) @email = args[:email] if args.key?(:email) @name = args[:name] if args.key?(:name) @user_id = args[:user_id] if args.key?(:user_id) 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