google-api-ruby-client/generated/google/apis/displayvideo_v1/classes.rb

7991 lines
324 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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<String>]
attr_accessor :excluded_adloox_categories
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@excluded_adloox_categories = args[:excluded_adloox_categories] if args.key?(:excluded_adloox_categories)
end
end
# A single advertiser in Display & Video 360 (DV360).
class Advertiser
include Google::Apis::Core::Hashable
# Ad server related settings of an advertiser.
# Corresponds to the JSON property `adServerConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserAdServerConfig]
attr_accessor :ad_server_config
# Output only. The unique ID of the advertiser. Assigned by the system.
# Corresponds to the JSON property `advertiserId`
# @return [Fixnum]
attr_accessor :advertiser_id
# Creatives related settings of an advertiser.
# Corresponds to the JSON property `creativeConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserCreativeConfig]
attr_accessor :creative_config
# Settings that control how advertiser related data may be accessed.
# Corresponds to the JSON property `dataAccessConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserDataAccessConfig]
attr_accessor :data_access_config
# Required. The display name of the advertiser.
# Must be UTF-8 encoded with a maximum size of 240 bytes.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Required. Controls whether or not insertion orders and line items of the
# advertiser can spend their budgets and bid on inventory.
# * Accepted values are `ENTITY_STATUS_ACTIVE` and
# `ENTITY_STATUS_SCHEDULED_FOR_DELETION`.
# * If set to
# `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30
# days from when it was first scheduled for deletion.
# Corresponds to the JSON property `entityStatus`
# @return [String]
attr_accessor :entity_status
# General settings of an advertiser.
# Corresponds to the JSON property `generalConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserGeneralConfig]
attr_accessor :general_config
# Integration details of an entry.
# Corresponds to the JSON property `integrationDetails`
# @return [Google::Apis::DisplayvideoV1::IntegrationDetails]
attr_accessor :integration_details
# Output only. The resource name of the advertiser.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Required. Immutable. The unique ID of the partner that the advertiser belongs
# to.
# Corresponds to the JSON property `partnerId`
# @return [Fixnum]
attr_accessor :partner_id
# Targeting settings related to ad serving of an advertiser.
# Corresponds to the JSON property `servingConfig`
# @return [Google::Apis::DisplayvideoV1::AdvertiserTargetingConfig]
attr_accessor :serving_config
# Output only. The timestamp when the advertiser was last updated. Assigned by
# the system.
# Corresponds to the JSON property `updateTime`
# @return [String]
attr_accessor :update_time
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ad_server_config = args[:ad_server_config] if args.key?(:ad_server_config)
@advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
@creative_config = args[:creative_config] if args.key?(:creative_config)
@data_access_config = args[:data_access_config] if args.key?(:data_access_config)
@display_name = args[:display_name] if args.key?(:display_name)
@entity_status = args[:entity_status] if args.key?(:entity_status)
@general_config = args[:general_config] if args.key?(:general_config)
@integration_details = args[:integration_details] if args.key?(:integration_details)
@name = args[:name] if args.key?(:name)
@partner_id = args[:partner_id] if args.key?(:partner_id)
@serving_config = args[:serving_config] if args.key?(:serving_config)
@update_time = args[:update_time] if args.key?(:update_time)
end
end
# Ad server related settings of an advertiser.
class AdvertiserAdServerConfig
include Google::Apis::Core::Hashable
# Settings for advertisers that use both Campaign Manager (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, such as a Line Item or
# Insertion Order.
class AssignedTargetingOption
include Google::Apis::Core::Hashable
# Represents a targetable age range. This will be populated in the details
# field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_AGE_RANGE`.
# Corresponds to the JSON property `ageRangeDetails`
# @return [Google::Apis::DisplayvideoV1::AgeRangeAssignedTargetingOptionDetails]
attr_accessor :age_range_details
# Details for assigned app category targeting option. This will be
# populated in the
# app_category_details field of
# an AssignedTargetingOption when
# targeting_type
# is `TARGETING_TYPE_APP_CATEGORY`.
# Corresponds to the JSON property `appCategoryDetails`
# @return [Google::Apis::DisplayvideoV1::AppCategoryAssignedTargetingOptionDetails]
attr_accessor :app_category_details
# Details for assigned app targeting option. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_APP`.
# Corresponds to the JSON property `appDetails`
# @return [Google::Apis::DisplayvideoV1::AppAssignedTargetingOptionDetails]
attr_accessor :app_details
# Output only. The unique ID of the assigned targeting option. The ID is only
# unique
# within a given line item and targeting type. It may be reused in other
# contexts.
# Corresponds to the JSON property `assignedTargetingOptionId`
# @return [String]
attr_accessor :assigned_targeting_option_id
# Assigned audience group targeting option details. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_AUDIENCE_GROUP`.
# The relation between each group is UNION, except for
# excluded_first_and_third_party_audience_group and
# excluded_google_audience_group, of which COMPLEMENT is UNION'ed with other
# groups.
# Corresponds to the JSON property `audienceGroupDetails`
# @return [Google::Apis::DisplayvideoV1::AudienceGroupAssignedTargetingOptionDetails]
attr_accessor :audience_group_details
# Represents an assigned authorized seller status. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
# Corresponds to the JSON property `authorizedSellerStatusDetails`
# @return [Google::Apis::DisplayvideoV1::AuthorizedSellerStatusAssignedTargetingOptionDetails]
attr_accessor :authorized_seller_status_details
# Details for assigned browser targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_BROWSER`.
# Corresponds to the JSON property `browserDetails`
# @return [Google::Apis::DisplayvideoV1::BrowserAssignedTargetingOptionDetails]
attr_accessor :browser_details
# Details for assigned carrier and ISP targeting option. This will be populated
# in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_CARRIER_AND_ISP`.
# Corresponds to the JSON property `carrierAndIspDetails`
# @return [Google::Apis::DisplayvideoV1::CarrierAndIspAssignedTargetingOptionDetails]
attr_accessor :carrier_and_isp_details
# Assigned category targeting option details. This will be populated in the
# category_details field when
# targeting_type is
# `TARGETING_TYPE_CATEGORY`.
# Corresponds to the JSON property `categoryDetails`
# @return [Google::Apis::DisplayvideoV1::CategoryAssignedTargetingOptionDetails]
attr_accessor :category_details
# Details for assigned channel targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_CHANNEL`.
# Corresponds to the JSON property `channelDetails`
# @return [Google::Apis::DisplayvideoV1::ChannelAssignedTargetingOptionDetails]
attr_accessor :channel_details
# Assigned content instream position targeting option details. This will be
# populated in the
# content_instream_position_details
# field when
# targeting_type is
# `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
# Corresponds to the JSON property `contentInstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentInstreamPositionAssignedTargetingOptionDetails]
attr_accessor :content_instream_position_details
# Assigned content outstream position targeting option details. This will be
# populated in the
# content_outstream_position_details
# field when
# targeting_type is
# `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
# Corresponds to the JSON property `contentOutstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentOutstreamPositionAssignedTargetingOptionDetails]
attr_accessor :content_outstream_position_details
# Representation of a segment of time defined on a specific day of the week and
# with a start and end time.
# The time represented by `start_hour` must be before the time represented by
# `end_hour`.
# Corresponds to the JSON property `dayAndTimeDetails`
# @return [Google::Apis::DisplayvideoV1::DayAndTimeAssignedTargetingOptionDetails]
attr_accessor :day_and_time_details
# Assigned device make and model targeting option details. This will be
# populated in the
# device_make_model_details
# field when
# targeting_type is
# `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
# Corresponds to the JSON property `deviceMakeModelDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceMakeModelAssignedTargetingOptionDetails]
attr_accessor :device_make_model_details
# Targeting details for device type. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_DEVICE_TYPE`.
# Corresponds to the JSON property `deviceTypeDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceTypeAssignedTargetingOptionDetails]
attr_accessor :device_type_details
# Targeting details for digital content label. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
# Corresponds to the JSON property `digitalContentLabelExclusionDetails`
# @return [Google::Apis::DisplayvideoV1::DigitalContentLabelAssignedTargetingOptionDetails]
attr_accessor :digital_content_label_exclusion_details
# Assigned environment targeting option details. This will be populated
# in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_ENVIRONMENT`.
# Corresponds to the JSON property `environmentDetails`
# @return [Google::Apis::DisplayvideoV1::EnvironmentAssignedTargetingOptionDetails]
attr_accessor :environment_details
# Details for assigned exchange targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_EXCHANGE`.
# Corresponds to the JSON property `exchangeDetails`
# @return [Google::Apis::DisplayvideoV1::ExchangeAssignedTargetingOptionDetails]
attr_accessor :exchange_details
# Details for assigned gender targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARTGETING_TYPE_GENDER`.
# Corresponds to the JSON property `genderDetails`
# @return [Google::Apis::DisplayvideoV1::GenderAssignedTargetingOptionDetails]
attr_accessor :gender_details
# Details for assigned geographic region targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_GEO_REGION`.
# Corresponds to the JSON property `geoRegionDetails`
# @return [Google::Apis::DisplayvideoV1::GeoRegionAssignedTargetingOptionDetails]
attr_accessor :geo_region_details
# Details for assigned household income targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_HOUSEHOLD_INCOME`.
# Corresponds to the JSON property `householdIncomeDetails`
# @return [Google::Apis::DisplayvideoV1::HouseholdIncomeAssignedTargetingOptionDetails]
attr_accessor :household_income_details
# Output only. The inheritance status of the assigned targeting option.
# Corresponds to the JSON property `inheritance`
# @return [String]
attr_accessor :inheritance
# Targeting details for inventory source. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_INVENTORY_SOURCE`.
# Corresponds to the JSON property `inventorySourceDetails`
# @return [Google::Apis::DisplayvideoV1::InventorySourceAssignedTargetingOptionDetails]
attr_accessor :inventory_source_details
# Targeting details for inventory source group. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
# Corresponds to the JSON property `inventorySourceGroupDetails`
# @return [Google::Apis::DisplayvideoV1::InventorySourceGroupAssignedTargetingOptionDetails]
attr_accessor :inventory_source_group_details
# Details for assigned keyword targeting option. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_KEYWORD`.
# Corresponds to the JSON property `keywordDetails`
# @return [Google::Apis::DisplayvideoV1::KeywordAssignedTargetingOptionDetails]
attr_accessor :keyword_details
# Details for assigned language targeting option. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_LANGUAGE`.
# Corresponds to the JSON property `languageDetails`
# @return [Google::Apis::DisplayvideoV1::LanguageAssignedTargetingOptionDetails]
attr_accessor :language_details
# Output only. The resource name for this assigned targeting option.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Targeting details for negative keyword list. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.
# Corresponds to the JSON property `negativeKeywordListDetails`
# @return [Google::Apis::DisplayvideoV1::NegativeKeywordListAssignedTargetingOptionDetails]
attr_accessor :negative_keyword_list_details
# On screen position targeting option details. This will be
# populated in the
# on_screen_position_details
# field when
# targeting_type is
# `TARGETING_TYPE_ON_SCREEN_POSITION`.
# Corresponds to the JSON property `onScreenPositionDetails`
# @return [Google::Apis::DisplayvideoV1::OnScreenPositionAssignedTargetingOptionDetails]
attr_accessor :on_screen_position_details
# Assigned operating system targeting option details. This will be
# populated in the
# operating_system_details
# field when
# targeting_type is
# `TARGETING_TYPE_OPERATING_SYSTEM`.
# Corresponds to the JSON property `operatingSystemDetails`
# @return [Google::Apis::DisplayvideoV1::OperatingSystemAssignedTargetingOptionDetails]
attr_accessor :operating_system_details
# Details for assigned parental status targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARTGETING_TYPE_PARENTAL_STATUS`.
# Corresponds to the JSON property `parentalStatusDetails`
# @return [Google::Apis::DisplayvideoV1::ParentalStatusAssignedTargetingOptionDetails]
attr_accessor :parental_status_details
# Targeting details for proximity location list. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
# Corresponds to the JSON property `proximityLocationListDetails`
# @return [Google::Apis::DisplayvideoV1::ProximityLocationListAssignedTargetingOptionDetails]
attr_accessor :proximity_location_list_details
# Targeting details for regional location list. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
# Corresponds to the JSON property `regionalLocationListDetails`
# @return [Google::Apis::DisplayvideoV1::RegionalLocationListAssignedTargetingOptionDetails]
attr_accessor :regional_location_list_details
# Targeting details for sensitive category. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
# Corresponds to the JSON property `sensitiveCategoryExclusionDetails`
# @return [Google::Apis::DisplayvideoV1::SensitiveCategoryAssignedTargetingOptionDetails]
attr_accessor :sensitive_category_exclusion_details
# Details for assigned sub-exchange targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_SUB_EXCHANGE`.
# Corresponds to the JSON property `subExchangeDetails`
# @return [Google::Apis::DisplayvideoV1::SubExchangeAssignedTargetingOptionDetails]
attr_accessor :sub_exchange_details
# Output only. Identifies the type of this assigned targeting option.
# Corresponds to the JSON property `targetingType`
# @return [String]
attr_accessor :targeting_type
# Assigned third party verifier targeting option details. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
# Corresponds to the JSON property `thirdPartyVerifierDetails`
# @return [Google::Apis::DisplayvideoV1::ThirdPartyVerifierAssignedTargetingOptionDetails]
attr_accessor :third_party_verifier_details
# Details for assigned URL targeting option. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_URL`.
# Corresponds to the JSON property `urlDetails`
# @return [Google::Apis::DisplayvideoV1::UrlAssignedTargetingOptionDetails]
attr_accessor :url_details
# User rewarded content targeting option details. This will be populated in
# the
# user_rewarded_content_details
# field when
# targeting_type is
# `TARGETING_TYPE_USER_REWARDED_CONTENT`.
# Corresponds to the JSON property `userRewardedContentDetails`
# @return [Google::Apis::DisplayvideoV1::UserRewardedContentAssignedTargetingOptionDetails]
attr_accessor :user_rewarded_content_details
# Video player size targeting option details. This will be populated in the
# video_player_size_details
# field when targeting_type is
# `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
# Explicitly targeting all options is not supported. Remove all video player
# size targeting options to achieve this effect.
# Corresponds to the JSON property `videoPlayerSizeDetails`
# @return [Google::Apis::DisplayvideoV1::VideoPlayerSizeAssignedTargetingOptionDetails]
attr_accessor :video_player_size_details
# Assigned viewability targeting option details. This will be populated in the
# viewability_details field of
# an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_VIEWABILITY`.
# Corresponds to the JSON property `viewabilityDetails`
# @return [Google::Apis::DisplayvideoV1::ViewabilityAssignedTargetingOptionDetails]
attr_accessor :viewability_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_range_details = args[:age_range_details] if args.key?(:age_range_details)
@app_category_details = args[:app_category_details] if args.key?(:app_category_details)
@app_details = args[:app_details] if args.key?(:app_details)
@assigned_targeting_option_id = args[:assigned_targeting_option_id] if args.key?(:assigned_targeting_option_id)
@audience_group_details = args[:audience_group_details] if args.key?(:audience_group_details)
@authorized_seller_status_details = args[:authorized_seller_status_details] if args.key?(:authorized_seller_status_details)
@browser_details = args[:browser_details] if args.key?(:browser_details)
@carrier_and_isp_details = args[:carrier_and_isp_details] if args.key?(:carrier_and_isp_details)
@category_details = args[:category_details] if args.key?(:category_details)
@channel_details = args[:channel_details] if args.key?(:channel_details)
@content_instream_position_details = args[:content_instream_position_details] if args.key?(:content_instream_position_details)
@content_outstream_position_details = args[:content_outstream_position_details] if args.key?(:content_outstream_position_details)
@day_and_time_details = args[:day_and_time_details] if args.key?(:day_and_time_details)
@device_make_model_details = args[:device_make_model_details] if args.key?(:device_make_model_details)
@device_type_details = args[:device_type_details] if args.key?(:device_type_details)
@digital_content_label_exclusion_details = args[:digital_content_label_exclusion_details] if args.key?(:digital_content_label_exclusion_details)
@environment_details = args[:environment_details] if args.key?(:environment_details)
@exchange_details = args[:exchange_details] if args.key?(:exchange_details)
@gender_details = args[:gender_details] if args.key?(:gender_details)
@geo_region_details = args[:geo_region_details] if args.key?(:geo_region_details)
@household_income_details = args[:household_income_details] if args.key?(:household_income_details)
@inheritance = args[:inheritance] if args.key?(:inheritance)
@inventory_source_details = args[:inventory_source_details] if args.key?(:inventory_source_details)
@inventory_source_group_details = args[:inventory_source_group_details] if args.key?(:inventory_source_group_details)
@keyword_details = args[:keyword_details] if args.key?(:keyword_details)
@language_details = args[:language_details] if args.key?(:language_details)
@name = args[:name] if args.key?(:name)
@negative_keyword_list_details = args[:negative_keyword_list_details] if args.key?(:negative_keyword_list_details)
@on_screen_position_details = args[:on_screen_position_details] if args.key?(:on_screen_position_details)
@operating_system_details = args[:operating_system_details] if args.key?(:operating_system_details)
@parental_status_details = args[:parental_status_details] if args.key?(:parental_status_details)
@proximity_location_list_details = args[:proximity_location_list_details] if args.key?(:proximity_location_list_details)
@regional_location_list_details = args[:regional_location_list_details] if args.key?(:regional_location_list_details)
@sensitive_category_exclusion_details = args[:sensitive_category_exclusion_details] if args.key?(:sensitive_category_exclusion_details)
@sub_exchange_details = args[:sub_exchange_details] if args.key?(:sub_exchange_details)
@targeting_type = args[:targeting_type] if args.key?(:targeting_type)
@third_party_verifier_details = args[:third_party_verifier_details] if args.key?(:third_party_verifier_details)
@url_details = args[:url_details] if args.key?(:url_details)
@user_rewarded_content_details = args[:user_rewarded_content_details] if args.key?(:user_rewarded_content_details)
@video_player_size_details = args[:video_player_size_details] if args.key?(:video_player_size_details)
@viewability_details = args[:viewability_details] if args.key?(:viewability_details)
end
end
# Assigned audience group targeting option details. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_AUDIENCE_GROUP`.
# The relation between each group is UNION, except for
# excluded_first_and_third_party_audience_group and
# excluded_google_audience_group, of which COMPLEMENT is UNION'ed with other
# groups.
class AudienceGroupAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Details of first and third party audience group.
# All first and third party audience targeting settings are logically OR of
# each other.
# Corresponds to the JSON property `excludedFirstAndThirdPartyAudienceGroup`
# @return [Google::Apis::DisplayvideoV1::FirstAndThirdPartyAudienceGroup]
attr_accessor :excluded_first_and_third_party_audience_group
# Details of Google audience group.
# All Google audience targeting settings are logically OR of each other.
# Corresponds to the JSON property `excludedGoogleAudienceGroup`
# @return [Google::Apis::DisplayvideoV1::GoogleAudienceGroup]
attr_accessor :excluded_google_audience_group
# Details of combined audience group.
# All combined audience targeting settings are logically OR of each other.
# Corresponds to the JSON property `includedCombinedAudienceGroup`
# @return [Google::Apis::DisplayvideoV1::CombinedAudienceGroup]
attr_accessor :included_combined_audience_group
# Details of custom list group.
# All custom list targeting settings are logically OR of each other.
# Corresponds to the JSON property `includedCustomListGroup`
# @return [Google::Apis::DisplayvideoV1::CustomListGroup]
attr_accessor :included_custom_list_group
# The first and third party audience ids and recencies of included first
# and third party audience groups. Each first and third party audience group
# contains first and third party audience ids only.
# The relation between each first and third party audience group is
# INTERSECTION, and the result is UNION'ed with other audience groups.
# Repeated groups with same settings will be ignored.
# Corresponds to the JSON property `includedFirstAndThirdPartyAudienceGroups`
# @return [Array<Google::Apis::DisplayvideoV1::FirstAndThirdPartyAudienceGroup>]
attr_accessor :included_first_and_third_party_audience_groups
# Details of Google audience group.
# All Google audience targeting settings are logically OR of each other.
# Corresponds to the JSON property `includedGoogleAudienceGroup`
# @return [Google::Apis::DisplayvideoV1::GoogleAudienceGroup]
attr_accessor :included_google_audience_group
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@excluded_first_and_third_party_audience_group = args[:excluded_first_and_third_party_audience_group] if args.key?(:excluded_first_and_third_party_audience_group)
@excluded_google_audience_group = args[:excluded_google_audience_group] if args.key?(:excluded_google_audience_group)
@included_combined_audience_group = args[:included_combined_audience_group] if args.key?(:included_combined_audience_group)
@included_custom_list_group = args[:included_custom_list_group] if args.key?(:included_custom_list_group)
@included_first_and_third_party_audience_groups = args[:included_first_and_third_party_audience_groups] if args.key?(:included_first_and_third_party_audience_groups)
@included_google_audience_group = args[:included_google_audience_group] if args.key?(:included_google_audience_group)
end
end
# The length an audio or a video has been played.
class AudioVideoOffset
include Google::Apis::Core::Hashable
# The offset in percentage of the audio or video duration.
# Corresponds to the JSON property `percentage`
# @return [Fixnum]
attr_accessor :percentage
# The offset in seconds from the start of the audio or video.
# Corresponds to the JSON property `seconds`
# @return [Fixnum]
attr_accessor :seconds
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@percentage = args[:percentage] if args.key?(:percentage)
@seconds = args[:seconds] if args.key?(:seconds)
end
end
# Represents an assigned authorized seller status. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
class AuthorizedSellerStatusAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The authorized seller status to target.
# Corresponds to the JSON property `authorizedSellerStatus`
# @return [String]
attr_accessor :authorized_seller_status
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@authorized_seller_status = args[:authorized_seller_status] if args.key?(:authorized_seller_status)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable authorized seller status. This will be populated in
# the
# authorized_seller_status_details
# field when targeting_type is
# `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
class AuthorizedSellerStatusTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The authorized seller status.
# Corresponds to the JSON property `authorizedSellerStatus`
# @return [String]
attr_accessor :authorized_seller_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@authorized_seller_status = args[:authorized_seller_status] if args.key?(:authorized_seller_status)
end
end
# Settings that control the bid strategy.
# Bid strategy determines the bid price.
class BiddingStrategy
include Google::Apis::Core::Hashable
# A strategy that uses a fixed bidding price.
# Corresponds to the JSON property `fixedBid`
# @return [Google::Apis::DisplayvideoV1::FixedBidStrategy]
attr_accessor :fixed_bid
# A strategy that automatically adjusts the bid to optimize a specified
# performance goal while spending the full budget.
# Corresponds to the JSON property `maximizeSpendAutoBid`
# @return [Google::Apis::DisplayvideoV1::MaximizeSpendBidStrategy]
attr_accessor :maximize_spend_auto_bid
# A strategy that automatically adjusts the bid to meet or beat a specified
# performance goal.
# Corresponds to the JSON property `performanceGoalAutoBid`
# @return [Google::Apis::DisplayvideoV1::PerformanceGoalBidStrategy]
attr_accessor :performance_goal_auto_bid
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@fixed_bid = args[:fixed_bid] if args.key?(:fixed_bid)
@maximize_spend_auto_bid = args[:maximize_spend_auto_bid] if args.key?(:maximize_spend_auto_bid)
@performance_goal_auto_bid = args[:performance_goal_auto_bid] if args.key?(:performance_goal_auto_bid)
end
end
# Details for assigned browser targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_BROWSER`.
class BrowserAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The display name of the browser.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Indicates if this option is being negatively targeted. All assigned browser
# targeting options on the same line item must have the same value for this
# field.
# Corresponds to the JSON property `negative`
# @return [Boolean]
attr_accessor :negative
alias_method :negative?, :negative
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_BROWSER`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@negative = args[:negative] if args.key?(:negative)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable browser. This will be populated in the
# browser_details field when
# targeting_type is
# `TARGETING_TYPE_BROWSER`.
class BrowserTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The display name of the browser.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
end
end
# Request message for
# 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<Google::Apis::DisplayvideoV1::CreateAssignedTargetingOptionsRequest>]
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<Google::Apis::DisplayvideoV1::DeleteAssignedTargetingOptionsRequest>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::AssignedInventorySource>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::AssignedInventorySource>]
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<Google::Apis::DisplayvideoV1::AssignedLocation>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::AssignedLocation>]
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
# 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<Google::Apis::DisplayvideoV1::CreateAssignedTargetingOptionsRequest>]
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<Google::Apis::DisplayvideoV1::DeleteAssignedTargetingOptionsRequest>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::NegativeKeyword>]
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<String>]
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<Google::Apis::DisplayvideoV1::NegativeKeyword>]
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 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<Google::Apis::DisplayvideoV1::Site>]
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<String>]
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<Google::Apis::DisplayvideoV1::Site>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::CombinedAudienceTargetingSetting>]
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<Google::Apis::DisplayvideoV1::TrackingFloodlightActivityConfig>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::Dimensions>]
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<Google::Apis::DisplayvideoV1::AssetAssociation>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::CounterEvent>]
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<String>]
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<Google::Apis::DisplayvideoV1::ExitEvent>]
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 associated with.
# To associate a creative to a line item, use
# LineItem.creative_ids instead.
# Corresponds to the JSON property `lineItemIds`
# @return [Array<Fixnum>]
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<Google::Apis::DisplayvideoV1::ThirdPartyUrl>]
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<Google::Apis::DisplayvideoV1::TimerEvent>]
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<String>]
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 viewers 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<Google::Apis::DisplayvideoV1::Transcode>]
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
# 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<Google::Apis::DisplayvideoV1::CustomListTargetingSetting>]
attr_accessor :settings
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@settings = args[:settings] if args.key?(:settings)
end
end
# Details of custom list targeting setting.
class CustomListTargetingSetting
include Google::Apis::Core::Hashable
# Required. Custom id of custom list targeting setting.
# This id is custom_list_id.
# Corresponds to the JSON property `customListId`
# @return [Fixnum]
attr_accessor :custom_list_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@custom_list_id = args[:custom_list_id] if args.key?(:custom_list_id)
end
end
# Represents a whole or partial calendar date, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. a credit card expiration date
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
class Date
include Google::Apis::Core::Hashable
# Day of month. Must be from 1 to 31 and valid for the year and month, or 0
# if specifying a year by itself or a year and month where the day is not
# significant.
# Corresponds to the JSON property `day`
# @return [Fixnum]
attr_accessor :day
# Month of year. Must be from 1 to 12, or 0 if specifying a year without a
# month and day.
# Corresponds to the JSON property `month`
# @return [Fixnum]
attr_accessor :month
# Year of date. Must be from 1 to 9999, or 0 if specifying a date without
# a year.
# Corresponds to the JSON property `year`
# @return [Fixnum]
attr_accessor :year
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@day = args[:day] if args.key?(:day)
@month = args[:month] if args.key?(:month)
@year = args[:year] if args.key?(:year)
end
end
# A date range.
class DateRange
include Google::Apis::Core::Hashable
# Represents a whole or partial calendar date, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. a credit card expiration date
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
# Corresponds to the JSON property `endDate`
# @return [Google::Apis::DisplayvideoV1::Date]
attr_accessor :end_date
# Represents a whole or partial calendar date, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. a credit card expiration date
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
# Corresponds to the JSON property `startDate`
# @return [Google::Apis::DisplayvideoV1::Date]
attr_accessor :start_date
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@end_date = args[:end_date] if args.key?(:end_date)
@start_date = args[:start_date] if args.key?(:start_date)
end
end
# Representation of a segment of time defined on a specific day of the week and
# with a start and end time.
# The time represented by `start_hour` must be before the time represented by
# `end_hour`.
class DayAndTimeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The day of the week for this day and time targeting setting.
# Corresponds to the JSON property `dayOfWeek`
# @return [String]
attr_accessor :day_of_week
# Required. The end hour for day and time targeting. Must be between 1 (1 hour
# after
# start of day) and 24 (end of day).
# Corresponds to the JSON property `endHour`
# @return [Fixnum]
attr_accessor :end_hour
# Required. The start hour for day and time targeting. Must be between 0 (start
# of day)
# and 23 (1 hour before end of day).
# Corresponds to the JSON property `startHour`
# @return [Fixnum]
attr_accessor :start_hour
# Required. The mechanism used to determine which timezone to use for this day
# and time
# targeting setting.
# Corresponds to the JSON property `timeZoneResolution`
# @return [String]
attr_accessor :time_zone_resolution
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@day_of_week = args[:day_of_week] if args.key?(:day_of_week)
@end_hour = args[:end_hour] if args.key?(:end_hour)
@start_hour = args[:start_hour] if args.key?(:start_hour)
@time_zone_resolution = args[:time_zone_resolution] if args.key?(:time_zone_resolution)
end
end
# A request listing which assigned targeting options of a given targeting type
# should be deleted.
class DeleteAssignedTargetingOptionsRequest
include Google::Apis::Core::Hashable
# Required. The assigned targeting option IDs to delete.
# Corresponds to the JSON property `assignedTargetingOptionIds`
# @return [Array<String>]
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<String>]
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<String>]
attr_accessor :avoided_high_severity_categories
# Brand safety medium severity avoidance categories.
# Corresponds to the JSON property `avoidedMediumSeverityCategories`
# @return [Array<String>]
attr_accessor :avoided_medium_severity_categories
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@avoid_unknown_brand_safety_category = args[:avoid_unknown_brand_safety_category] if args.key?(:avoid_unknown_brand_safety_category)
@avoided_high_severity_categories = args[:avoided_high_severity_categories] if args.key?(:avoided_high_severity_categories)
@avoided_medium_severity_categories = args[:avoided_medium_severity_categories] if args.key?(:avoided_medium_severity_categories)
end
end
# Details of DoubleVerify display viewability settings.
class DoubleVerifyDisplayViewability
include Google::Apis::Core::Hashable
# Target web and app inventory to maximize IAB viewable rate.
# Corresponds to the JSON property `iab`
# @return [String]
attr_accessor :iab
# Target web and app inventory to maximize 100% viewable duration.
# Corresponds to the JSON property `viewableDuring`
# @return [String]
attr_accessor :viewable_during
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@iab = args[:iab] if args.key?(:iab)
@viewable_during = args[:viewable_during] if args.key?(:viewable_during)
end
end
# DoubleVerify Fraud & Invalid Traffic settings.
class DoubleVerifyFraudInvalidTraffic
include Google::Apis::Core::Hashable
# Insufficient Historical Fraud & IVT Stats.
# Corresponds to the JSON property `avoidInsufficientOption`
# @return [Boolean]
attr_accessor :avoid_insufficient_option
alias_method :avoid_insufficient_option?, :avoid_insufficient_option
# Avoid Sites and Apps with historical Fraud & IVT.
# Corresponds to the JSON property `avoidedFraudOption`
# @return [String]
attr_accessor :avoided_fraud_option
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@avoid_insufficient_option = args[:avoid_insufficient_option] if args.key?(:avoid_insufficient_option)
@avoided_fraud_option = args[:avoided_fraud_option] if args.key?(:avoided_fraud_option)
end
end
# Details of DoubleVerify video viewability settings.
class DoubleVerifyVideoViewability
include Google::Apis::Core::Hashable
# Target inventory to maximize impressions with 400x300 or greater player
# size.
# Corresponds to the JSON property `playerImpressionRate`
# @return [String]
attr_accessor :player_impression_rate
# Target web inventory to maximize IAB viewable rate.
# Corresponds to the JSON property `videoIab`
# @return [String]
attr_accessor :video_iab
# Target web inventory to maximize fully viewable rate.
# Corresponds to the JSON property `videoViewableRate`
# @return [String]
attr_accessor :video_viewable_rate
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@player_impression_rate = args[:player_impression_rate] if args.key?(:player_impression_rate)
@video_iab = args[:video_iab] if args.key?(:video_iab)
@video_viewable_rate = args[:video_viewable_rate] if args.key?(:video_viewable_rate)
end
end
# A generic empty message that you can re-use to avoid defining duplicated
# empty messages in your APIs. A typical example is to use it as the request
# or the response type of an API method. For instance:
# service Foo `
# rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
# `
# The JSON representation for `Empty` is empty JSON object ````.
class Empty
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# Assigned environment targeting option details. This will be populated
# in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_ENVIRONMENT`.
class EnvironmentAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The serving environment.
# Corresponds to the JSON property `environment`
# @return [String]
attr_accessor :environment
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., "508010"
# for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option).
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@environment = args[:environment] if args.key?(:environment)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable environment. This will be populated in the
# environment_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_ENVIRONMENT`.
class EnvironmentTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The serving environment.
# Corresponds to the JSON property `environment`
# @return [String]
attr_accessor :environment
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@environment = args[:environment] if args.key?(:environment)
end
end
# Details for assigned exchange targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_EXCHANGE`.
class ExchangeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_EXCHANGE`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Exchange review status for the creative.
class ExchangeReviewStatus
include Google::Apis::Core::Hashable
# The exchange reviewing the creative.
# Corresponds to the JSON property `exchange`
# @return [String]
attr_accessor :exchange
# Status of the exchange review.
# Corresponds to the JSON property `status`
# @return [String]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@exchange = args[:exchange] if args.key?(:exchange)
@status = args[:status] if args.key?(:status)
end
end
# Represents a targetable exchange. This will be populated in the
# exchange_details field
# of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_EXCHANGE`.
class ExchangeTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The type of exchange.
# Corresponds to the JSON property `exchange`
# @return [String]
attr_accessor :exchange
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@exchange = args[:exchange] if args.key?(:exchange)
end
end
# Exit event of the creative.
class ExitEvent
include Google::Apis::Core::Hashable
# The name of the click tag of the exit event.
# The name must be unique within one creative.
# Leave it empty or unset for creatives containing image assets only.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# The name used to identify this event in reports.
# Leave it empty or unset for creatives containing image assets only.
# Corresponds to the JSON property `reportingName`
# @return [String]
attr_accessor :reporting_name
# Required. The type of the exit event.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# Required. The click through URL of the exit event.
# This is required when type is:
# * `EXIT_EVENT_TYPE_DEFAULT`
# * `EXIT_EVENT_TYPE_BACKUP`
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@name = args[:name] if args.key?(:name)
@reporting_name = args[:reporting_name] if args.key?(:reporting_name)
@type = args[:type] if args.key?(:type)
@url = args[:url] if args.key?(:url)
end
end
# Describes a first or third party audience list used for targeting.
# First party audiences are created via usage of client data.
# Third party audiences are provided by Third Party data providers and can only
# be licensed to customers.
class FirstAndThirdPartyAudience
include Google::Apis::Core::Hashable
# Output only. The display name of the first and third party audience.
# .
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Output only. The unique ID of the first and third party audience. Assigned by
# the
# system.
# Corresponds to the JSON property `firstAndThirdPartyAudienceId`
# @return [Fixnum]
attr_accessor :first_and_third_party_audience_id
# Output only. Whether the audience is a first or third party audience.
# .
# Corresponds to the JSON property `firstAndThirdPartyAudienceType`
# @return [String]
attr_accessor :first_and_third_party_audience_type
# Output only. The resource name of the first and third party audience.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@first_and_third_party_audience_id = args[:first_and_third_party_audience_id] if args.key?(:first_and_third_party_audience_id)
@first_and_third_party_audience_type = args[:first_and_third_party_audience_type] if args.key?(:first_and_third_party_audience_type)
@name = args[:name] if args.key?(:name)
end
end
# Details of first and third party audience group.
# All first and third party audience targeting settings are logically OR of
# each other.
class FirstAndThirdPartyAudienceGroup
include Google::Apis::Core::Hashable
# Required. All first and third party audience targeting settings in first and
# third party audience group.
# Repeated settings with same id are not allowed.
# Corresponds to the JSON property `settings`
# @return [Array<Google::Apis::DisplayvideoV1::FirstAndThirdPartyAudienceTargetingSetting>]
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<String,Object>]
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<Google::Apis::DisplayvideoV1::GoogleAudienceTargetingSetting>]
attr_accessor :settings
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@settings = args[:settings] if args.key?(:settings)
end
end
# Details of Google audience targeting setting.
class GoogleAudienceTargetingSetting
include Google::Apis::Core::Hashable
# Required. Google audience id of the Google audience targeting setting.
# This id is google_audience_id.
# Corresponds to the JSON property `googleAudienceId`
# @return [Fixnum]
attr_accessor :google_audience_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@google_audience_id = args[:google_audience_id] if args.key?(:google_audience_id)
end
end
# Media resource.
class GoogleBytestreamMedia
include Google::Apis::Core::Hashable
# Name of the media resource.
# Corresponds to the JSON property `resourceName`
# @return [String]
attr_accessor :resource_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_name = args[:resource_name] if args.key?(:resource_name)
end
end
# Details for assigned household income targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_HOUSEHOLD_INCOME`.
class HouseholdIncomeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The household income of the audience.
# Corresponds to the JSON property `householdIncome`
# @return [String]
attr_accessor :household_income
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@household_income = args[:household_income] if args.key?(:household_income)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable household income. This will be populated in the
# household_income_details field of
# a TargetingOption when targeting_type is
# `TARGETING_TYPE_HOUSEHOLD_INCOME`.
class HouseholdIncomeTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The household income of an audience.
# Corresponds to the JSON property `householdIncome`
# @return [String]
attr_accessor :household_income
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@household_income = args[:household_income] if args.key?(:household_income)
end
end
# A filtering option that filters entities by their entity IDs.
class IdFilter
include Google::Apis::Core::Hashable
# TrueView Ads to download by ID. All IDs must belong to the same
# Advertiser or
# Partner specified in
# CreateSdfDownloadTaskRequest.
# Corresponds to the JSON property `adGroupAdIds`
# @return [Array<Fixnum>]
attr_accessor :ad_group_ad_ids
# TrueView Ad Groups to download by ID. All IDs must belong to the same
# Advertiser or
# Partner specified in
# CreateSdfDownloadTaskRequest.
# Corresponds to the JSON property `adGroupIds`
# @return [Array<Fixnum>]
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<Fixnum>]
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<Fixnum>]
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<Fixnum>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::PartnerCost>]
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<Google::Apis::DisplayvideoV1::InsertionOrderBudgetSegment>]
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<Google::Apis::DisplayvideoV1::CreativeConfig>]
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<Fixnum>]
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<Fixnum>]
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<Fixnum>]
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<Google::Apis::DisplayvideoV1::PartnerCost>]
attr_accessor :partner_costs
# Settings that control how partner revenue is calculated.
# Corresponds to the JSON property `partnerRevenueModel`
# @return [Google::Apis::DisplayvideoV1::PartnerRevenueModel]
attr_accessor :partner_revenue_model
# Output only. The timestamp when the line item was last updated. Assigned by
# the system.
# Corresponds to the JSON property `updateTime`
# @return [String]
attr_accessor :update_time
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
@bid_strategy = args[:bid_strategy] if args.key?(:bid_strategy)
@budget = args[:budget] if args.key?(:budget)
@campaign_id = args[:campaign_id] if args.key?(:campaign_id)
@conversion_counting = args[:conversion_counting] if args.key?(:conversion_counting)
@creative_ids = args[:creative_ids] if args.key?(:creative_ids)
@display_name = args[:display_name] if args.key?(:display_name)
@entity_status = args[:entity_status] if args.key?(:entity_status)
@flight = args[:flight] if args.key?(:flight)
@frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap)
@insertion_order_id = args[:insertion_order_id] if args.key?(:insertion_order_id)
@integration_details = args[:integration_details] if args.key?(:integration_details)
@inventory_source_ids = args[:inventory_source_ids] if args.key?(:inventory_source_ids)
@line_item_id = args[:line_item_id] if args.key?(:line_item_id)
@line_item_type = args[:line_item_type] if args.key?(:line_item_type)
@name = args[:name] if args.key?(:name)
@pacing = args[:pacing] if args.key?(:pacing)
@partner_costs = args[:partner_costs] if args.key?(:partner_costs)
@partner_revenue_model = args[:partner_revenue_model] if args.key?(:partner_revenue_model)
@update_time = args[:update_time] if args.key?(:update_time)
end
end
# Settings that control how budget is allocated.
class LineItemBudget
include Google::Apis::Core::Hashable
# Required. The type of the budget allocation.
# `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when
# automatic budget allocation is enabled for the parent insertion order.
# Corresponds to the JSON property `budgetAllocationType`
# @return [String]
attr_accessor :budget_allocation_type
# Output only. The budget unit specifies whether the budget is currency based
# or impression based. This value is inherited from the parent insertion
# order.
# Corresponds to the JSON property `budgetUnit`
# @return [String]
attr_accessor :budget_unit
# The maximum budget amount the line item will spend. Must be greater than 0.
# When budget_allocation_type is:
# * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable
# and is set by the system.
# * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`, if
# budget_unit is:
# - `BUDGET_UNIT_CURRENCY`, this field represents maximum budget amount
# to spend, in micros of the advertiser's currency. For example, 1500000
# represents 1.5 standard units of the currency.
# - `BUDGET_UNIT_IMPRESSIONS`, this field represents the maximum number
# of impressions to serve.
# * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not
# applicable and will be ignored by the system.
# Corresponds to the JSON property `maxAmount`
# @return [Fixnum]
attr_accessor :max_amount
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@budget_allocation_type = args[:budget_allocation_type] if args.key?(:budget_allocation_type)
@budget_unit = args[:budget_unit] if args.key?(:budget_unit)
@max_amount = args[:max_amount] if args.key?(:max_amount)
end
end
# Settings that control the active duration of a line item.
class LineItemFlight
include Google::Apis::Core::Hashable
# A date range.
# Corresponds to the JSON property `dateRange`
# @return [Google::Apis::DisplayvideoV1::DateRange]
attr_accessor :date_range
# Required. The type of the line item's flight dates.
# Corresponds to the JSON property `flightDateType`
# @return [String]
attr_accessor :flight_date_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@date_range = args[:date_range] if args.key?(:date_range)
@flight_date_type = args[:flight_date_type] if args.key?(:flight_date_type)
end
end
# 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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::Advertiser>]
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<Google::Apis::DisplayvideoV1::AssignedInventorySource>]
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<Google::Apis::DisplayvideoV1::AssignedLocation>]
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<Google::Apis::DisplayvideoV1::Campaign>]
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<Google::Apis::DisplayvideoV1::Channel>]
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<Google::Apis::DisplayvideoV1::CombinedAudience>]
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<Google::Apis::DisplayvideoV1::Creative>]
attr_accessor :creatives
# A token to retrieve the next page of results.
# Pass this value in the page_token field
# in the subsequent call to `ListCreativesRequest` method to retrieve the
# next page of results.
# If this field is null, it means this is the last page.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@creatives = args[:creatives] if args.key?(:creatives)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
#
class ListCustomListsResponse
include Google::Apis::Core::Hashable
# The list of custom lists.
# This list will be absent if empty.
# Corresponds to the JSON property `customLists`
# @return [Array<Google::Apis::DisplayvideoV1::CustomList>]
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<Google::Apis::DisplayvideoV1::FirstAndThirdPartyAudience>]
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<Google::Apis::DisplayvideoV1::GoogleAudience>]
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<Google::Apis::DisplayvideoV1::InsertionOrder>]
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<Google::Apis::DisplayvideoV1::InventorySourceGroup>]
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<Google::Apis::DisplayvideoV1::InventorySource>]
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<Google::Apis::DisplayvideoV1::AssignedTargetingOption>]
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<Google::Apis::DisplayvideoV1::LineItem>]
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<Google::Apis::DisplayvideoV1::LocationList>]
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<Google::Apis::DisplayvideoV1::NegativeKeywordList>]
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<Google::Apis::DisplayvideoV1::NegativeKeyword>]
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
# 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<Google::Apis::DisplayvideoV1::Site>]
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<Google::Apis::DisplayvideoV1::TargetingOption>]
attr_accessor :targeting_options
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@targeting_options = args[:targeting_options] if args.key?(:targeting_options)
end
end
# A list of locations used for targeting.
class LocationList
include Google::Apis::Core::Hashable
# Required. Immutable. The unique ID of the advertiser the location list belongs
# to.
# Corresponds to the JSON property `advertiserId`
# @return [Fixnum]
attr_accessor :advertiser_id
# Required. The display name of the location list.
# Must be UTF-8 encoded with a maximum size of 240 bytes.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Output only. The unique ID of the location list. Assigned by the system.
# Corresponds to the JSON property `locationListId`
# @return [Fixnum]
attr_accessor :location_list_id
# Required. Immutable. The type of location. All locations in the list will
# share this type.
# Corresponds to the JSON property `locationType`
# @return [String]
attr_accessor :location_type
# Output only. The resource name of the location list.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
@display_name = args[:display_name] if args.key?(:display_name)
@location_list_id = args[:location_list_id] if args.key?(:location_list_id)
@location_type = args[:location_type] if args.key?(:location_type)
@name = args[:name] if args.key?(:name)
end
end
# Specifies how many days into the past to look when determining whether to
# record a conversion.
class LookbackWindow
include Google::Apis::Core::Hashable
# Lookback window, in days, from the last time a given user clicked on one of
# your ads.
# Corresponds to the JSON property `clickDays`
# @return [Fixnum]
attr_accessor :click_days
# Lookback window, in days, from the last time a given user viewed one of
# your ads.
# Corresponds to the JSON property `impressionDays`
# @return [Fixnum]
attr_accessor :impression_days
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@click_days = args[:click_days] if args.key?(:click_days)
@impression_days = args[:impression_days] if args.key?(:impression_days)
end
end
# A strategy that automatically adjusts the bid to optimize a specified
# performance goal while spending the full budget.
class MaximizeSpendBidStrategy
include Google::Apis::Core::Hashable
# The maximum average CPM that may be bid, in micros of the advertiser's
# currency. Must be greater than or equal to a billable unit of the given
# currency.
# For example, 1500000 represents 1.5 standard units of the currency.
# Corresponds to the JSON property `maxAverageCpmBidAmountMicros`
# @return [Fixnum]
attr_accessor :max_average_cpm_bid_amount_micros
# Required. The type of the performance goal that the bidding strategy
# tries to minimize while spending the full budget.
# `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not supported for
# this strategy.
# Corresponds to the JSON property `performanceGoalType`
# @return [String]
attr_accessor :performance_goal_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@max_average_cpm_bid_amount_micros = args[:max_average_cpm_bid_amount_micros] if args.key?(:max_average_cpm_bid_amount_micros)
@performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type)
end
end
# Represents an amount of money with its currency type.
class Money
include Google::Apis::Core::Hashable
# The 3-letter currency code defined in ISO 4217.
# Corresponds to the JSON property `currencyCode`
# @return [String]
attr_accessor :currency_code
# Number of nano (10^-9) units of the amount.
# The value must be between -999,999,999 and +999,999,999 inclusive.
# If `units` is positive, `nanos` must be positive or zero.
# If `units` is zero, `nanos` can be positive, zero, or negative.
# If `units` is negative, `nanos` must be negative or zero.
# For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
# Corresponds to the JSON property `nanos`
# @return [Fixnum]
attr_accessor :nanos
# The whole units of the amount.
# For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
# Corresponds to the JSON property `units`
# @return [Fixnum]
attr_accessor :units
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@currency_code = args[:currency_code] if args.key?(:currency_code)
@nanos = args[:nanos] if args.key?(:nanos)
@units = args[:units] if args.key?(:units)
end
end
# A 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<String,Object>]
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<String,Object>]
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<String>]
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<Fixnum>]
attr_accessor :filter_ids
# Required. Filter type used to filter fetched entities.
# Corresponds to the JSON property `filterType`
# @return [String]
attr_accessor :filter_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@file_type = args[:file_type] if args.key?(:file_type)
@filter_ids = args[:filter_ids] if args.key?(:filter_ids)
@filter_type = args[:filter_type] if args.key?(:filter_type)
end
end
# Details for assigned parental status targeting option. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARTGETING_TYPE_PARENTAL_STATUS`.
class ParentalStatusAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The parental status of the audience.
# Corresponds to the JSON property `parentalStatus`
# @return [String]
attr_accessor :parental_status
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@parental_status = args[:parental_status] if args.key?(:parental_status)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable parental status. This will be populated in the
# parental_status_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_PARENTAL_STATUS`.
class ParentalStatusTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The parental status of an audience.
# Corresponds to the JSON property `parentalStatus`
# @return [String]
attr_accessor :parental_status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@parental_status = args[:parental_status] if args.key?(:parental_status)
end
end
# Settings that control a partner cost.
# A partner cost is any type of expense involved in running a campaign, other
# than the costs of purchasing impressions (which is called the media cost)
# and using third-party audience segment data (data fee). Some examples of
# partner costs include the fees for using DV360, a third-party ad server,
# or a third-party ad serving verification service.
class PartnerCost
include Google::Apis::Core::Hashable
# Required. The type of the partner cost.
# Corresponds to the JSON property `costType`
# @return [String]
attr_accessor :cost_type
# The CPM fee amount in micros of advertiser's currency.
# Applicable when the fee_type is
# `PARTNER_FEE_TYPE_CPM_FEE`. Must be greater than or equal to 0.
# For example, for 1.5 standard unit of the advertiser's currency, set
# this field to 1500000.
# Corresponds to the JSON property `feeAmount`
# @return [Fixnum]
attr_accessor :fee_amount
# The media fee percentage in millis (1/1000 of a percent).
# Applicable when the fee_type is
# `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0.
# For example: 100 represents 0.1%.
# Corresponds to the JSON property `feePercentageMillis`
# @return [Fixnum]
attr_accessor :fee_percentage_millis
# Required. The fee type for this partner cost.
# Corresponds to the JSON property `feeType`
# @return [String]
attr_accessor :fee_type
# The invoice type for this partner cost.
# * Required when cost_type is one of:
# - `PARTNER_COST_TYPE_ADLOOX`
# - `PARTNER_COST_TYPE_DOUBLE_VERIFY`
# - `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`.
# * Output only for other types.
# Corresponds to the JSON property `invoiceType`
# @return [String]
attr_accessor :invoice_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@cost_type = args[:cost_type] if args.key?(:cost_type)
@fee_amount = args[:fee_amount] if args.key?(:fee_amount)
@fee_percentage_millis = args[:fee_percentage_millis] if args.key?(:fee_percentage_millis)
@fee_type = args[:fee_type] if args.key?(:fee_type)
@invoice_type = args[:invoice_type] if args.key?(:invoice_type)
end
end
# Settings that control how partner revenue is calculated.
class PartnerRevenueModel
include Google::Apis::Core::Hashable
# Required. The markup amount of the partner revenue model.
# Must be greater than or equal to 0.
# * When the markup_type is set to be
# `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field represents the CPM
# markup in micros of advertiser's currency. For example, 1500000
# represents 1.5 standard units of the currency.
# * When the markup_type is set to be
# `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field
# represents the media cost percent markup in millis. For example,
# 100 represents 0.1% (decimal 0.001).
# * When the markup_type is set to be
# `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this field
# represents the total media cost percent markup in millis. For example,
# 100 represents 0.1% (decimal 0.001).
# Corresponds to the JSON property `markupAmount`
# @return [Fixnum]
attr_accessor :markup_amount
# Required. The markup type of the partner revenue model.
# Corresponds to the JSON property `markupType`
# @return [String]
attr_accessor :markup_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@markup_amount = args[:markup_amount] if args.key?(:markup_amount)
@markup_type = args[:markup_type] if args.key?(:markup_type)
end
end
# Settings that control the performance goal of a campaign or insertion order.
class PerformanceGoal
include Google::Apis::Core::Hashable
# The goal amount, in micros of the advertiser's currency.
# Applicable when
# performance_goal_type is one of:
# * `PERFORMANCE_GOAL_TYPE_CPM`
# * `PERFORMANCE_GOAL_TYPE_CPC`
# * `PERFORMANCE_GOAL_TYPE_CPA`
# * `PERFORMANCE_GOAL_TYPE_CPIAVC`
# For example 1500000 represents 1.5 standard units of the currency.
# Corresponds to the JSON property `performanceGoalAmountMicros`
# @return [Fixnum]
attr_accessor :performance_goal_amount_micros
# The decimal representation of the goal percentage in micros.
# Applicable when
# performance_goal_type is one of:
# * `PERFORMANCE_GOAL_TYPE_CTR`
# * `PERFORMANCE_GOAL_TYPE_VIEWABILITY`
# For example, 70000 represents 7% (decimal 0.07).
# Corresponds to the JSON property `performanceGoalPercentageMicros`
# @return [Fixnum]
attr_accessor :performance_goal_percentage_micros
# A key performance indicator (KPI) string, which can be empty.
# Must be UTF-8 encoded with a length of no more than 100 characters.
# Applicable when
# performance_goal_type is set to
# `PERFORMANCE_GOAL_TYPE_OTHER`.
# Corresponds to the JSON property `performanceGoalString`
# @return [String]
attr_accessor :performance_goal_string
# Required. The type of the performance goal.
# Corresponds to the JSON property `performanceGoalType`
# @return [String]
attr_accessor :performance_goal_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@performance_goal_amount_micros = args[:performance_goal_amount_micros] if args.key?(:performance_goal_amount_micros)
@performance_goal_percentage_micros = args[:performance_goal_percentage_micros] if args.key?(:performance_goal_percentage_micros)
@performance_goal_string = args[:performance_goal_string] if args.key?(:performance_goal_string)
@performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type)
end
end
# A strategy that automatically adjusts the bid to meet or beat a specified
# performance goal.
class PerformanceGoalBidStrategy
include Google::Apis::Core::Hashable
# The maximum average CPM that may be bid, in micros of the advertiser's
# currency. Must be greater than or equal to a billable unit of the given
# currency. Not applicable when
# performance_goal_type
# is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`.
# For example, 1500000 represents 1.5 standard units of the currency.
# Corresponds to the JSON property `maxAverageCpmBidAmountMicros`
# @return [Fixnum]
attr_accessor :max_average_cpm_bid_amount_micros
# Required. The performance goal the bidding strategy will attempt to
# meet or beat, in micros of the advertiser's currency.
# Must be greater than or equal to a billable unit of the given currency and
# smaller or equal to upper bounds. Each
# performance_goal_type
# has its upper bound:
# * when
# performance_goal_type
# is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`,
# upper bound is 10000.00 USD.
# * when
# performance_goal_type
# is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`,
# upper bound is 1000.00 USD.
# * when
# performance_goal_type
# is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is
# 1000.00 USD.
# Example: If set to
# `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price will
# be based on the probability that each available impression will be
# viewable. For example, if viewable CPM target is $2 and an impression is
# 40% likely to be viewable, the bid price will be $0.80 CPM (40% of $2).
# For example, 1500000 represents 1.5 standard units of the currency.
# Corresponds to the JSON property `performanceGoalAmountMicros`
# @return [Fixnum]
attr_accessor :performance_goal_amount_micros
# Required. The type of the performance goal that the bidding strategy
# will try to meet or beat.
# For line item level usage, the value must be one of:
# * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`
# * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`
# * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`.
# Corresponds to the JSON property `performanceGoalType`
# @return [String]
attr_accessor :performance_goal_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@max_average_cpm_bid_amount_micros = args[:max_average_cpm_bid_amount_micros] if args.key?(:max_average_cpm_bid_amount_micros)
@performance_goal_amount_micros = args[:performance_goal_amount_micros] if args.key?(:performance_goal_amount_micros)
@performance_goal_type = args[:performance_goal_type] if args.key?(:performance_goal_type)
end
end
# Targeting details for proximity location list. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
class ProximityLocationListAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. ID of the proximity location list. Should refer to the
# location_list_id field of a
# LocationList resource whose type is
# `TARGETING_LOCATION_TYPE_PROXIMITY`.
# Corresponds to the JSON property `proximityLocationListId`
# @return [Fixnum]
attr_accessor :proximity_location_list_id
# Required. Radius range for proximity location list.
# This represents the size of the area around a chosen location that will be
# targeted.
# `All` proximity location targeting under a single line item must have the
# same radius range value. Set this value to match any existing targeting.
# If updated, this field will change the radius range for all proximity
# targeting under the line item.
# Corresponds to the JSON property `proximityRadiusRange`
# @return [String]
attr_accessor :proximity_radius_range
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@proximity_location_list_id = args[:proximity_location_list_id] if args.key?(:proximity_location_list_id)
@proximity_radius_range = args[:proximity_radius_range] if args.key?(:proximity_radius_range)
end
end
# Publisher review status for the creative.
class PublisherReviewStatus
include Google::Apis::Core::Hashable
# The publisher reviewing the creative.
# Corresponds to the JSON property `publisherName`
# @return [String]
attr_accessor :publisher_name
# Status of the publisher review.
# Corresponds to the JSON property `status`
# @return [String]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@publisher_name = args[:publisher_name] if args.key?(:publisher_name)
@status = args[:status] if args.key?(:status)
end
end
# The rate related settings of the inventory source.
class RateDetails
include Google::Apis::Core::Hashable
# The rate type.
# Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`,
# `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and
# `INVENTORY_SOURCE_RATE_TYPE_CPD`.
# Corresponds to the JSON property `inventorySourceRateType`
# @return [String]
attr_accessor :inventory_source_rate_type
# Represents an amount of money with its currency type.
# Corresponds to the JSON property `minimumSpend`
# @return [Google::Apis::DisplayvideoV1::Money]
attr_accessor :minimum_spend
# Represents an amount of money with its currency type.
# Corresponds to the JSON property `rate`
# @return [Google::Apis::DisplayvideoV1::Money]
attr_accessor :rate
# Required for guaranteed inventory sources.
# The number of impressions guaranteed by the seller.
# Corresponds to the JSON property `unitsPurchased`
# @return [Fixnum]
attr_accessor :units_purchased
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@inventory_source_rate_type = args[:inventory_source_rate_type] if args.key?(:inventory_source_rate_type)
@minimum_spend = args[:minimum_spend] if args.key?(:minimum_spend)
@rate = args[:rate] if args.key?(:rate)
@units_purchased = args[:units_purchased] if args.key?(:units_purchased)
end
end
# Targeting details for regional location list. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
class RegionalLocationListAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Indicates if this option is being negatively targeted.
# Corresponds to the JSON property `negative`
# @return [Boolean]
attr_accessor :negative
alias_method :negative?, :negative
# Required. ID of the regional location list. Should refer to the
# location_list_id field of a
# LocationList resource whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.
# Corresponds to the JSON property `regionalLocationListId`
# @return [Fixnum]
attr_accessor :regional_location_list_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@negative = args[:negative] if args.key?(:negative)
@regional_location_list_id = args[:regional_location_list_id] if args.key?(:regional_location_list_id)
end
end
# Review statuses for the creative.
class ReviewStatusInfo
include Google::Apis::Core::Hashable
# Represents the basic approval needed for a creative to begin serving.
# Summary of
# creative_and_landing_page_review_status
# and
# content_and_policy_review_status.
# Corresponds to the JSON property `approvalStatus`
# @return [String]
attr_accessor :approval_status
# Content and policy review status for the creative.
# Corresponds to the JSON property `contentAndPolicyReviewStatus`
# @return [String]
attr_accessor :content_and_policy_review_status
# Creative and landing page review status for the creative.
# Corresponds to the JSON property `creativeAndLandingPageReviewStatus`
# @return [String]
attr_accessor :creative_and_landing_page_review_status
# Exchange review statuses for the creative.
# Corresponds to the JSON property `exchangeReviewStatuses`
# @return [Array<Google::Apis::DisplayvideoV1::ExchangeReviewStatus>]
attr_accessor :exchange_review_statuses
# Publisher review statuses for the creative.
# Corresponds to the JSON property `publisherReviewStatuses`
# @return [Array<Google::Apis::DisplayvideoV1::PublisherReviewStatus>]
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<Hash<String,Object>>]
attr_accessor :details
# A developer-facing error message, which should be in English. Any
# user-facing error message should be localized and sent in the
# google.rpc.Status.details field, or localized by the client.
# Corresponds to the JSON property `message`
# @return [String]
attr_accessor :message
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@code = args[:code] if args.key?(:code)
@details = args[:details] if args.key?(:details)
@message = args[:message] if args.key?(:message)
end
end
# Details for assigned sub-exchange targeting option. This will be populated in
# the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_SUB_EXCHANGE`.
class SubExchangeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
end
end
# Represents a targetable sub-exchange. This will be populated in the
# sub_exchange_details field
# of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_SUB_EXCHANGE`.
class SubExchangeTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The display name of the sub-exchange.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
end
end
# Represents a single targeting option, which is a targetable concept in
# DV360.
class TargetingOption
include Google::Apis::Core::Hashable
# Represents a targetable age range. This will be populated in the
# age_range_details field when
# targeting_type is
# `TARGETING_TYPE_AGE_RANGE`.
# Corresponds to the JSON property `ageRangeDetails`
# @return [Google::Apis::DisplayvideoV1::AgeRangeTargetingOptionDetails]
attr_accessor :age_range_details
# Represents a targetable collection of apps. A collection lets you target
# dynamic groups of related apps that are maintained by the platform, for
# example `All Apps/Google Play/Games`. This will be populated in the
# app_category_details field when
# targeting_type is
# `TARGETING_TYPE_APP_CATEGORY`.
# Corresponds to the JSON property `appCategoryDetails`
# @return [Google::Apis::DisplayvideoV1::AppCategoryTargetingOptionDetails]
attr_accessor :app_category_details
# Represents a targetable authorized seller status. This will be populated in
# the
# authorized_seller_status_details
# field when targeting_type is
# `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
# Corresponds to the JSON property `authorizedSellerStatusDetails`
# @return [Google::Apis::DisplayvideoV1::AuthorizedSellerStatusTargetingOptionDetails]
attr_accessor :authorized_seller_status_details
# Represents a targetable browser. This will be populated in the
# browser_details field when
# targeting_type is
# `TARGETING_TYPE_BROWSER`.
# Corresponds to the JSON property `browserDetails`
# @return [Google::Apis::DisplayvideoV1::BrowserTargetingOptionDetails]
attr_accessor :browser_details
# Represents a targetable carrier or ISP. This will be populated in the
# carrier_and_isp_details field of
# a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_CARRIER_AND_ISP`.
# Corresponds to the JSON property `carrierAndIspDetails`
# @return [Google::Apis::DisplayvideoV1::CarrierAndIspTargetingOptionDetails]
attr_accessor :carrier_and_isp_details
# Represents a targetable category. This will be populated in the
# category_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_CATEGORY`.
# Corresponds to the JSON property `categoryDetails`
# @return [Google::Apis::DisplayvideoV1::CategoryTargetingOptionDetails]
attr_accessor :category_details
# Represents a targetable content instream position, which could be used by
# video and audio ads. This will be populated in the
# content_instream_position_details
# field when targeting_type is
# `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
# Corresponds to the JSON property `contentInstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentInstreamPositionTargetingOptionDetails]
attr_accessor :content_instream_position_details
# Represents a targetable content outstream position, which could be used by
# display and video ads. This will be populated in the
# content_outstream_position_details
# field when targeting_type is
# `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
# Corresponds to the JSON property `contentOutstreamPositionDetails`
# @return [Google::Apis::DisplayvideoV1::ContentOutstreamPositionTargetingOptionDetails]
attr_accessor :content_outstream_position_details
# Represents a targetable device make and model. This will be populated in the
# device_make_model_details
# field of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
# Corresponds to the JSON property `deviceMakeModelDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceMakeModelTargetingOptionDetails]
attr_accessor :device_make_model_details
# Represents a targetable device type. This will be populated in the
# device_type_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_DEVICE_TYPE`.
# Corresponds to the JSON property `deviceTypeDetails`
# @return [Google::Apis::DisplayvideoV1::DeviceTypeTargetingOptionDetails]
attr_accessor :device_type_details
# Represents a targetable digital content label rating tier. This will be
# populated in the
# digital_content_label_details
# field of the TargetingOption when
# targeting_type is
# `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
# Corresponds to the JSON property `digitalContentLabelDetails`
# @return [Google::Apis::DisplayvideoV1::DigitalContentLabelTargetingOptionDetails]
attr_accessor :digital_content_label_details
# Represents a targetable environment. This will be populated in the
# environment_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_ENVIRONMENT`.
# Corresponds to the JSON property `environmentDetails`
# @return [Google::Apis::DisplayvideoV1::EnvironmentTargetingOptionDetails]
attr_accessor :environment_details
# Represents a targetable exchange. This will be populated in the
# exchange_details field
# of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_EXCHANGE`.
# Corresponds to the JSON property `exchangeDetails`
# @return [Google::Apis::DisplayvideoV1::ExchangeTargetingOptionDetails]
attr_accessor :exchange_details
# Represents a targetable gender. This will be populated in the
# gender_details field of a TargetingOption
# when targeting_type is
# `TARGETING_TYPE_GENDER`.
# Corresponds to the JSON property `genderDetails`
# @return [Google::Apis::DisplayvideoV1::GenderTargetingOptionDetails]
attr_accessor :gender_details
# Represents a targetable geographic region. This will be populated in the
# geo_region_details field when
# targeting_type is
# `TARGETING_TYPE_GEO_REGION`.
# Corresponds to the JSON property `geoRegionDetails`
# @return [Google::Apis::DisplayvideoV1::GeoRegionTargetingOptionDetails]
attr_accessor :geo_region_details
# Represents a targetable household income. This will be populated in the
# household_income_details field of
# a TargetingOption when targeting_type is
# `TARGETING_TYPE_HOUSEHOLD_INCOME`.
# Corresponds to the JSON property `householdIncomeDetails`
# @return [Google::Apis::DisplayvideoV1::HouseholdIncomeTargetingOptionDetails]
attr_accessor :household_income_details
# Represents a targetable language. This will be populated in the
# language_details field when
# targeting_type is
# `TARGETING_TYPE_LANGUAGE`.
# Corresponds to the JSON property `languageDetails`
# @return [Google::Apis::DisplayvideoV1::LanguageTargetingOptionDetails]
attr_accessor :language_details
# Output only. The resource name for this targeting option.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Represents a targetable on screen position, which could be used by display
# and video ads. This will be populated in the
# on_screen_position_details
# field when
# targeting_type is
# `TARGETING_TYPE_ON_SCREEN_POSITION`.
# Corresponds to the JSON property `onScreenPositionDetails`
# @return [Google::Apis::DisplayvideoV1::OnScreenPositionTargetingOptionDetails]
attr_accessor :on_screen_position_details
# Represents a targetable operating system. This will be populated in the
# operating_system_details field
# of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_OPERATING_SYSTEM`.
# Corresponds to the JSON property `operatingSystemDetails`
# @return [Google::Apis::DisplayvideoV1::OperatingSystemTargetingOptionDetails]
attr_accessor :operating_system_details
# Represents a targetable parental status. This will be populated in the
# parental_status_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_PARENTAL_STATUS`.
# Corresponds to the JSON property `parentalStatusDetails`
# @return [Google::Apis::DisplayvideoV1::ParentalStatusTargetingOptionDetails]
attr_accessor :parental_status_details
# Represents a targetable sensitive category. This will be
# populated in the
# sensitive_category_details
# field of the TargetingOption when
# targeting_type is
# `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
# Corresponds to the JSON property `sensitiveCategoryDetails`
# @return [Google::Apis::DisplayvideoV1::SensitiveCategoryTargetingOptionDetails]
attr_accessor :sensitive_category_details
# Represents a targetable sub-exchange. This will be populated in the
# sub_exchange_details field
# of a TargetingOption when
# targeting_type is
# `TARGETING_TYPE_SUB_EXCHANGE`.
# Corresponds to the JSON property `subExchangeDetails`
# @return [Google::Apis::DisplayvideoV1::SubExchangeTargetingOptionDetails]
attr_accessor :sub_exchange_details
# Output only. A unique identifier for this targeting option. The tuple
# ``targeting_type`, `targeting_option_id`` will be unique.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
# Output only. The type of this targeting option.
# Corresponds to the JSON property `targetingType`
# @return [String]
attr_accessor :targeting_type
# Represents a targetable user rewarded content status for video ads only. This
# will be populated in the
# user_rewarded_content_details
# field when
# targeting_type is
# `TARGETING_TYPE_USER_REWARDED_CONTENT`.
# Corresponds to the JSON property `userRewardedContentDetails`
# @return [Google::Apis::DisplayvideoV1::UserRewardedContentTargetingOptionDetails]
attr_accessor :user_rewarded_content_details
# Represents a targetable video player size. This will be populated in the
# video_player_size_details
# field when targeting_type is
# `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
# Corresponds to the JSON property `videoPlayerSizeDetails`
# @return [Google::Apis::DisplayvideoV1::VideoPlayerSizeTargetingOptionDetails]
attr_accessor :video_player_size_details
# Represents a targetable viewability. This will be populated in the
# viewability_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_VIEWABILITY`.
# Corresponds to the JSON property `viewabilityDetails`
# @return [Google::Apis::DisplayvideoV1::ViewabilityTargetingOptionDetails]
attr_accessor :viewability_details
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@age_range_details = args[:age_range_details] if args.key?(:age_range_details)
@app_category_details = args[:app_category_details] if args.key?(:app_category_details)
@authorized_seller_status_details = args[:authorized_seller_status_details] if args.key?(:authorized_seller_status_details)
@browser_details = args[:browser_details] if args.key?(:browser_details)
@carrier_and_isp_details = args[:carrier_and_isp_details] if args.key?(:carrier_and_isp_details)
@category_details = args[:category_details] if args.key?(:category_details)
@content_instream_position_details = args[:content_instream_position_details] if args.key?(:content_instream_position_details)
@content_outstream_position_details = args[:content_outstream_position_details] if args.key?(:content_outstream_position_details)
@device_make_model_details = args[:device_make_model_details] if args.key?(:device_make_model_details)
@device_type_details = args[:device_type_details] if args.key?(:device_type_details)
@digital_content_label_details = args[:digital_content_label_details] if args.key?(:digital_content_label_details)
@environment_details = args[:environment_details] if args.key?(:environment_details)
@exchange_details = args[:exchange_details] if args.key?(:exchange_details)
@gender_details = args[:gender_details] if args.key?(:gender_details)
@geo_region_details = args[:geo_region_details] if args.key?(:geo_region_details)
@household_income_details = args[:household_income_details] if args.key?(:household_income_details)
@language_details = args[:language_details] if args.key?(:language_details)
@name = args[:name] if args.key?(:name)
@on_screen_position_details = args[:on_screen_position_details] if args.key?(:on_screen_position_details)
@operating_system_details = args[:operating_system_details] if args.key?(:operating_system_details)
@parental_status_details = args[:parental_status_details] if args.key?(:parental_status_details)
@sensitive_category_details = args[:sensitive_category_details] if args.key?(:sensitive_category_details)
@sub_exchange_details = args[:sub_exchange_details] if args.key?(:sub_exchange_details)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
@targeting_type = args[:targeting_type] if args.key?(:targeting_type)
@user_rewarded_content_details = args[:user_rewarded_content_details] if args.key?(:user_rewarded_content_details)
@video_player_size_details = args[:video_player_size_details] if args.key?(:video_player_size_details)
@viewability_details = args[:viewability_details] if args.key?(:viewability_details)
end
end
# Settings for advertisers that use third-party ad servers only.
class ThirdPartyOnlyConfig
include Google::Apis::Core::Hashable
# Whether or not order ID reporting for pixels is enabled.
# This value cannot be changed once set to `true`.
# Corresponds to the JSON property `pixelOrderIdReportingEnabled`
# @return [Boolean]
attr_accessor :pixel_order_id_reporting_enabled
alias_method :pixel_order_id_reporting_enabled?, :pixel_order_id_reporting_enabled
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@pixel_order_id_reporting_enabled = args[:pixel_order_id_reporting_enabled] if args.key?(:pixel_order_id_reporting_enabled)
end
end
# Tracking URLs from third parties to track interactions with an audio or a
# video creative.
class ThirdPartyUrl
include Google::Apis::Core::Hashable
# The type of interaction needs to be tracked by the tracking URL
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# Tracking URL used to track the interaction.
# Provide a URL with optional path or query string, beginning with `https:`.
# For example, https://www.example.com/path
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@type = args[:type] if args.key?(:type)
@url = args[:url] if args.key?(:url)
end
end
# Assigned third party verifier targeting option details. This will be
# populated in the details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
class ThirdPartyVerifierAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Details of Adloox settings.
# Corresponds to the JSON property `adloox`
# @return [Google::Apis::DisplayvideoV1::Adloox]
attr_accessor :adloox
# Details of DoubleVerify settings.
# Corresponds to the JSON property `doubleVerify`
# @return [Google::Apis::DisplayvideoV1::DoubleVerify]
attr_accessor :double_verify
# Details of Integral Ad Science settings.
# Corresponds to the JSON property `integralAdScience`
# @return [Google::Apis::DisplayvideoV1::IntegralAdScience]
attr_accessor :integral_ad_science
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@adloox = args[:adloox] if args.key?(:adloox)
@double_verify = args[:double_verify] if args.key?(:double_verify)
@integral_ad_science = args[:integral_ad_science] if args.key?(:integral_ad_science)
end
end
# A time range.
class TimeRange
include Google::Apis::Core::Hashable
# Required. The upper bound of a time range, inclusive.
# Corresponds to the JSON property `endTime`
# @return [String]
attr_accessor :end_time
# Required. The lower bound of a time range, inclusive.
# Corresponds to the JSON property `startTime`
# @return [String]
attr_accessor :start_time
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@end_time = args[:end_time] if args.key?(:end_time)
@start_time = args[:start_time] if args.key?(:start_time)
end
end
# Timer event of the creative.
class TimerEvent
include Google::Apis::Core::Hashable
# Required. The name of the timer event.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Required. The name used to identify this timer event in reports.
# Corresponds to the JSON property `reportingName`
# @return [String]
attr_accessor :reporting_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@name = args[:name] if args.key?(:name)
@reporting_name = args[:reporting_name] if args.key?(:reporting_name)
end
end
# Settings that control the behavior of a single Floodlight activity config.
class TrackingFloodlightActivityConfig
include Google::Apis::Core::Hashable
# Required. The ID of the Floodlight activity.
# Corresponds to the JSON property `floodlightActivityId`
# @return [Fixnum]
attr_accessor :floodlight_activity_id
# Required. The number of days after an ad has been clicked in which a
# conversion may be counted.
# Must be between 0 and 90 inclusive.
# Corresponds to the JSON property `postClickLookbackWindowDays`
# @return [Fixnum]
attr_accessor :post_click_lookback_window_days
# Required. The number of days after an ad has been viewed in which a
# conversion may be counted.
# Must be between 0 and 90 inclusive.
# Corresponds to the JSON property `postViewLookbackWindowDays`
# @return [Fixnum]
attr_accessor :post_view_lookback_window_days
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@floodlight_activity_id = args[:floodlight_activity_id] if args.key?(:floodlight_activity_id)
@post_click_lookback_window_days = args[:post_click_lookback_window_days] if args.key?(:post_click_lookback_window_days)
@post_view_lookback_window_days = args[:post_view_lookback_window_days] if args.key?(:post_view_lookback_window_days)
end
end
# Represents information about the transcoded audio or video file.
class Transcode
include Google::Apis::Core::Hashable
# The bit rate for the audio stream of the transcoded video, or the bit rate
# for the transcoded audio, in kilobits per second.
# Corresponds to the JSON property `audioBitRateKbps`
# @return [Fixnum]
attr_accessor :audio_bit_rate_kbps
# The sample rate for the audio stream of the transcoded video, or the sample
# rate for the transcoded audio, in hertz.
# Corresponds to the JSON property `audioSampleRateHz`
# @return [Fixnum]
attr_accessor :audio_sample_rate_hz
# The transcoding bit rate of the transcoded video, in kilobits per second.
# Corresponds to the JSON property `bitRateKbps`
# @return [Fixnum]
attr_accessor :bit_rate_kbps
# Dimensions.
# Corresponds to the JSON property `dimensions`
# @return [Google::Apis::DisplayvideoV1::Dimensions]
attr_accessor :dimensions
# The size of the transcoded file, in bytes.
# Corresponds to the JSON property `fileSizeBytes`
# @return [Fixnum]
attr_accessor :file_size_bytes
# The frame rate of the transcoded video, in frames per second.
# Corresponds to the JSON property `frameRate`
# @return [Float]
attr_accessor :frame_rate
# The MIME type of the transcoded file.
# Corresponds to the JSON property `mimeType`
# @return [String]
attr_accessor :mime_type
# The name of the transcoded file.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Indicates if the transcoding was successful.
# Corresponds to the JSON property `transcoded`
# @return [Boolean]
attr_accessor :transcoded
alias_method :transcoded?, :transcoded
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@audio_bit_rate_kbps = args[:audio_bit_rate_kbps] if args.key?(:audio_bit_rate_kbps)
@audio_sample_rate_hz = args[:audio_sample_rate_hz] if args.key?(:audio_sample_rate_hz)
@bit_rate_kbps = args[:bit_rate_kbps] if args.key?(:bit_rate_kbps)
@dimensions = args[:dimensions] if args.key?(:dimensions)
@file_size_bytes = args[:file_size_bytes] if args.key?(:file_size_bytes)
@frame_rate = args[:frame_rate] if args.key?(:frame_rate)
@mime_type = args[:mime_type] if args.key?(:mime_type)
@name = args[:name] if args.key?(:name)
@transcoded = args[:transcoded] if args.key?(:transcoded)
end
end
# A creative identifier provided by a registry that is unique across all
# platforms. This is part of the VAST 4.0 standard.
class UniversalAdId
include Google::Apis::Core::Hashable
# The unique creative identifier.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# The registry provides unique creative identifiers.
# Corresponds to the JSON property `registry`
# @return [String]
attr_accessor :registry
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@registry = args[:registry] if args.key?(:registry)
end
end
# Details for assigned URL targeting option. This will be populated in the
# details field of an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_URL`.
class UrlAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Indicates if this option is being negatively targeted.
# Corresponds to the JSON property `negative`
# @return [Boolean]
attr_accessor :negative
alias_method :negative?, :negative
# Required. The URL, for example `example.com`.
# DV360 supports two levels of subdirectory targeting, for example
# `www.example.com/one-subdirectory-level/second-level`, and five levels of
# subdomain targeting, for example `five.four.three.two.one.example.com`.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@negative = args[:negative] if args.key?(:negative)
@url = args[:url] if args.key?(:url)
end
end
# User rewarded content targeting option details. This will be populated in
# the
# user_rewarded_content_details
# field when
# targeting_type is
# `TARGETING_TYPE_USER_REWARDED_CONTENT`.
class UserRewardedContentAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The targeting_option_id field when
# targeting_type is
# `TARGETING_TYPE_USER_REWARDED_CONTENT`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
# Output only. User rewarded content status for video ads.
# Corresponds to the JSON property `userRewardedContent`
# @return [String]
attr_accessor :user_rewarded_content
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
@user_rewarded_content = args[:user_rewarded_content] if args.key?(:user_rewarded_content)
end
end
# Represents a targetable user rewarded content status for video ads only. This
# will be populated in the
# user_rewarded_content_details
# field when
# targeting_type is
# `TARGETING_TYPE_USER_REWARDED_CONTENT`.
class UserRewardedContentTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. User rewarded content status for video ads.
# Corresponds to the JSON property `userRewardedContent`
# @return [String]
attr_accessor :user_rewarded_content
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@user_rewarded_content = args[:user_rewarded_content] if args.key?(:user_rewarded_content)
end
end
# Video player size targeting option details. This will be populated in the
# video_player_size_details
# field when targeting_type is
# `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
# Explicitly targeting all options is not supported. Remove all video player
# size targeting options to achieve this effect.
class VideoPlayerSizeAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The targeting_option_id field when
# targeting_type is
# `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
# Output only. The video player size.
# Corresponds to the JSON property `videoPlayerSize`
# @return [String]
attr_accessor :video_player_size
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
@video_player_size = args[:video_player_size] if args.key?(:video_player_size)
end
end
# Represents a targetable video player size. This will be populated in the
# video_player_size_details
# field when targeting_type is
# `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
class VideoPlayerSizeTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The video player size.
# Corresponds to the JSON property `videoPlayerSize`
# @return [String]
attr_accessor :video_player_size
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@video_player_size = args[:video_player_size] if args.key?(:video_player_size)
end
end
# Assigned viewability targeting option details. This will be populated in the
# viewability_details field of
# an AssignedTargetingOption when
# targeting_type is
# `TARGETING_TYPE_VIEWABILITY`.
class ViewabilityAssignedTargetingOptionDetails
include Google::Apis::Core::Hashable
# Required. The targeting_option_id of a
# TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., "509010"
# for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option).
# Corresponds to the JSON property `targetingOptionId`
# @return [String]
attr_accessor :targeting_option_id
# Output only. The predicted viewability percentage.
# Corresponds to the JSON property `viewability`
# @return [String]
attr_accessor :viewability
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@targeting_option_id = args[:targeting_option_id] if args.key?(:targeting_option_id)
@viewability = args[:viewability] if args.key?(:viewability)
end
end
# Represents a targetable viewability. This will be populated in the
# viewability_details field of a
# TargetingOption when targeting_type is
# `TARGETING_TYPE_VIEWABILITY`.
class ViewabilityTargetingOptionDetails
include Google::Apis::Core::Hashable
# Output only. The predicted viewability percentage.
# Corresponds to the JSON property `viewability`
# @return [String]
attr_accessor :viewability
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@viewability = args[:viewability] if args.key?(:viewability)
end
end
end
end
end