blob: 8ae16f0978c027d92a53a46d456253d8c259f41b [file] [log] [blame]
// Copyright 2020 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Code generated file. DO NOT EDIT.
// Package displayvideo provides access to the Display & Video 360 API.
//
// For product documentation, see: https://developers.google.com/display-video/
//
// Creating a client
//
// Usage example:
//
// import "google.golang.org/api/displayvideo/v1"
// ...
// ctx := context.Background()
// displayvideoService, err := displayvideo.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for authentication.
//
// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
//
// displayvideoService, err := displayvideo.NewService(ctx, option.WithScopes(displayvideo.DoubleclickbidmanagerScope))
//
// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
//
// displayvideoService, err := displayvideo.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
//
// config := &oauth2.Config{...}
// // ...
// token, err := config.Exchange(ctx, ...)
// displayvideoService, err := displayvideo.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See https://godoc.org/google.golang.org/api/option/ for details on options.
package displayvideo // import "google.golang.org/api/displayvideo/v1"
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"net/url"
"strconv"
"strings"
googleapi "google.golang.org/api/googleapi"
gensupport "google.golang.org/api/internal/gensupport"
option "google.golang.org/api/option"
internaloption "google.golang.org/api/option/internaloption"
htransport "google.golang.org/api/transport/http"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
const apiId = "displayvideo:v1"
const apiName = "displayvideo"
const apiVersion = "v1"
const basePath = "https://displayvideo.googleapis.com/"
// OAuth2 scopes used by this API.
const (
// Create, see, edit, and permanently delete your Display & Video 360
// entities and reports
DisplayVideoScope = "https://www.googleapis.com/auth/display-video"
// View and manage your reports in DoubleClick Bid Manager
DoubleclickbidmanagerScope = "https://www.googleapis.com/auth/doubleclickbidmanager"
)
// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
scopesOption := option.WithScopes(
"https://www.googleapis.com/auth/display-video",
"https://www.googleapis.com/auth/doubleclickbidmanager",
)
// NOTE: prepend, so we don't override user-specified scopes.
opts = append([]option.ClientOption{scopesOption}, opts...)
opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
client, endpoint, err := htransport.NewClient(ctx, opts...)
if err != nil {
return nil, err
}
s, err := New(client)
if err != nil {
return nil, err
}
if endpoint != "" {
s.BasePath = endpoint
}
return s, nil
}
// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
s := &Service{client: client, BasePath: basePath}
s.Advertisers = NewAdvertisersService(s)
s.CombinedAudiences = NewCombinedAudiencesService(s)
s.CustomLists = NewCustomListsService(s)
s.FirstAndThirdPartyAudiences = NewFirstAndThirdPartyAudiencesService(s)
s.FloodlightGroups = NewFloodlightGroupsService(s)
s.GoogleAudiences = NewGoogleAudiencesService(s)
s.InventorySourceGroups = NewInventorySourceGroupsService(s)
s.InventorySources = NewInventorySourcesService(s)
s.Media = NewMediaService(s)
s.Partners = NewPartnersService(s)
s.Sdfdownloadtasks = NewSdfdownloadtasksService(s)
s.TargetingTypes = NewTargetingTypesService(s)
return s, nil
}
type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
Advertisers *AdvertisersService
CombinedAudiences *CombinedAudiencesService
CustomLists *CustomListsService
FirstAndThirdPartyAudiences *FirstAndThirdPartyAudiencesService
FloodlightGroups *FloodlightGroupsService
GoogleAudiences *GoogleAudiencesService
InventorySourceGroups *InventorySourceGroupsService
InventorySources *InventorySourcesService
Media *MediaService
Partners *PartnersService
Sdfdownloadtasks *SdfdownloadtasksService
TargetingTypes *TargetingTypesService
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewAdvertisersService(s *Service) *AdvertisersService {
rs := &AdvertisersService{s: s}
rs.Assets = NewAdvertisersAssetsService(s)
rs.Campaigns = NewAdvertisersCampaignsService(s)
rs.Channels = NewAdvertisersChannelsService(s)
rs.Creatives = NewAdvertisersCreativesService(s)
rs.InsertionOrders = NewAdvertisersInsertionOrdersService(s)
rs.LineItems = NewAdvertisersLineItemsService(s)
rs.LocationLists = NewAdvertisersLocationListsService(s)
rs.NegativeKeywordLists = NewAdvertisersNegativeKeywordListsService(s)
return rs
}
type AdvertisersService struct {
s *Service
Assets *AdvertisersAssetsService
Campaigns *AdvertisersCampaignsService
Channels *AdvertisersChannelsService
Creatives *AdvertisersCreativesService
InsertionOrders *AdvertisersInsertionOrdersService
LineItems *AdvertisersLineItemsService
LocationLists *AdvertisersLocationListsService
NegativeKeywordLists *AdvertisersNegativeKeywordListsService
}
func NewAdvertisersAssetsService(s *Service) *AdvertisersAssetsService {
rs := &AdvertisersAssetsService{s: s}
return rs
}
type AdvertisersAssetsService struct {
s *Service
}
func NewAdvertisersCampaignsService(s *Service) *AdvertisersCampaignsService {
rs := &AdvertisersCampaignsService{s: s}
return rs
}
type AdvertisersCampaignsService struct {
s *Service
}
func NewAdvertisersChannelsService(s *Service) *AdvertisersChannelsService {
rs := &AdvertisersChannelsService{s: s}
return rs
}
type AdvertisersChannelsService struct {
s *Service
}
func NewAdvertisersCreativesService(s *Service) *AdvertisersCreativesService {
rs := &AdvertisersCreativesService{s: s}
return rs
}
type AdvertisersCreativesService struct {
s *Service
}
func NewAdvertisersInsertionOrdersService(s *Service) *AdvertisersInsertionOrdersService {
rs := &AdvertisersInsertionOrdersService{s: s}
return rs
}
type AdvertisersInsertionOrdersService struct {
s *Service
}
func NewAdvertisersLineItemsService(s *Service) *AdvertisersLineItemsService {
rs := &AdvertisersLineItemsService{s: s}
rs.TargetingTypes = NewAdvertisersLineItemsTargetingTypesService(s)
return rs
}
type AdvertisersLineItemsService struct {
s *Service
TargetingTypes *AdvertisersLineItemsTargetingTypesService
}
func NewAdvertisersLineItemsTargetingTypesService(s *Service) *AdvertisersLineItemsTargetingTypesService {
rs := &AdvertisersLineItemsTargetingTypesService{s: s}
rs.AssignedTargetingOptions = NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s)
return rs
}
type AdvertisersLineItemsTargetingTypesService struct {
s *Service
AssignedTargetingOptions *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService
}
func NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService {
rs := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService{s: s}
return rs
}
type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService struct {
s *Service
}
func NewAdvertisersLocationListsService(s *Service) *AdvertisersLocationListsService {
rs := &AdvertisersLocationListsService{s: s}
return rs
}
type AdvertisersLocationListsService struct {
s *Service
}
func NewAdvertisersNegativeKeywordListsService(s *Service) *AdvertisersNegativeKeywordListsService {
rs := &AdvertisersNegativeKeywordListsService{s: s}
return rs
}
type AdvertisersNegativeKeywordListsService struct {
s *Service
}
func NewCombinedAudiencesService(s *Service) *CombinedAudiencesService {
rs := &CombinedAudiencesService{s: s}
return rs
}
type CombinedAudiencesService struct {
s *Service
}
func NewCustomListsService(s *Service) *CustomListsService {
rs := &CustomListsService{s: s}
return rs
}
type CustomListsService struct {
s *Service
}
func NewFirstAndThirdPartyAudiencesService(s *Service) *FirstAndThirdPartyAudiencesService {
rs := &FirstAndThirdPartyAudiencesService{s: s}
return rs
}
type FirstAndThirdPartyAudiencesService struct {
s *Service
}
func NewFloodlightGroupsService(s *Service) *FloodlightGroupsService {
rs := &FloodlightGroupsService{s: s}
return rs
}
type FloodlightGroupsService struct {
s *Service
}
func NewGoogleAudiencesService(s *Service) *GoogleAudiencesService {
rs := &GoogleAudiencesService{s: s}
return rs
}
type GoogleAudiencesService struct {
s *Service
}
func NewInventorySourceGroupsService(s *Service) *InventorySourceGroupsService {
rs := &InventorySourceGroupsService{s: s}
return rs
}
type InventorySourceGroupsService struct {
s *Service
}
func NewInventorySourcesService(s *Service) *InventorySourcesService {
rs := &InventorySourcesService{s: s}
return rs
}
type InventorySourcesService struct {
s *Service
}
func NewMediaService(s *Service) *MediaService {
rs := &MediaService{s: s}
return rs
}
type MediaService struct {
s *Service
}
func NewPartnersService(s *Service) *PartnersService {
rs := &PartnersService{s: s}
rs.Channels = NewPartnersChannelsService(s)
return rs
}
type PartnersService struct {
s *Service
Channels *PartnersChannelsService
}
func NewPartnersChannelsService(s *Service) *PartnersChannelsService {
rs := &PartnersChannelsService{s: s}
return rs
}
type PartnersChannelsService struct {
s *Service
}
func NewSdfdownloadtasksService(s *Service) *SdfdownloadtasksService {
rs := &SdfdownloadtasksService{s: s}
rs.Operations = NewSdfdownloadtasksOperationsService(s)
return rs
}
type SdfdownloadtasksService struct {
s *Service
Operations *SdfdownloadtasksOperationsService
}
func NewSdfdownloadtasksOperationsService(s *Service) *SdfdownloadtasksOperationsService {
rs := &SdfdownloadtasksOperationsService{s: s}
return rs
}
type SdfdownloadtasksOperationsService struct {
s *Service
}
func NewTargetingTypesService(s *Service) *TargetingTypesService {
rs := &TargetingTypesService{s: s}
rs.TargetingOptions = NewTargetingTypesTargetingOptionsService(s)
return rs
}
type TargetingTypesService struct {
s *Service
TargetingOptions *TargetingTypesTargetingOptionsService
}
func NewTargetingTypesTargetingOptionsService(s *Service) *TargetingTypesTargetingOptionsService {
rs := &TargetingTypesTargetingOptionsService{s: s}
return rs
}
type TargetingTypesTargetingOptionsService struct {
s *Service
}
// ActiveViewVideoViewabilityMetricConfig: Configuration for custom
// Active View video viewability metrics.
type ActiveViewVideoViewabilityMetricConfig struct {
// DisplayName: Required. The display name of the custom metric.
DisplayName string `json:"displayName,omitempty"`
// MinimumDuration: 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).
//
// Possible values:
// "VIDEO_DURATION_UNSPECIFIED" - Value is not specified or is unknown
// in this version.
// "VIDEO_DURATION_SECONDS_NONE" - No duration value.
// "VIDEO_DURATION_SECONDS_0" - 0 seconds.
// "VIDEO_DURATION_SECONDS_1" - 1 second.
// "VIDEO_DURATION_SECONDS_2" - 2 seconds.
// "VIDEO_DURATION_SECONDS_3" - 3 seconds.
// "VIDEO_DURATION_SECONDS_4" - 4 seconds.
// "VIDEO_DURATION_SECONDS_5" - 5 seconds.
// "VIDEO_DURATION_SECONDS_6" - 6 seconds.
// "VIDEO_DURATION_SECONDS_7" - 7 seconds.
// "VIDEO_DURATION_SECONDS_8" - 8 seconds.
// "VIDEO_DURATION_SECONDS_9" - 9 seconds.
// "VIDEO_DURATION_SECONDS_10" - 10 seconds.
// "VIDEO_DURATION_SECONDS_11" - 11 seconds.
// "VIDEO_DURATION_SECONDS_12" - 12 seconds.
// "VIDEO_DURATION_SECONDS_13" - 13 seconds.
// "VIDEO_DURATION_SECONDS_14" - 14 seconds.
// "VIDEO_DURATION_SECONDS_15" - 15 seconds.
// "VIDEO_DURATION_SECONDS_30" - 30 seconds.
// "VIDEO_DURATION_SECONDS_45" - 45 seconds.
// "VIDEO_DURATION_SECONDS_60" - 60 seconds.
MinimumDuration string `json:"minimumDuration,omitempty"`
// MinimumQuartile: 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).
//
// Possible values:
// "VIDEO_DURATION_QUARTILE_UNSPECIFIED" - Value is not specified or
// is unknown in this version.
// "VIDEO_DURATION_QUARTILE_NONE" - No quartile value.
// "VIDEO_DURATION_QUARTILE_FIRST" - First quartile.
// "VIDEO_DURATION_QUARTILE_SECOND" - Second quartile (midpoint).
// "VIDEO_DURATION_QUARTILE_THIRD" - Third quartile.
// "VIDEO_DURATION_QUARTILE_FOURTH" - Fourth quartile (completion).
MinimumQuartile string `json:"minimumQuartile,omitempty"`
// MinimumViewability: Required. The minimum percentage of the video
// ad's pixels visible on the screen in
// order for an impression to be recorded.
//
// Possible values:
// "VIEWABILITY_PERCENT_UNSPECIFIED" - Value is not specified or is
// unknown in this version.
// "VIEWABILITY_PERCENT_0" - 0% viewable.
// "VIEWABILITY_PERCENT_25" - 25% viewable.
// "VIEWABILITY_PERCENT_50" - 50% viewable.
// "VIEWABILITY_PERCENT_75" - 75% viewable.
// "VIEWABILITY_PERCENT_100" - 100% viewable.
MinimumViewability string `json:"minimumViewability,omitempty"`
// MinimumVolume: Required. The minimum percentage of the video ad's
// volume required in order for an
// impression to be recorded.
//
// Possible values:
// "VIDEO_VOLUME_PERCENT_UNSPECIFIED" - Value is not specified or is
// unknown in this version.
// "VIDEO_VOLUME_PERCENT_0" - 0% volume.
// "VIDEO_VOLUME_PERCENT_10" - 10% volume.
MinimumVolume string `json:"minimumVolume,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ActiveViewVideoViewabilityMetricConfig) MarshalJSON() ([]byte, error) {
type NoMethod ActiveViewVideoViewabilityMetricConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Adloox: Details of Adloox settings.
type Adloox struct {
// ExcludedAdlooxCategories: Adloox's brand safety settings.
//
// Possible values:
// "ADLOOX_UNSPECIFIED" - This enum is only a placeholder and it
// doesn't specify any Adloox option.
// "ADULT_CONTENT_HARD" - Adult content (hard).
// "ADULT_CONTENT_SOFT" - Adult content (soft).
// "ILLEGAL_CONTENT" - Illegal content.
// "BORDERLINE_CONTENT" - Borderline content.
// "DISCRIMINATORY_CONTENT" - Discriminatory content.
// "VIOLENT_CONTENT_WEAPONS" - Violent content & weapons.
// "LOW_VIEWABILITY_DOMAINS" - Low viewability domains.
// "FRAUD" - Fraud.
ExcludedAdlooxCategories []string `json:"excludedAdlooxCategories,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ExcludedAdlooxCategories") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ExcludedAdlooxCategories")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *Adloox) MarshalJSON() ([]byte, error) {
type NoMethod Adloox
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Advertiser: A single advertiser in Display & Video 360 (DV360).
type Advertiser struct {
// AdServerConfig: Required. Immutable. Ad server related settings of
// the advertiser.
AdServerConfig *AdvertiserAdServerConfig `json:"adServerConfig,omitempty"`
// AdvertiserId: Output only. The unique ID of the advertiser. Assigned
// by the system.
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
// CreativeConfig: Required. Creative related settings of the
// advertiser.
CreativeConfig *AdvertiserCreativeConfig `json:"creativeConfig,omitempty"`
// DataAccessConfig: Settings that control how advertiser data may be
// accessed.
DataAccessConfig *AdvertiserDataAccessConfig `json:"dataAccessConfig,omitempty"`
// DisplayName: Required. The display name of the advertiser.
//
// Must be UTF-8 encoded with a maximum size of 240 bytes.
DisplayName string `json:"displayName,omitempty"`
// EntityStatus: 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.
//
// Possible values:
// "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
// specified or is unknown in this version.
// "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
// budget.
// "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
// budget spending are disabled. An
// entity can be deleted after archived. Deleted entities cannot be
// retrieved.
// "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
// budget spending are disabled.
// "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
// the entity.
// "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
// for deletion.
EntityStatus string `json:"entityStatus,omitempty"`
// GeneralConfig: Required. General settings of the advertiser.
GeneralConfig *AdvertiserGeneralConfig `json:"generalConfig,omitempty"`
// IntegrationDetails: Integration details of the advertiser.
// Only integrationCode is currently
// applicable to advertiser. Other fields of IntegrationDetails are
// not
// supported and will be ignored if provided.
IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
// Name: Output only. The resource name of the advertiser.
Name string `json:"name,omitempty"`
// PartnerId: Required. Immutable. The unique ID of the partner that the
// advertiser belongs to.
PartnerId int64 `json:"partnerId,omitempty,string"`
// UpdateTime: Output only. The timestamp when the advertiser was last
// updated. Assigned by the system.
UpdateTime string `json:"updateTime,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "AdServerConfig") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AdServerConfig") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *Advertiser) MarshalJSON() ([]byte, error) {
type NoMethod Advertiser
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AdvertiserAdServerConfig: Ad server related settings of an
// advertiser.
type AdvertiserAdServerConfig struct {
// CmHybridConfig: The configuration for advertisers that use both
// Campaign Manager (CM) and
// third-party ad servers.
CmHybridConfig *CmHybridConfig `json:"cmHybridConfig,omitempty"`
// ThirdPartyOnlyConfig: The configuration for advertisers that use
// third-party ad servers
// only.
ThirdPartyOnlyConfig *ThirdPartyOnlyConfig `json:"thirdPartyOnlyConfig,omitempty"`
// ForceSendFields is a list of field names (e.g. "CmHybridConfig") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CmHybridConfig") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AdvertiserAdServerConfig) MarshalJSON() ([]byte, error) {
type NoMethod AdvertiserAdServerConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AdvertiserCreativeConfig: Creatives related settings of an
// advertiser.
type AdvertiserCreativeConfig struct {
// DynamicCreativeEnabled: Whether or not the advertiser is enabled for
// dynamic creatives.
DynamicCreativeEnabled bool `json:"dynamicCreativeEnabled,omitempty"`
// IasClientId: 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.
IasClientId int64 `json:"iasClientId,omitempty,string"`
// ObaComplianceDisabled: 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.
ObaComplianceDisabled bool `json:"obaComplianceDisabled,omitempty"`
// VideoCreativeDataSharingAuthorized: 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.
VideoCreativeDataSharingAuthorized bool `json:"videoCreativeDataSharingAuthorized,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "DynamicCreativeEnabled") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DynamicCreativeEnabled")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AdvertiserCreativeConfig) MarshalJSON() ([]byte, error) {
type NoMethod AdvertiserCreativeConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AdvertiserDataAccessConfig: Settings that control how advertiser
// related data may be accessed.
type AdvertiserDataAccessConfig struct {
// SdfConfig: Structured Data Files (SDF) settings for the
// advertiser.
//
// If not specified, the SDF settings of the parent partner are used.
SdfConfig *AdvertiserSdfConfig `json:"sdfConfig,omitempty"`
// ForceSendFields is a list of field names (e.g. "SdfConfig") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "SdfConfig") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AdvertiserDataAccessConfig) MarshalJSON() ([]byte, error) {
type NoMethod AdvertiserDataAccessConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AdvertiserGeneralConfig: General settings of an advertiser.
type AdvertiserGeneralConfig struct {
// CurrencyCode: 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
CurrencyCode string `json:"currencyCode,omitempty"`
// DomainUrl: 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
DomainUrl string `json:"domainUrl,omitempty"`
// TimeZone: 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.
TimeZone string `json:"timeZone,omitempty"`
// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CurrencyCode") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AdvertiserGeneralConfig) MarshalJSON() ([]byte, error) {
type NoMethod AdvertiserGeneralConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AdvertiserSdfConfig: Structured Data Files (SDF) settings of an
// advertiser.
type AdvertiserSdfConfig struct {
// OverridePartnerSdfConfig: 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.
OverridePartnerSdfConfig bool `json:"overridePartnerSdfConfig,omitempty"`
// SdfConfig: The SDF configuration for the advertiser.
//
// * Required when
// overridePartnerSdfConfig
// is `true`.
// * Output only when
// overridePartnerSdfConfig
// is `false`.
SdfConfig *SdfConfig `json:"sdfConfig,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "OverridePartnerSdfConfig") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "OverridePartnerSdfConfig")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AdvertiserSdfConfig) MarshalJSON() ([]byte, error) {
type NoMethod AdvertiserSdfConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AgeRangeAssignedTargetingOptionDetails: Represents a targetable age
// range. This will be populated in the details
// field of an AssignedTargetingOption when
// targeting_type is
// `TARGETING_TYPE_AGE_RANGE`.
type AgeRangeAssignedTargetingOptionDetails struct {
// AgeRange: 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.
//
// Possible values:
// "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
// specified in this version. This enum is
// a placeholder for default value and does not represent a real age
// range
// option.
// "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
// "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
// "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
// "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
// "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
// "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
// "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
AgeRange string `json:"ageRange,omitempty"`
// TargetingOptionId: Required. The targeting_option_id of
// a
// TargetingOption of type `TARGETING_TYPE_AGE_RANGE`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g. "AgeRange") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AgeRange") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AgeRangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AgeRangeAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AgeRangeTargetingOptionDetails: Represents a targetable age range.
// This will be populated in the
// age_range_details field when
// targeting_type is
// `TARGETING_TYPE_AGE_RANGE`.
type AgeRangeTargetingOptionDetails struct {
// AgeRange: Output only. The age range of an audience.
//
// Possible values:
// "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
// specified in this version. This enum is
// a placeholder for default value and does not represent a real age
// range
// option.
// "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
// "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
// "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
// "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
// "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
// "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
// "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
AgeRange string `json:"ageRange,omitempty"`
// ForceSendFields is a list of field names (e.g. "AgeRange") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AgeRange") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AgeRangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AgeRangeTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AppAssignedTargetingOptionDetails: Details for assigned app targeting
// option. This will be populated in the
// details field of an AssignedTargetingOption when
// targeting_type is
// `TARGETING_TYPE_APP`.
type AppAssignedTargetingOptionDetails struct {
// AppId: 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`.
AppId string `json:"appId,omitempty"`
// DisplayName: Output only. The display name of the app.
DisplayName string `json:"displayName,omitempty"`
// Negative: Indicates if this option is being negatively targeted.
Negative bool `json:"negative,omitempty"`
// ForceSendFields is a list of field names (e.g. "AppId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AppId") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AppAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AppAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AppCategoryAssignedTargetingOptionDetails: 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`.
type AppCategoryAssignedTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the app category.
DisplayName string `json:"displayName,omitempty"`
// Negative: Indicates if this option is being negatively targeted.
Negative bool `json:"negative,omitempty"`
// TargetingOptionId: Required. The targeting_option_id field
// when
// targeting_type is
// `TARGETING_TYPE_APP_CATEGORY`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AppCategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AppCategoryAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AppCategoryTargetingOptionDetails: 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`.
type AppCategoryTargetingOptionDetails struct {
// DisplayName: Output only. The name of the app collection.
DisplayName string `json:"displayName,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AppCategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AppCategoryTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Asset: A single asset.
type Asset struct {
// Content: The asset content.
// For uploaded assets, the content is the serving path.
Content string `json:"content,omitempty"`
// MediaId: 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.
MediaId int64 `json:"mediaId,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Content") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Content") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Asset) MarshalJSON() ([]byte, error) {
type NoMethod Asset
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AssetAssociation: Asset association for the creative.
type AssetAssociation struct {
// Asset: The associated asset.
Asset *Asset `json:"asset,omitempty"`
// Role: The role of this asset for the creative.
//
// Possible values:
// "ASSET_ROLE_UNSPECIFIED" - Asset role is not specified or is
// unknown in this version.
// "ASSET_ROLE_MAIN" - The asset is the main asset of the creative.
// "ASSET_ROLE_BACKUP" - The asset is a backup asset of the creative.
// "ASSET_ROLE_POLITE_LOAD" - The asset is a polite load asset of the
// creative.
// "ASSET_ROLE_HEADLINE" - Headline of a native creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 25 characters.
//
// This role 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`
// "ASSET_ROLE_LONG_HEADLINE" - Long headline of a native
// creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 50 characters.
//
// This role 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`
// "ASSET_ROLE_BODY" - Body text of a native creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 90 characters.
//
// This role 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`
// "ASSET_ROLE_LONG_BODY" - Long body text of a native creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 150 characters.
//
// This role 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`
// "ASSET_ROLE_CAPTION_URL" - A short, friendly version of the landing
// page URL to show in the creative.
// This URL gives people an idea of where they'll arrive after they
// click on
// the creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 30 characters.
//
// For example, if the landing page URL is
// 'http://www.example.com/page',
// the caption URL can be 'example.com'.
// The protocol (http://) is optional, but the URL can't contain spaces
// or
// special characters.
//
// This role 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`
// "ASSET_ROLE_CALL_TO_ACTION" - The text to use on the call-to-action
// button of a native creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 15 characters.
//
// This role 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`
// "ASSET_ROLE_ADVERTISER_NAME" - The text that identifies the
// advertiser or brand name.
//
// The content must be UTF-8 encoded with a length of no more
// than 25 characters.
//
// This role 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`
// "ASSET_ROLE_PRICE" - The purchase price of your app in the Google
// play store or iOS app store
// (for example, $5.99).
//
// Note that this value is not automatically synced with the actual
// value
// listed in the store. It will always be the one provided when save
// the
// creative.
//
// The content must be UTF-8 encoded with a length of no more
// than 15 characters.
//
// This role is only supported in following
// creative_type:
//
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
// "ASSET_ROLE_ANDROID_APP_ID" - The ID of an Android app in the
// Google play store.
//
// You can find this ID in the App’s Google Play Store URL after
// ‘id’. For
// example,
// in
// https://play.google.com/store/apps/details?id=com.company.appname
// the
// identifier is com.company.appname.
//
// This role is only supported in following
// creative_type:
//
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
// "ASSET_ROLE_IOS_APP_ID" - The ID of an iOS app in the Apple app
// store.
//
// This ID number can be found in the Apple App Store URL as the string
// of
// numbers directly after "id". For example,
// in
// https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the
// ID is
// 422689480.
//
// This role is only supported in following
// creative_type:
//
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
// "ASSET_ROLE_RATING" - The rating of an app in the Google play store
// or iOS app store.
//
// Note that this value is not automatically synced with the actual
// rating
// in the store. It will always be the one provided when save the
// creative.
//
// This role is only supported in following
// creative_type:
//
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
// "ASSET_ROLE_ICON" - The icon of a creative.
//
// This role is only supported and required in
// following
// creative_type:
//
// * `CREATIVE_TYPE_NATIVE`
// * `CREATIVE_TYPE_NATIVE_SITE_SQUARE`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL`
// * `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
// "ASSET_ROLE_COVER_IMAGE" - The cover image of a native video
// creative.
//
// This role is only supported and required in
// following
// creative_type:
//
// * `CREATIVE_TYPE_VIDEO`
Role string `json:"role,omitempty"`
// ForceSendFields is a list of field names (e.g. "Asset") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Asset") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AssetAssociation) MarshalJSON() ([]byte, error) {
type NoMethod AssetAssociation
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AssignedTargetingOption: 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.
type AssignedTargetingOption struct {
// AgeRangeDetails: Age range details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_AGE_RANGE`.
AgeRangeDetails *AgeRangeAssignedTargetingOptionDetails `json:"ageRangeDetails,omitempty"`
// AppCategoryDetails: App category details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_APP_CATEGORY`.
AppCategoryDetails *AppCategoryAssignedTargetingOptionDetails `json:"appCategoryDetails,omitempty"`
// AppDetails: App details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_APP`.
AppDetails *AppAssignedTargetingOptionDetails `json:"appDetails,omitempty"`
// AssignedTargetingOptionId: 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.
AssignedTargetingOptionId string `json:"assignedTargetingOptionId,omitempty"`
// AudienceGroupDetails: Audience targeting details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_AUDIENCE_GROUP`.
// You can only target one audience group option per line item.
AudienceGroupDetails *AudienceGroupAssignedTargetingOptionDetails `json:"audienceGroupDetails,omitempty"`
// AuthorizedSellerStatusDetails: Authorized seller status details. This
// field will be populated when the
// TargetingType is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
//
// You can only target one authorized seller status option per line
// item.
//
// If a line item doesn't have an authorized seller status option,
// all
// authorized sellers indicated as DIRECT or RESELLER in the ads.txt
// file
// are targeted by default.
AuthorizedSellerStatusDetails *AuthorizedSellerStatusAssignedTargetingOptionDetails `json:"authorizedSellerStatusDetails,omitempty"`
// BrowserDetails: Browser details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_BROWSER`.
BrowserDetails *BrowserAssignedTargetingOptionDetails `json:"browserDetails,omitempty"`
// CarrierAndIspDetails: Carrier and ISP details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_CARRIER_AND_ISP`.
CarrierAndIspDetails *CarrierAndIspAssignedTargetingOptionDetails `json:"carrierAndIspDetails,omitempty"`
// CategoryDetails: Category details. This field will be populated when
// the TargetingType is
// `TARGETING_TYPE_CATEGORY`.
//
// Targeting a category will also target its subcategories. If a
// category is
// excluded from targeting and a subcategory is included, the exclusion
// will
// take precedence.
CategoryDetails *CategoryAssignedTargetingOptionDetails `json:"categoryDetails,omitempty"`
// ChannelDetails: Channel details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_CHANNEL`.
ChannelDetails *ChannelAssignedTargetingOptionDetails `json:"channelDetails,omitempty"`
// ContentInstreamPositionDetails: Content instream position details.
// This field will be populated when the
// TargetingType is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
ContentInstreamPositionDetails *ContentInstreamPositionAssignedTargetingOptionDetails `json:"contentInstreamPositionDetails,omitempty"`
// ContentOutstreamPositionDetails: Content outstream position details.
// This field will be populated when the
// TargetingType is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
ContentOutstreamPositionDetails *ContentOutstreamPositionAssignedTargetingOptionDetails `json:"contentOutstreamPositionDetails,omitempty"`
// DayAndTimeDetails: Day and time details. This field will be populated
// when the
// TargetingType is `TARGETING_TYPE_DAY_AND_TIME`.
DayAndTimeDetails *DayAndTimeAssignedTargetingOptionDetails `json:"dayAndTimeDetails,omitempty"`
// DeviceMakeModelDetails: Device make and model details. This field
// will be populated when the
// TargetingType is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
DeviceMakeModelDetails *DeviceMakeModelAssignedTargetingOptionDetails `json:"deviceMakeModelDetails,omitempty"`
// DeviceTypeDetails: Device Type details. This field will be populated
// when the
// TargetingType is
// `TARGETING_TYPE_DEVICE_TYPE`.
DeviceTypeDetails *DeviceTypeAssignedTargetingOptionDetails `json:"deviceTypeDetails,omitempty"`
// DigitalContentLabelExclusionDetails: Digital content label details.
// This field will be populated when the
// TargetingType is
// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
//
// Digital content labels are targeting exclusions. Advertiser level
// digital
// content label exclusions, if set, are always applied in serving
// (even
// though they aren't visible in line item settings). Line item settings
// can
// exclude content labels in addition to advertiser exclusions, but
// can't
// override them. A line item won't serve if all the digital content
// labels
// are excluded.
DigitalContentLabelExclusionDetails *DigitalContentLabelAssignedTargetingOptionDetails `json:"digitalContentLabelExclusionDetails,omitempty"`
// EnvironmentDetails: Environment details. This field will be populated
// when the
// TargetingType is `TARGETING_TYPE_ENVIRONMENT`.
EnvironmentDetails *EnvironmentAssignedTargetingOptionDetails `json:"environmentDetails,omitempty"`
// ExchangeDetails: Exchange details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_EXCHANGE`.
ExchangeDetails *ExchangeAssignedTargetingOptionDetails `json:"exchangeDetails,omitempty"`
// GenderDetails: Gender details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_GENDER`.
GenderDetails *GenderAssignedTargetingOptionDetails `json:"genderDetails,omitempty"`
// GeoRegionDetails: Geographic region details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_GEO_REGION`.
GeoRegionDetails *GeoRegionAssignedTargetingOptionDetails `json:"geoRegionDetails,omitempty"`
// HouseholdIncomeDetails: Household income details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_HOUSEHOLD_INCOME`.
HouseholdIncomeDetails *HouseholdIncomeAssignedTargetingOptionDetails `json:"householdIncomeDetails,omitempty"`
// Inheritance: Output only. The inheritance status of the assigned
// targeting option.
//
// Possible values:
// "INHERITANCE_UNSPECIFIED" - The inheritance is unspecified or
// unknown.
// "NOT_INHERITED" - The assigned targeting option is not inherited
// from higher level entity.
// "INHERITED_FROM_PARTNER" - The assigned targeting option is
// inherited from partner targeting
// settings.
// "INHERITED_FROM_ADVERTISER" - The assigned targeting option is
// inherited from advertiser targeting
// settings.
Inheritance string `json:"inheritance,omitempty"`
// InventorySourceDetails: Inventory source details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_INVENTORY_SOURCE`.
InventorySourceDetails *InventorySourceAssignedTargetingOptionDetails `json:"inventorySourceDetails,omitempty"`
// InventorySourceGroupDetails: Inventory source group details. This
// field will be populated when the
// TargetingType is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
InventorySourceGroupDetails *InventorySourceGroupAssignedTargetingOptionDetails `json:"inventorySourceGroupDetails,omitempty"`
// KeywordDetails: Keyword details. This field will be populated when
// the TargetingType is
// `TARGETING_TYPE_KEYWORD`.
//
// A maximum of 5000 direct negative keywords can be assigned to a
// line item. No limit on number of positive keywords that can be
// assigned.
KeywordDetails *KeywordAssignedTargetingOptionDetails `json:"keywordDetails,omitempty"`
// LanguageDetails: Language details. This field will be populated when
// the TargetingType is
// `TARGETING_TYPE_LANGUAGE`.
LanguageDetails *LanguageAssignedTargetingOptionDetails `json:"languageDetails,omitempty"`
// Name: Output only. The resource name for this assigned targeting
// option.
Name string `json:"name,omitempty"`
// NegativeKeywordListDetails: Keyword details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.
//
// A maximum of 4 negative keyword lists can be assigned to a line item.
NegativeKeywordListDetails *NegativeKeywordListAssignedTargetingOptionDetails `json:"negativeKeywordListDetails,omitempty"`
// OnScreenPositionDetails: On screen position details. This field will
// be populated when the
// TargetingType is `TARGETING_TYPE_ON_SCREEN_POSITION`.
OnScreenPositionDetails *OnScreenPositionAssignedTargetingOptionDetails `json:"onScreenPositionDetails,omitempty"`
// OperatingSystemDetails: Operating system details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_OPERATING_SYSTEM`.
OperatingSystemDetails *OperatingSystemAssignedTargetingOptionDetails `json:"operatingSystemDetails,omitempty"`
// ParentalStatusDetails: Parental status details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_PARENTAL_STATUS`.
ParentalStatusDetails *ParentalStatusAssignedTargetingOptionDetails `json:"parentalStatusDetails,omitempty"`
// ProximityLocationListDetails: Proximity location list details. This
// field will be populated when the
// TargetingType is
// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
ProximityLocationListDetails *ProximityLocationListAssignedTargetingOptionDetails `json:"proximityLocationListDetails,omitempty"`
// RegionalLocationListDetails: Regional location list details. This
// field will be populated when the
// TargetingType is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
RegionalLocationListDetails *RegionalLocationListAssignedTargetingOptionDetails `json:"regionalLocationListDetails,omitempty"`
// SensitiveCategoryExclusionDetails: Sensitive category details. This
// field will be populated when the
// TargetingType is
// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
//
// Sensitive categories are targeting exclusions. Advertiser level
// sensitive
// category exclusions, if set, are always applied in serving (even
// though
// they aren't visible in line item settings). Line item settings
// can
// exclude sensitive categories in addition to advertiser exclusions,
// but
// can't override them.
SensitiveCategoryExclusionDetails *SensitiveCategoryAssignedTargetingOptionDetails `json:"sensitiveCategoryExclusionDetails,omitempty"`
// SubExchangeDetails: Sub-exchange details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_SUB_EXCHANGE`.
SubExchangeDetails *SubExchangeAssignedTargetingOptionDetails `json:"subExchangeDetails,omitempty"`
// TargetingType: Output only. Identifies the type of this assigned
// targeting option.
//
// Possible values:
// "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
// specified or is unknown in this version.
// "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
// related websites or apps).
// "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
// example, education or puzzle games).
// "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
// Birds).
// "TARGETING_TYPE_URL" - Target a specific url (for example,
// quora.com).
// "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
// period on a specific day.
// "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
// (for example, 18-24).
// "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
// specified regions on a regional location list.
// "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
// specified points of interest on a proximity location
// list.
// "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
// example, female or male).
// "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
// size for video ads.
// "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
// content for video ads.
// "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
// parental status (for example, parent or not a
// parent).
// "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
// ads in a specific content instream position (for
// example, pre-roll, mid-roll, or post-roll).
// "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
// specific content outstream position.
// "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
// (for example, tablet or connected TV).
// "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
// groups of audiences.
// Singleton field, at most one can exist on a single Lineitem at a
// time.
// "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
// example, Chrome).
// "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
// household income range (for example, top 10%).
// "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
// screen position.
// "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
// third party verification (for example, IAS or
// DoubleVerify).
// "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
// by specific digital content label ratings (for example,
// DL-MA: suitable only for mature audiences).
// "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
// content by sensitive categories (for example, adult).
// "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
// (for example, web or app).
// "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
// carrier or internet service provider
// (ISP) (for example, Comcast or Orange).
// "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
// operating system (for example, macOS).
// "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
// device make or model (for example, Roku or
// Samsung).
// "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
// example, dog or retriever).
// "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
// negative keyword list.
// "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
// (for example, 80% viewable).
// "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
// category (for example, arts &
// entertainment).
// "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
// specific deals and auction packages.
// "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
// example, English or Japanese).
// "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
// authorized sellers.
// "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
// location (for example, a city or state).
// "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
// a group of deals and auction packages.
// "TARGETING_TYPE_PROXIMITY_LOCATION" - Target ads to business
// chains, individual points of interests (POIs),
// street addresses, and latitude/longitude coordinates.
// "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
// exchanges.
// "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
// sub-exchanges.
TargetingType string `json:"targetingType,omitempty"`
// ThirdPartyVerifierDetails: Third party verification details. This
// field will be populated when the
// TargetingType is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
ThirdPartyVerifierDetails *ThirdPartyVerifierAssignedTargetingOptionDetails `json:"thirdPartyVerifierDetails,omitempty"`
// UrlDetails: URL details. This field will be populated when
// the
// TargetingType is `TARGETING_TYPE_URL`.
UrlDetails *UrlAssignedTargetingOptionDetails `json:"urlDetails,omitempty"`
// UserRewardedContentDetails: User rewarded content details. This field
// will be populated when the
// TargetingType is
// `TARGETING_TYPE_USER_REWARDED_CONTENT`.
UserRewardedContentDetails *UserRewardedContentAssignedTargetingOptionDetails `json:"userRewardedContentDetails,omitempty"`
// VideoPlayerSizeDetails: Video player size details. This field will be
// populated when the
// TargetingType is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
VideoPlayerSizeDetails *VideoPlayerSizeAssignedTargetingOptionDetails `json:"videoPlayerSizeDetails,omitempty"`
// ViewabilityDetails: Viewability details. This field will be populated
// when the TargetingType
// is `TARGETING_TYPE_VIEWABILITY`.
//
// You can only target one viewability option per line item.
ViewabilityDetails *ViewabilityAssignedTargetingOptionDetails `json:"viewabilityDetails,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "AgeRangeDetails") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AgeRangeDetails") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AssignedTargetingOption) MarshalJSON() ([]byte, error) {
type NoMethod AssignedTargetingOption
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AudienceGroupAssignedTargetingOptionDetails: 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.
type AudienceGroupAssignedTargetingOptionDetails struct {
// ExcludedFirstAndThirdPartyAudienceGroup: The first and third party
// audience ids and recencies of the excluded
// first and third party audience group. Used for negative targeting.
// Its
// COMPLEMENT is used to UNION other audience groups.
ExcludedFirstAndThirdPartyAudienceGroup *FirstAndThirdPartyAudienceGroup `json:"excludedFirstAndThirdPartyAudienceGroup,omitempty"`
// ExcludedGoogleAudienceGroup: The Google audience ids of the excluded
// Google audience group.
// Used for negative targeting. It's COMPLEMENT is used to UNION
// other
// audience groups.
// Only contains Affinity, In-market and Installed-apps type Google
// audiences.
// All items are logically ‘OR’ of each other.
ExcludedGoogleAudienceGroup *GoogleAudienceGroup `json:"excludedGoogleAudienceGroup,omitempty"`
// IncludedCombinedAudienceGroup: The combined audience ids of the
// included combined audience group.
// Contains combined audience ids only.
IncludedCombinedAudienceGroup *CombinedAudienceGroup `json:"includedCombinedAudienceGroup,omitempty"`
// IncludedCustomListGroup: The custom list ids of the included custom
// list group.
// Contains custom list ids only.
IncludedCustomListGroup *CustomListGroup `json:"includedCustomListGroup,omitempty"`
// IncludedFirstAndThirdPartyAudienceGroups: 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.
IncludedFirstAndThirdPartyAudienceGroups []*FirstAndThirdPartyAudienceGroup `json:"includedFirstAndThirdPartyAudienceGroups,omitempty"`
// IncludedGoogleAudienceGroup: The Google audience ids of the included
// Google audience group.
// Contains Google audience ids only.
IncludedGoogleAudienceGroup *GoogleAudienceGroup `json:"includedGoogleAudienceGroup,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ExcludedFirstAndThirdPartyAudienceGroup") to unconditionally include
// in API requests. By default, fields with empty values are omitted
// from API requests. However, any non-pointer, non-interface field
// appearing in ForceSendFields will be sent to the server regardless of
// whether the field is empty or not. This may be used to include empty
// fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g.
// "ExcludedFirstAndThirdPartyAudienceGroup") to include in API requests
// with the JSON null value. By default, fields with empty values are
// omitted from API requests. However, any field with an empty value
// appearing in NullFields will be sent to the server as null. It is an
// error if a field in this list has a non-empty value. This may be used
// to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AudienceGroupAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AudienceGroupAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AudioVideoOffset: The length an audio or a video has been played.
type AudioVideoOffset struct {
// Percentage: The offset in percentage of the audio or video duration.
Percentage int64 `json:"percentage,omitempty,string"`
// Seconds: The offset in seconds from the start of the audio or video.
Seconds int64 `json:"seconds,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Percentage") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Percentage") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AudioVideoOffset) MarshalJSON() ([]byte, error) {
type NoMethod AudioVideoOffset
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AuthorizedSellerStatusAssignedTargetingOptionDetails: 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`.
type AuthorizedSellerStatusAssignedTargetingOptionDetails struct {
// AuthorizedSellerStatus: Output only. The authorized seller status to
// target.
//
// Possible values:
// "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
// authorized seller status is not specified in this
// version. This enum is a placeholder for default value and does
// not
// represent a real authorized seller status option.
// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
// authorized sellers that directly own the inventory being monetized,
// as
// indicated by a DIRECT declaration in the ads.txt file.
//
// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
// - All authorized sellers, including publishers that have not posted
// an
// ads.txt file. Display & Video 360 automatically disallows
// unauthorized
// sellers.
AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
// TargetingOptionId: Required. The targeting_option_id of
// a
// TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "AuthorizedSellerStatus") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AuthorizedSellerStatusAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AuthorizedSellerStatusAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AuthorizedSellerStatusTargetingOptionDetails: 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`.
type AuthorizedSellerStatusTargetingOptionDetails struct {
// AuthorizedSellerStatus: Output only. The authorized seller status.
//
// Possible values:
// "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
// authorized seller status is not specified in this
// version. This enum is a placeholder for default value and does
// not
// represent a real authorized seller status option.
// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
// authorized sellers that directly own the inventory being monetized,
// as
// indicated by a DIRECT declaration in the ads.txt file.
//
// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
// - All authorized sellers, including publishers that have not posted
// an
// ads.txt file. Display & Video 360 automatically disallows
// unauthorized
// sellers.
AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "AuthorizedSellerStatus") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AuthorizedSellerStatusTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod AuthorizedSellerStatusTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BiddingStrategy: Settings that control the bid strategy.
// Bid strategy determines the bid price.
type BiddingStrategy struct {
// FixedBid: A strategy that uses a fixed bid price.
FixedBid *FixedBidStrategy `json:"fixedBid,omitempty"`
// MaximizeSpendAutoBid: A strategy that automatically adjusts the bid
// to optimize to your
// performance goal while spending the full budget.
//
// At insertion order level, the
// markup_type of line items
// cannot be set to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In
// addition,
// when
// performance_goal_type
// is one of:
//
// * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`
// * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`
// * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` ,
//
// the line_item_type
// of the insertion order line items must be either:
//
// * `LINE_ITEM_TYPE_DISPLAY_DEFAULT`
// * `LINE_ITEM_TYPE_VIDEO_DEFAULT` ,
//
// and when
// performance_goal_type
// is either:
//
// * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA`
// * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN`
//
// the line_item_type
// of the insertion order line items must be
// `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
MaximizeSpendAutoBid *MaximizeSpendBidStrategy `json:"maximizeSpendAutoBid,omitempty"`
// PerformanceGoalAutoBid: A strategy that automatically adjusts the bid
// to meet or beat a specified
// performance goal. It is to be used only for a line item entity.
PerformanceGoalAutoBid *PerformanceGoalBidStrategy `json:"performanceGoalAutoBid,omitempty"`
// ForceSendFields is a list of field names (e.g. "FixedBid") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "FixedBid") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BiddingStrategy) MarshalJSON() ([]byte, error) {
type NoMethod BiddingStrategy
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BrowserAssignedTargetingOptionDetails: Details for assigned browser
// targeting option. This will be populated in
// the details field of an AssignedTargetingOption when
// targeting_type is
// `TARGETING_TYPE_BROWSER`.
type BrowserAssignedTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the browser.
DisplayName string `json:"displayName,omitempty"`
// Negative: 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.
Negative bool `json:"negative,omitempty"`
// TargetingOptionId: Required. The targeting_option_id of
// a
// TargetingOption of type `TARGETING_TYPE_BROWSER`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BrowserAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod BrowserAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BrowserTargetingOptionDetails: Represents a targetable browser. This
// will be populated in the
// browser_details field when
// targeting_type is
// `TARGETING_TYPE_BROWSER`.
type BrowserTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the browser.
DisplayName string `json:"displayName,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BrowserTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod BrowserTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BulkEditLineItemAssignedTargetingOptionsRequest: Request message
// for
// BulkEditLineItemAssignedTargetingOptions.
type BulkEditLineItemAssignedTargetingOptionsRequest struct {
// CreateRequests: The assigned targeting options to create in batch,
// specified as a list of
// `CreateAssignedTargetingOptionsRequest`.
CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
// DeleteRequests: The assigned targeting options to delete in batch,
// specified as a list of
// `DeleteAssignedTargetingOptionsRequest`.
DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
// ForceSendFields is a list of field names (e.g. "CreateRequests") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CreateRequests") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *BulkEditLineItemAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
type NoMethod BulkEditLineItemAssignedTargetingOptionsRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
type BulkEditLineItemAssignedTargetingOptionsResponse struct {
// CreatedAssignedTargetingOptions: The list of assigned targeting
// options that have been successfully created.
//
// This list will be absent if empty.
CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g.
// "CreatedAssignedTargetingOptions") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g.
// "CreatedAssignedTargetingOptions") to include in API requests with
// the JSON null value. By default, fields with empty values are omitted
// from API requests. However, any field with an empty value appearing
// in NullFields will be sent to the server as null. It is an error if a
// field in this list has a non-empty value. This may be used to include
// null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BulkEditLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
type NoMethod BulkEditLineItemAssignedTargetingOptionsResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
type BulkListLineItemAssignedTargetingOptionsResponse struct {
// AssignedTargetingOptions: The list of assigned targeting
// options.
//
// This list will be absent if empty.
AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
// NextPageToken: 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.
NextPageToken string `json:"nextPageToken,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g.
// "AssignedTargetingOptions") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *BulkListLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
type NoMethod BulkListLineItemAssignedTargetingOptionsResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Campaign: A single campaign.
type Campaign struct {
// AdvertiserId: Output only. The unique ID of the advertiser the
// campaign belongs to.
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
// CampaignFlight: Required. The planned spend and duration of the
// campaign.
CampaignFlight *CampaignFlight `json:"campaignFlight,omitempty"`
// CampaignGoal: Required. The goal of the campaign.
CampaignGoal *CampaignGoal `json:"campaignGoal,omitempty"`
// CampaignId: Output only. The unique ID of the campaign. Assigned by
// the system.
CampaignId int64 `json:"campaignId,omitempty,string"`
// DisplayName: Required. The display name of the campaign.
//
// Must be UTF-8 encoded with a maximum size of 240 bytes.
DisplayName string `json:"displayName,omitempty"`
// EntityStatus: 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.
//
// Possible values:
// "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
// specified or is unknown in this version.
// "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
// budget.
// "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
// budget spending are disabled. An
// entity can be deleted after archived. Deleted entities cannot be
// retrieved.
// "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
// budget spending are disabled.
// "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
// the entity.
// "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
// for deletion.
EntityStatus string `json:"entityStatus,omitempty"`
// FrequencyCap: Required. The frequency cap setting of the campaign.
FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
// Name: Output only. The resource name of the campaign.
Name string `json:"name,omitempty"`
// UpdateTime: Output only. The timestamp when the campaign was last
// updated. Assigned by the system.
UpdateTime string `json:"updateTime,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AdvertiserId") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Campaign) MarshalJSON() ([]byte, error) {
type NoMethod Campaign
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CampaignFlight: Settings that track the planned spend and duration of
// a campaign.
type CampaignFlight struct {
// PlannedDates: Required. The dates that the campaign is expected to
// run. They are resolved
// relative to the parent advertiser's time zone.
//
// * The dates specified here will not affect serving. They are used
// to
// generate alerts and warnings. For example, if the flight date of any
// child
// insertion order is outside the range of these dates, the user
// interface
// will show a warning.
// * `start_date` is required and must be the current date or later.
// * `end_date` is optional. If specified, it must be the `start_date`
// or
// later.
// * Any specified date must be before the year 2037.
PlannedDates *DateRange `json:"plannedDates,omitempty"`
// PlannedSpendAmountMicros: 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.
PlannedSpendAmountMicros int64 `json:"plannedSpendAmountMicros,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "PlannedDates") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "PlannedDates") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CampaignFlight) MarshalJSON() ([]byte, error) {
type NoMethod CampaignFlight
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CampaignGoal: Settings that control the goal of a campaign.
type CampaignGoal struct {
// CampaignGoalType: Required. The type of the campaign goal.
//
// Possible values:
// "CAMPAIGN_GOAL_TYPE_UNSPECIFIED" - Goal value is not specified or
// unknown in this version.
// "CAMPAIGN_GOAL_TYPE_APP_INSTALL" - Drive app installs or
// engagements.
// "CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS" - Raise awareness of a brand
// or product.
// "CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION" - Drive offline or in-store
// sales.
// "CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" - Drive online action or visits.
CampaignGoalType string `json:"campaignGoalType,omitempty"`
// PerformanceGoal: Required. The performance goal of the
// campaign.
//
// Acceptable values for
// performance_goal_type are:
//
// * `PERFORMANCE_GOAL_TYPE_CPM`
// * `PERFORMANCE_GOAL_TYPE_CPC`
// * `PERFORMANCE_GOAL_TYPE_CPA`
// * `PERFORMANCE_GOAL_TYPE_CPIAVC`
// * `PERFORMANCE_GOAL_TYPE_CTR`
// * `PERFORMANCE_GOAL_TYPE_VIEWABILITY`
// * `PERFORMANCE_GOAL_TYPE_OTHER`
PerformanceGoal *PerformanceGoal `json:"performanceGoal,omitempty"`
// ForceSendFields is a list of field names (e.g. "CampaignGoalType") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CampaignGoalType") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *CampaignGoal) MarshalJSON() ([]byte, error) {
type NoMethod CampaignGoal
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CarrierAndIspAssignedTargetingOptionDetails: 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`.
type CarrierAndIspAssignedTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the carrier or ISP.
DisplayName string `json:"displayName,omitempty"`
// Negative: 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.
Negative bool `json:"negative,omitempty"`
// TargetingOptionId: Required. The targeting_option_id of
// a
// TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CarrierAndIspAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod CarrierAndIspAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CarrierAndIspTargetingOptionDetails: 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`.
type CarrierAndIspTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the carrier or ISP.
DisplayName string `json:"displayName,omitempty"`
// Type: Output only. The type indicating if it's carrier or ISP.
//
// Possible values:
// "CARRIER_AND_ISP_TYPE_UNSPECIFIED" - Default value when type is not
// specified or is unknown in this version.
// "CARRIER_AND_ISP_TYPE_ISP" - Indicates this targeting resource
// refers to an ISP.
// "CARRIER_AND_ISP_TYPE_CARRIER" - Indicates this targeting resource
// refers to a mobile carrier.
Type string `json:"type,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CarrierAndIspTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod CarrierAndIspTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CategoryAssignedTargetingOptionDetails: Assigned category targeting
// option details. This will be populated in the
// category_details field when
// targeting_type is
// `TARGETING_TYPE_CATEGORY`.
type CategoryAssignedTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the category.
DisplayName string `json:"displayName,omitempty"`
// Negative: Indicates if this option is being negatively targeted.
Negative bool `json:"negative,omitempty"`
// TargetingOptionId: Required. The targeting_option_id field
// when
// targeting_type is
// `TARGETING_TYPE_CATEGORY`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod CategoryAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CategoryTargetingOptionDetails: Represents a targetable category.
// This will be populated in the
// category_details field of a
// TargetingOption when targeting_type is
// `TARGETING_TYPE_CATEGORY`.
type CategoryTargetingOptionDetails struct {
// DisplayName: Output only. The display name of the category.
DisplayName string `json:"displayName,omitempty"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod CategoryTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Channel: A single channel. Channels are custom groups of related
// websites and apps.
type Channel struct {
// AdvertiserId: The ID of the advertiser that owns the channel.
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
// ChannelId: Output only. The unique ID of the channel. Assigned by the
// system.
ChannelId int64 `json:"channelId,omitempty,string"`
// DisplayName: Required. The display name of the channel.
// Must be UTF-8 encoded with a maximum length of 240 bytes.
DisplayName string `json:"displayName,omitempty"`
// Name: Output only. The resource name of the channel.
Name string `json:"name,omitempty"`
// PartnerId: The ID of the partner that owns the channel.
PartnerId int64 `json:"partnerId,omitempty,string"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AdvertiserId") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Channel) MarshalJSON() ([]byte, error) {
type NoMethod Channel
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ChannelAssignedTargetingOptionDetails: Details for assigned channel
// targeting option. This will be populated in
// the details field of an AssignedTargetingOption when
// targeting_type is
// `TARGETING_TYPE_CHANNEL`.
type ChannelAssignedTargetingOptionDetails struct {
// ChannelId: 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.
ChannelId int64 `json:"channelId,omitempty,string"`
// Negative: Indicates if this option is being negatively targeted. For
// advertiser
// level assigned targeting option, this field must be true.
Negative bool `json:"negative,omitempty"`
// ForceSendFields is a list of field names (e.g. "ChannelId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ChannelId") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ChannelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod ChannelAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CmHybridConfig: Settings for advertisers that use both Campaign
// Manager (CM) and third-party
// ad servers.
type CmHybridConfig struct {
// CmAccountId: Required. Immutable. Account ID of the CM Floodlight
// configuration linked with the DV360
// advertiser.
CmAccountId int64 `json:"cmAccountId,omitempty,string"`
// CmFloodlightConfigId: Required. Immutable. ID of the CM Floodlight
// configuration linked with the DV360 advertiser.
CmFloodlightConfigId int64 `json:"cmFloodlightConfigId,omitempty,string"`
// CmFloodlightLinkingAuthorized: 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.
CmFloodlightLinkingAuthorized bool `json:"cmFloodlightLinkingAuthorized,omitempty"`
// CmSyncableSiteIds: 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.
CmSyncableSiteIds googleapi.Int64s `json:"cmSyncableSiteIds,omitempty"`
// Dv360ToCmCostReportingEnabled: Whether or not to report DV360 cost to
// CM.
Dv360ToCmCostReportingEnabled bool `json:"dv360ToCmCostReportingEnabled,omitempty"`
// Dv360ToCmDataSharingEnabled: Whether or not to include DV360 data in
// CM data transfer reports.
Dv360ToCmDataSharingEnabled bool `json:"dv360ToCmDataSharingEnabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "CmAccountId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CmAccountId") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CmHybridConfig) MarshalJSON() ([]byte, error) {
type NoMethod CmHybridConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CmTrackingAd: A Campaign Manager tracking ad.
type CmTrackingAd struct {
// CmAdId: The ad ID of the campaign manager tracking Ad.
CmAdId int64 `json:"cmAdId,omitempty,string"`
// CmCreativeId: The creative ID of the campaign manager tracking Ad.
CmCreativeId int64 `json:"cmCreativeId,omitempty,string"`
// CmPlacementId: The placement ID of the campaign manager tracking Ad.
CmPlacementId int64 `json:"cmPlacementId,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "CmAdId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CmAdId") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CmTrackingAd) MarshalJSON() ([]byte, error) {
type NoMethod CmTrackingAd
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CombinedAudience: Describes a combined audience resource.
type CombinedAudience struct {
// CombinedAudienceId: Output only. The unique ID of the combined
// audience. Assigned by the system.
CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
// DisplayName: Output only. The display name of the combined
// audience.
// .
DisplayName string `json:"displayName,omitempty"`
// Name: Output only. The resource name of the combined audience.
Name string `json:"name,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CombinedAudienceId") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *CombinedAudience) MarshalJSON() ([]byte, error) {
type NoMethod CombinedAudience
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CombinedAudienceGroup: Details of combined audience group.
// All combined audience targeting settings are logically ‘OR’ of
// each other.
type CombinedAudienceGroup struct {
// Settings: 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.
Settings []*CombinedAudienceTargetingSetting `json:"settings,omitempty"`
// ForceSendFields is a list of field names (e.g. "Settings") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Settings") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CombinedAudienceGroup) MarshalJSON() ([]byte, error) {
type NoMethod CombinedAudienceGroup
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CombinedAudienceTargetingSetting: Details of combined audience
// targeting setting.
type CombinedAudienceTargetingSetting struct {
// CombinedAudienceId: Required. Combined audience id of combined
// audience targeting setting.
// This id is combined_audience_id.
CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CombinedAudienceId") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *CombinedAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
type NoMethod CombinedAudienceTargetingSetting
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ContentInstreamPositionAssignedTargetingOptionDetails: 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`.
type ContentInstreamPositionAssignedTargetingOptionDetails struct {
// ContentInstreamPosition: Output only. The content instream position
// for video or audio ads.
//
// Possible values:
// "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
// is not specified in this version. This enum is a
// place holder for a default value and does not represent a real in
// stream ad
// position.
// "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
// streaming content.
// "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
// beginning and end of streaming content.
// "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
// streaming content.
ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
// TargetingOptionId: Required. The targeting_option_id field
// when
// targeting_type is
// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ContentInstreamPosition") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ContentInstreamPosition")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ContentInstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod ContentInstreamPositionAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ContentInstreamPositionTargetingOptionDetails: 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`.
type ContentInstreamPositionTargetingOptionDetails struct {
// ContentInstreamPosition: Output only. The content instream position.
//
// Possible values:
// "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
// is not specified in this version. This enum is a
// place holder for a default value and does not represent a real in
// stream ad
// position.
// "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
// streaming content.
// "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
// beginning and end of streaming content.
// "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
// streaming content.
ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ContentInstreamPosition") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ContentInstreamPosition")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ContentInstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod ContentInstreamPositionTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ContentOutstreamPositionAssignedTargetingOptionDetails: 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`.
type ContentOutstreamPositionAssignedTargetingOptionDetails struct {
// ContentOutstreamPosition: Output only. The content outstream
// position.
//
// Possible values:
// "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
// position is not specified in this version. This enum is a
// place holder for a default value and does not represent a real
// content
// outstream position.
// "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
// in the content outstream.
// "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
// the paragraphs of your pages.
// "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
// top and the sides of a page.
// "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
// scrollable stream of content. A feed is typically
// editorial (e.g. a list of articles or news) or listings (e.g. a list
// of
// products or services).
// "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
// between content loads.
ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
// TargetingOptionId: Required. The targeting_option_id field
// when
// targeting_type is
// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
TargetingOptionId string `json:"targetingOptionId,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ContentOutstreamPosition") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ContentOutstreamPosition")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ContentOutstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod ContentOutstreamPositionAssignedTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ContentOutstreamPositionTargetingOptionDetails: 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`.
type ContentOutstreamPositionTargetingOptionDetails struct {
// ContentOutstreamPosition: Output only. The content outstream
// position.
//
// Possible values:
// "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
// position is not specified in this version. This enum is a
// place holder for a default value and does not represent a real
// content
// outstream position.
// "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
// in the content outstream.
// "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
// the paragraphs of your pages.
// "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
// top and the sides of a page.
// "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
// scrollable stream of content. A feed is typically
// editorial (e.g. a list of articles or news) or listings (e.g. a list
// of
// products or services).
// "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
// between content loads.
ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ContentOutstreamPosition") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ContentOutstreamPosition")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ContentOutstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
type NoMethod ContentOutstreamPositionTargetingOptionDetails
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ConversionCountingConfig: 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.
type ConversionCountingConfig struct {
// FloodlightActivityConfigs: 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.
FloodlightActivityConfigs []*TrackingFloodlightActivityConfig `json:"floodlightActivityConfigs,omitempty"`
// PostViewCountPercentageMillis: 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.
PostViewCountPercentageMillis int64 `json:"postViewCountPercentageMillis,omitempty,string"`
// ForceSendFields is a list of field names (e.g.
// "FloodlightActivityConfigs") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g.
// "FloodlightActivityConfigs") to include in API requests with the JSON
// null value. By default, fields with empty values are omitted from API
// requests. However, any field with an empty value appearing in
// NullFields will be sent to the server as null. It is an error if a
// field in this list has a non-empty value. This may be used to include
// null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ConversionCountingConfig) MarshalJSON() ([]byte, error) {
type NoMethod ConversionCountingConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CounterEvent: Counter event of the creative.
type CounterEvent struct {
// Name: Required. The name of the counter event.
Name string `json:"name,omitempty"`
// ReportingName: Required. The name used to identify this counter event
// in reports.
ReportingName string `json:"reportingName,omitempty"`
// ForceSendFields is a list of field names (e.g. "Name") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Name") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CounterEvent) MarshalJSON() ([]byte, error) {
type NoMethod CounterEvent
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateAssetRequest: A request message for CreateAsset.
type CreateAssetRequest struct {
// Filename: Required. The filename of the asset, including the file
// extension.
//
// The filename must be UTF-8 encoded with a maximum size of 240 bytes.
Filename string `json:"filename,omitempty"`
// ForceSendFields is a list of field names (e.g. "Filename") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Filename") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CreateAssetRequest) MarshalJSON() ([]byte, error) {
type NoMethod CreateAssetRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateAssetResponse: A response message for CreateAsset.
type CreateAssetResponse struct {
// Asset: The uploaded asset, if successful.
Asset *Asset `json:"asset,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Asset") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Asset") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CreateAssetResponse) MarshalJSON() ([]byte, error) {
type NoMethod CreateAssetResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateAssignedTargetingOptionsRequest: A request listing which
// assigned targeting options of a given targeting type
// should be created and added.
type CreateAssignedTargetingOptionsRequest struct {
// AssignedTargetingOptions: Required. The assigned targeting options to
// create and add.
AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
// TargetingType: Required. Identifies the type of this assigned
// targeting option.
//
// Possible values:
// "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
// specified or is unknown in this version.
// "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
// related websites or apps).
// "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
// example, education or puzzle games).
// "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
// Birds).
// "TARGETING_TYPE_URL" - Target a specific url (for example,
// quora.com).
// "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
// period on a specific day.
// "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
// (for example, 18-24).
// "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
// specified regions on a regional location list.
// "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
// specified points of interest on a proximity location
// list.
// "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
// example, female or male).
// "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
// size for video ads.
// "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
// content for video ads.
// "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
// parental status (for example, parent or not a
// parent).
// "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
// ads in a specific content instream position (for
// example, pre-roll, mid-roll, or post-roll).
// "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
// specific content outstream position.
// "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
// (for example, tablet or connected TV).
// "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
// groups of audiences.
// Singleton field, at most one can exist on a single Lineitem at a
// time.
// "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
// example, Chrome).
// "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
// household income range (for example, top 10%).
// "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
// screen position.
// "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
// third party verification (for example, IAS or
// DoubleVerify).
// "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
// by specific digital content label ratings (for example,
// DL-MA: suitable only for mature audiences).
// "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
// content by sensitive categories (for example, adult).
// "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
// (for example, web or app).
// "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
// carrier or internet service provider
// (ISP) (for example, Comcast or Orange).
// "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
// operating system (for example, macOS).
// "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
// device make or model (for example, Roku or
// Samsung).
// "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
// example, dog or retriever).
// "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
// negative keyword list.
// "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
// (for example, 80% viewable).
// "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
// category (for example, arts &
// entertainment).
// "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
// specific deals and auction packages.
// "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
// example, English or Japanese).
// "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
// authorized sellers.
// "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
// location (for example, a city or state).
// "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
// a group of deals and auction packages.
// "TARGETING_TYPE_PROXIMITY_LOCATION" - Target ads to business
// chains, individual points of interests (POIs),
// street addresses, and latitude/longitude coordinates.
// "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
// exchanges.
// "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
// sub-exchanges.
TargetingType string `json:"targetingType,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "AssignedTargetingOptions") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *CreateAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
type NoMethod CreateAssignedTargetingOptionsRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateSdfDownloadTaskRequest: Request message for
// [SdfDownloadTaskService.CreateSdfDownloadTask].
type CreateSdfDownloadTaskRequest struct {
// AdvertiserId: The ID of the advertiser to download SDF for.
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
// IdFilter: Filters on entities by their entity IDs.
IdFilter *IdFilter `json:"idFilter,omitempty"`
// InventorySourceFilter: Filters on Inventory Sources by their IDs.
InventorySourceFilter *InventorySourceFilter `json:"inventorySourceFilter,omitempty"`
// ParentEntityFilter: Filters on selected file types. The entities in
// each file are filtered
// by a chosen set of filter entities. The filter entities must be the
// same
// type as, or a parent type of, the selected file types.
ParentEntityFilter *ParentEntityFilter `json:"parentEntityFilter,omitempty"`
// PartnerId: The ID of the partner to download SDF for.
PartnerId int64 `json:"partnerId,omitempty,string"`
// Version: 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.
//
// Possible values:
// "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
// is unknown in this version.
// "SDF_VERSION_3_1" - SDF version 3.1
// "SDF_VERSION_4" - SDF version 4
// "SDF_VERSION_4_1" - SDF version 4.1
// "SDF_VERSION_4_2" - SDF version 4.2
// "SDF_VERSION_5" - SDF version 5.
// "SDF_VERSION_5_1" - SDF version 5.1
Version string `json:"version,omitempty"`
// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AdvertiserId") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CreateSdfDownloadTaskRequest) MarshalJSON() ([]byte, error) {
type NoMethod CreateSdfDownloadTaskRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Creative: A single Creative.
type Creative struct {
// AdditionalDimensions: 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.
AdditionalDimensions []*Dimensions `json:"additionalDimensions,omitempty"`
// AdvertiserId: Output only. The unique ID of the advertiser the
// creative belongs to.
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
// AppendedTag: Third-party HTML tracking tag to be appended to the
// creative tag.
AppendedTag string `json:"appendedTag,omitempty"`
// Assets: Required. Assets associated to this creative.
// Assets can be associated to the creative in one of following