// Copyright 2026 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 searchads360 provides access to the Search Ads 360 Reporting API.
//
// For product documentation, see: https://developers.google.com/search-ads/reporting
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/searchads360/v0"
//	...
//	ctx := context.Background()
//	searchads360Service, err := searchads360.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
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	searchads360Service, err := searchads360.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
//	config := &oauth2.Config{...}
//	// ...
//	token, err := config.Exchange(ctx, ...)
//	searchads360Service, err := searchads360.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package searchads360 // import "google.golang.org/api/searchads360/v0"

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"log/slog"
	"net/http"
	"net/url"
	"strconv"
	"strings"

	"github.com/googleapis/gax-go/v2/internallog"
	googleapi "google.golang.org/api/googleapi"
	internal "google.golang.org/api/internal"
	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
var _ = internal.Version
var _ = internallog.New

const apiId = "searchads360:v0"
const apiName = "searchads360"
const apiVersion = "v0"
const basePath = "https://searchads360.googleapis.com/"
const basePathTemplate = "https://searchads360.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://searchads360.mtls.googleapis.com/"

// OAuth2 scopes used by this API.
const (
	// View and manage your advertising data in DoubleClick Search
	DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/doubleclicksearch",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	opts = append(opts, internaloption.EnableNewAuthLibrary())
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
	s.Customers = NewCustomersService(s)
	s.SearchAds360Fields = NewSearchAds360FieldsService(s)
	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")
	}
	return NewService(context.TODO(), option.WithHTTPClient(client))
}

type Service struct {
	client    *http.Client
	logger    *slog.Logger
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	Customers *CustomersService

	SearchAds360Fields *SearchAds360FieldsService
}

func (s *Service) userAgent() string {
	if s.UserAgent == "" {
		return googleapi.UserAgent
	}
	return googleapi.UserAgent + " " + s.UserAgent
}

func NewCustomersService(s *Service) *CustomersService {
	rs := &CustomersService{s: s}
	rs.CustomColumns = NewCustomersCustomColumnsService(s)
	rs.SearchAds360 = NewCustomersSearchAds360Service(s)
	return rs
}

type CustomersService struct {
	s *Service

	CustomColumns *CustomersCustomColumnsService

	SearchAds360 *CustomersSearchAds360Service
}

func NewCustomersCustomColumnsService(s *Service) *CustomersCustomColumnsService {
	rs := &CustomersCustomColumnsService{s: s}
	return rs
}

type CustomersCustomColumnsService struct {
	s *Service
}

func NewCustomersSearchAds360Service(s *Service) *CustomersSearchAds360Service {
	rs := &CustomersSearchAds360Service{s: s}
	return rs
}

type CustomersSearchAds360Service struct {
	s *Service
}

func NewSearchAds360FieldsService(s *Service) *SearchAds360FieldsService {
	rs := &SearchAds360FieldsService{s: s}
	return rs
}

type SearchAds360FieldsService struct {
	s *Service
}

// GoogleAdsSearchads360V0Common__AdScheduleInfo: Represents an AdSchedule
// criterion. AdSchedule is specified as the day of the week and a time
// interval within which ads will be shown. No more than six AdSchedules can be
// added for the same day.
type GoogleAdsSearchads360V0Common__AdScheduleInfo struct {
	// DayOfWeek: Day of the week the schedule applies to. This field is required
	// for CREATE operations and is prohibited on UPDATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MONDAY" - Monday.
	//   "TUESDAY" - Tuesday.
	//   "WEDNESDAY" - Wednesday.
	//   "THURSDAY" - Thursday.
	//   "FRIDAY" - Friday.
	//   "SATURDAY" - Saturday.
	//   "SUNDAY" - Sunday.
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// EndHour: Ending hour in 24 hour time; 24 signifies end of the day. This
	// field must be between 0 and 24, inclusive. This field is required for CREATE
	// operations and is prohibited on UPDATE operations.
	EndHour int64 `json:"endHour,omitempty"`
	// EndMinute: Minutes after the end hour at which this schedule ends. The
	// schedule is exclusive of the end minute. This field is required for CREATE
	// operations and is prohibited on UPDATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ZERO" - Zero minutes past the hour.
	//   "FIFTEEN" - Fifteen minutes past the hour.
	//   "THIRTY" - Thirty minutes past the hour.
	//   "FORTY_FIVE" - Forty-five minutes past the hour.
	EndMinute string `json:"endMinute,omitempty"`
	// StartHour: Starting hour in 24 hour time. This field must be between 0 and
	// 23, inclusive. This field is required for CREATE operations and is
	// prohibited on UPDATE operations.
	StartHour int64 `json:"startHour,omitempty"`
	// StartMinute: Minutes after the start hour at which this schedule starts.
	// This field is required for CREATE operations and is prohibited on UPDATE
	// operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ZERO" - Zero minutes past the hour.
	//   "FIFTEEN" - Fifteen minutes past the hour.
	//   "THIRTY" - Thirty minutes past the hour.
	//   "FORTY_FIVE" - Forty-five minutes past the hour.
	StartMinute string `json:"startMinute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DayOfWeek") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AdScheduleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AdScheduleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__AdTextAsset: A text asset used inside an ad.
type GoogleAdsSearchads360V0Common__AdTextAsset struct {
	// Text: Asset text.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Text") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Text") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AdTextAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AdTextAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__AgeRangeInfo: An age range criterion.
type GoogleAdsSearchads360V0Common__AgeRangeInfo struct {
	// Type: Type of the age range.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AGE_RANGE_18_24" - Between 18 and 24 years old.
	//   "AGE_RANGE_25_34" - Between 25 and 34 years old.
	//   "AGE_RANGE_35_44" - Between 35 and 44 years old.
	//   "AGE_RANGE_45_54" - Between 45 and 54 years old.
	//   "AGE_RANGE_55_64" - Between 55 and 64 years old.
	//   "AGE_RANGE_65_UP" - 65 years old and beyond.
	//   "AGE_RANGE_UNDETERMINED" - Undetermined age range.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AgeRangeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AgeRangeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__AssetInteractionTarget: An
// AssetInteractionTarget segment.
type GoogleAdsSearchads360V0Common__AssetInteractionTarget struct {
	// Asset: The asset resource name.
	Asset string `json:"asset,omitempty"`
	// InteractionOnThisAsset: Only used with CustomerAsset, CampaignAsset and
	// AdGroupAsset metrics. Indicates whether the interaction metrics occurred on
	// the asset itself or a different asset or ad unit.
	InteractionOnThisAsset bool `json:"interactionOnThisAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AssetInteractionTarget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AssetInteractionTarget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__AssetUsage: Contains the usage information of
// the asset.
type GoogleAdsSearchads360V0Common__AssetUsage struct {
	// Asset: Resource name of the asset.
	Asset string `json:"asset,omitempty"`
	// ServedAssetFieldType: The served field type of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HEADLINE_1" - The asset is used in headline 1.
	//   "HEADLINE_2" - The asset is used in headline 2.
	//   "HEADLINE_3" - The asset is used in headline 3.
	//   "DESCRIPTION_1" - The asset is used in description 1.
	//   "DESCRIPTION_2" - The asset is used in description 2.
	//   "HEADLINE" - The asset was used in a headline. Use this only if there is
	// only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or
	// HEADLINE_3 enums
	//   "HEADLINE_IN_PORTRAIT" - The asset was used as a headline in portrait
	// image.
	//   "LONG_HEADLINE" - The asset was used in a long headline (used in
	// MultiAssetResponsiveAd).
	//   "DESCRIPTION" - The asset was used in a description. Use this only if
	// there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or
	// DESCRIPTION_@ enums
	//   "DESCRIPTION_IN_PORTRAIT" - The asset was used as description in portrait
	// image.
	//   "BUSINESS_NAME_IN_PORTRAIT" - The asset was used as business name in
	// portrait image.
	//   "BUSINESS_NAME" - The asset was used as business name.
	//   "MARKETING_IMAGE" - The asset was used as a marketing image.
	//   "MARKETING_IMAGE_IN_PORTRAIT" - The asset was used as a marketing image in
	// portrait image.
	//   "SQUARE_MARKETING_IMAGE" - The asset was used as a square marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset was used as a portrait marketing
	// image.
	//   "LOGO" - The asset was used as a logo.
	//   "LANDSCAPE_LOGO" - The asset was used as a landscape logo.
	//   "CALL_TO_ACTION" - The asset was used as a call-to-action.
	//   "YOU_TUBE_VIDEO" - The asset was used as a YouTube video.
	//   "SITELINK" - This asset is used as a sitelink.
	//   "CALL" - This asset is used as a call.
	//   "MOBILE_APP" - This asset is used as a mobile app.
	//   "CALLOUT" - This asset is used as a callout.
	//   "STRUCTURED_SNIPPET" - This asset is used as a structured snippet.
	//   "PRICE" - This asset is used as a price.
	//   "PROMOTION" - This asset is used as a promotion.
	//   "AD_IMAGE" - This asset is used as an image.
	//   "LEAD_FORM" - The asset is used as a lead form.
	//   "BUSINESS_LOGO" - The asset is used as a business logo.
	//   "DESCRIPTION_PREFIX" - The asset is used as a description prefix.
	//   "HEADLINE_AS_SITELINK_POSITION_ONE" - A headline asset used as a sitelink
	// in position 1.
	//   "HEADLINE_AS_SITELINK_POSITION_TWO" - A headline asset used as a sitelink
	// in position 2.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE" - A description line
	// asset used as a sitelink in position 1.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO" - A description line
	// asset used as a sitelink in position 2.
	ServedAssetFieldType string `json:"servedAssetFieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AssetUsage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AssetUsage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__AudienceInfo: An audience criterion.
type GoogleAdsSearchads360V0Common__AudienceInfo struct {
	// Audience: The Audience resource name.
	Audience string `json:"audience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audience") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__AudienceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__AudienceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__BusinessProfileLocation: Business Profile
// location data synced from the linked Business Profile account.
type GoogleAdsSearchads360V0Common__BusinessProfileLocation struct {
	// Labels: Advertiser specified label for the location on the Business Profile
	// account. This is synced from the Business Profile account.
	Labels []string `json:"labels,omitempty"`
	// ListingId: Listing ID of this Business Profile location. This is synced from
	// the linked Business Profile account.
	ListingId int64 `json:"listingId,omitempty,string"`
	// StoreCode: Business Profile store code of this location. This is synced from
	// the Business Profile account.
	StoreCode string `json:"storeCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__BusinessProfileLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__BusinessProfileLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__CallToActionAsset: A call to action asset.
type GoogleAdsSearchads360V0Common__CallToActionAsset struct {
	// CallToAction: Call to action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEARN_MORE" - The call to action type is learn more.
	//   "GET_QUOTE" - The call to action type is get quote.
	//   "APPLY_NOW" - The call to action type is apply now.
	//   "SIGN_UP" - The call to action type is sign up.
	//   "CONTACT_US" - The call to action type is contact us.
	//   "SUBSCRIBE" - The call to action type is subscribe.
	//   "DOWNLOAD" - The call to action type is download.
	//   "BOOK_NOW" - The call to action type is book now.
	//   "SHOP_NOW" - The call to action type is shop now.
	//   "BUY_NOW" - The call to action type is buy now.
	//   "DONATE_NOW" - The call to action type is donate now.
	//   "ORDER_NOW" - The call to action type is order now.
	//   "PLAY_NOW" - The call to action type is play now.
	//   "SEE_MORE" - The call to action type is see more.
	//   "START_NOW" - The call to action type is start now.
	//   "VISIT_SITE" - The call to action type is visit site.
	//   "WATCH_NOW" - The call to action type is watch now.
	CallToAction string `json:"callToAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToAction") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__CallToActionAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__CallToActionAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__CustomParameter: A mapping that can be used
// by custom parameter tags in a `tracking_url_template`, `final_urls`, or
// `mobile_final_urls`.
type GoogleAdsSearchads360V0Common__CustomParameter struct {
	// Key: The key matching the parameter tag name.
	Key string `json:"key,omitempty"`
	// Value: The value to be substituted.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__CustomParameter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__CustomParameter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__DeviceInfo: A device criterion.
type GoogleAdsSearchads360V0Common__DeviceInfo struct {
	// Type: Type of the device.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__DeviceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__DeviceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__EnhancedCpc: An automated bidding strategy
// that raises bids for clicks that seem more likely to lead to a conversion
// and lowers them for clicks where they seem less likely. This bidding
// strategy is deprecated and cannot be created anymore. Use ManualCpc with
// enhanced_cpc_enabled set to true for equivalent functionality.
type GoogleAdsSearchads360V0Common__EnhancedCpc struct {
}

// GoogleAdsSearchads360V0Common__FinalAppUrl: A URL for deep linking into an
// app for the given operating system.
type GoogleAdsSearchads360V0Common__FinalAppUrl struct {
	// OsType: The operating system targeted by this URL. Required.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "IOS" - The Apple IOS operating system.
	//   "ANDROID" - The Android operating system.
	OsType string `json:"osType,omitempty"`
	// Url: The app deep link URL. Deep links specify a location in an app that
	// corresponds to the content you'd like to show, and should be of the form
	// {scheme}://{host_path} The scheme identifies which app to open. For your
	// app, you can use a custom scheme that starts with the app's name. The host
	// and path specify the unique location in the app where your content exists.
	// Example: "exampleapp://productid_1234". Required.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OsType") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OsType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__FinalAppUrl) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__FinalAppUrl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__FrequencyCapEntry: A rule specifying the
// maximum number of times an ad (or some set of ads) can be shown to a user
// over a particular time period.
type GoogleAdsSearchads360V0Common__FrequencyCapEntry struct {
}

// GoogleAdsSearchads360V0Common__GenderInfo: A gender criterion.
type GoogleAdsSearchads360V0Common__GenderInfo struct {
	// Type: Type of the gender.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MALE" - Male.
	//   "FEMALE" - Female.
	//   "UNDETERMINED" - Undetermined gender.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__GenderInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__GenderInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__ImageAsset: An Image asset.
type GoogleAdsSearchads360V0Common__ImageAsset struct {
	// FileSize: File size of the image asset in bytes.
	FileSize int64 `json:"fileSize,omitempty,string"`
	// FullSize: Metadata for this image at its original size.
	FullSize *GoogleAdsSearchads360V0Common__ImageDimension `json:"fullSize,omitempty"`
	// MimeType: MIME type of the image asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - The mime type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "IMAGE_JPEG" - MIME type of image/jpeg.
	//   "IMAGE_GIF" - MIME type of image/gif.
	//   "IMAGE_PNG" - MIME type of image/png.
	//   "FLASH" - MIME type of application/x-shockwave-flash.
	//   "TEXT_HTML" - MIME type of text/html.
	//   "PDF" - MIME type of application/pdf.
	//   "MSWORD" - MIME type of application/msword.
	//   "MSEXCEL" - MIME type of application/vnd.ms-excel.
	//   "RTF" - MIME type of application/rtf.
	//   "AUDIO_WAV" - MIME type of audio/wav.
	//   "AUDIO_MP3" - MIME type of audio/mp3.
	//   "HTML5_AD_ZIP" - MIME type of application/x-html5-ad-zip.
	MimeType string `json:"mimeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FileSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FileSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__ImageAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__ImageAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__ImageDimension: Metadata for an image at a
// certain size, either original or resized.
type GoogleAdsSearchads360V0Common__ImageDimension struct {
	// HeightPixels: Height of the image.
	HeightPixels int64 `json:"heightPixels,omitempty,string"`
	// Url: A URL that returns the image with this height and width.
	Url string `json:"url,omitempty"`
	// WidthPixels: Width of the image.
	WidthPixels int64 `json:"widthPixels,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "HeightPixels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeightPixels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__ImageDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__ImageDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__Keyword: A Keyword criterion segment.
type GoogleAdsSearchads360V0Common__Keyword struct {
	// AdGroupCriterion: The AdGroupCriterion resource name.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Info: Keyword info.
	Info *GoogleAdsSearchads360V0Common__KeywordInfo `json:"info,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__Keyword) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__Keyword
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__KeywordInfo: A keyword criterion.
type GoogleAdsSearchads360V0Common__KeywordInfo struct {
	// MatchType: The match type of the keyword.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	MatchType string `json:"matchType,omitempty"`
	// Text: The text of the keyword (at most 80 characters and 10 words).
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__KeywordInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__KeywordInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__LanguageInfo: A language criterion.
type GoogleAdsSearchads360V0Common__LanguageInfo struct {
	// LanguageConstant: The language constant resource name.
	LanguageConstant string `json:"languageConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__LanguageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__LanguageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__ListingGroupInfo: A listing group criterion.
type GoogleAdsSearchads360V0Common__ListingGroupInfo struct {
	// Type: Type of the listing group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SUBDIVISION" - Subdivision of products along some listing dimension.
	// These nodes are not used by serving to target listing entries, but is purely
	// to define the structure of the tree.
	//   "UNIT" - Listing group unit that defines a bid.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__ListingGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__ListingGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__LocationGroupInfo: A radius around a list of
// locations specified through a feed.
type GoogleAdsSearchads360V0Common__LocationGroupInfo struct {
	// FeedItemSets: FeedItemSets whose FeedItems are targeted. If multiple IDs are
	// specified, then all items that appear in at least one set are targeted. This
	// field cannot be used with geo_target_constants. This is optional and can
	// only be set in CREATE operations.
	FeedItemSets []string `json:"feedItemSets,omitempty"`
	// GeoTargetConstants: Geo target constant(s) restricting the scope of the
	// geographic area within the feed. Currently only one geo target constant is
	// allowed.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// Radius: Distance in units specifying the radius around targeted locations.
	// This is required and must be set in CREATE operations.
	Radius int64 `json:"radius,omitempty,string"`
	// RadiusUnits: Unit of the radius. Miles and meters are supported for geo
	// target constants. Milli miles and meters are supported for feed item sets.
	// This is required and must be set in CREATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "METERS" - Meters
	//   "MILES" - Miles
	//   "MILLI_MILES" - Milli Miles
	RadiusUnits string `json:"radiusUnits,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FeedItemSets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedItemSets") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__LocationGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__LocationGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__LocationInfo: A location criterion.
type GoogleAdsSearchads360V0Common__LocationInfo struct {
	// GeoTargetConstant: The geo target constant resource name.
	GeoTargetConstant string `json:"geoTargetConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GeoTargetConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__LocationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__LocationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__ManualCpa: Manual bidding strategy that
// allows advertiser to set the bid per advertiser-specified action.
type GoogleAdsSearchads360V0Common__ManualCpa struct {
}

// GoogleAdsSearchads360V0Common__ManualCpc: Manual click-based bidding where
// user pays per click.
type GoogleAdsSearchads360V0Common__ManualCpc struct {
	// EnhancedCpcEnabled: Whether bids are to be enhanced based on conversion
	// optimizer data.
	EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnhancedCpcEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnhancedCpcEnabled") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__ManualCpc) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__ManualCpc
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__ManualCpm: Manual impression-based bidding
// where user pays per thousand impressions.
type GoogleAdsSearchads360V0Common__ManualCpm struct {
}

// GoogleAdsSearchads360V0Common__MaximizeConversionValue: An automated bidding
// strategy to help get the most conversion value for your campaigns while
// spending your budget.
type GoogleAdsSearchads360V0Common__MaximizeConversionValue struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetRoas: The target return on ad spend (ROAS) option. If set, the bid
	// strategy will maximize revenue while averaging the target return on ad
	// spend. If the target ROAS is high, the bid strategy may not be able to spend
	// the full budget. If the target ROAS is not set, the bid strategy will aim to
	// achieve the highest possible ROAS for the budget.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__MaximizeConversionValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversionValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__MaximizeConversionValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversionValue
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V0Common__MaximizeConversions: An automated bidding
// strategy to help get the most conversions for your campaigns while spending
// your budget.
type GoogleAdsSearchads360V0Common__MaximizeConversions struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetCpaMicros: The target cost-per-action (CPA) option. This is the
	// average amount that you would like to spend per conversion action specified
	// in micro units of the bidding strategy's currency. If set, the bid strategy
	// will get as many conversions as possible at or below the target
	// cost-per-action. If the target CPA is not set, the bid strategy will aim to
	// achieve the lowest possible CPA given the budget.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__MaximizeConversions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__MaximizeConversions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__Metrics: Metrics data.
type GoogleAdsSearchads360V0Common__Metrics struct {
	// AbsoluteTopImpressionPercentage: Search absolute top impression share is the
	// percentage of your Search ad impressions that are shown in the most
	// prominent Search position.
	AbsoluteTopImpressionPercentage float64 `json:"absoluteTopImpressionPercentage,omitempty"`
	// AllConversions: The total number of conversions. This includes all
	// conversions regardless of the value of include_in_conversions_metric.
	AllConversions float64 `json:"allConversions,omitempty"`
	// AllConversionsByConversionDate: The total number of conversions. This
	// includes all conversions regardless of the value of
	// include_in_conversions_metric. When this column is selected with date, the
	// values in date column means the conversion date. Details for the
	// by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	AllConversionsByConversionDate float64 `json:"allConversionsByConversionDate,omitempty"`
	// AllConversionsFromClickToCall: The number of times people clicked the "Call"
	// button to call a business during or after clicking an ad. This number
	// doesn't include whether or not calls were connected, or the duration of any
	// calls. This metric applies to feed items only.
	AllConversionsFromClickToCall float64 `json:"allConversionsFromClickToCall,omitempty"`
	// AllConversionsFromDirections: The number of times people clicked a "Get
	// directions" button to navigate to a business after clicking an ad. This
	// metric applies to feed items only.
	AllConversionsFromDirections float64 `json:"allConversionsFromDirections,omitempty"`
	// AllConversionsFromInteractionsRate: All conversions from interactions (as
	// oppose to view through conversions) divided by the number of ad
	// interactions.
	AllConversionsFromInteractionsRate float64 `json:"allConversionsFromInteractionsRate,omitempty"`
	// AllConversionsFromInteractionsValuePerInteraction: The value of all
	// conversions from interactions divided by the total number of interactions.
	AllConversionsFromInteractionsValuePerInteraction float64 `json:"allConversionsFromInteractionsValuePerInteraction,omitempty"`
	// AllConversionsFromMenu: The number of times people clicked a link to view a
	// business's menu after clicking an ad. This metric applies to feed items
	// only.
	AllConversionsFromMenu float64 `json:"allConversionsFromMenu,omitempty"`
	// AllConversionsFromOrder: The number of times people placed an order at a
	// business after clicking an ad. This metric applies to feed items only.
	AllConversionsFromOrder float64 `json:"allConversionsFromOrder,omitempty"`
	// AllConversionsFromOtherEngagement: The number of other conversions (for
	// example, posting a review or saving a location for a business) that occurred
	// after people clicked an ad. This metric applies to feed items only.
	AllConversionsFromOtherEngagement float64 `json:"allConversionsFromOtherEngagement,omitempty"`
	// AllConversionsFromStoreVisit: Estimated number of times people visited a
	// business after clicking an ad. This metric applies to feed items only.
	AllConversionsFromStoreVisit float64 `json:"allConversionsFromStoreVisit,omitempty"`
	// AllConversionsFromStoreWebsite: The number of times that people were taken
	// to a business's URL after clicking an ad. This metric applies to feed items
	// only.
	AllConversionsFromStoreWebsite float64 `json:"allConversionsFromStoreWebsite,omitempty"`
	// AllConversionsValue: The value of all conversions.
	AllConversionsValue float64 `json:"allConversionsValue,omitempty"`
	// AllConversionsValueByConversionDate: The value of all conversions. When this
	// column is selected with date, the values in date column means the conversion
	// date. Details for the by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	AllConversionsValueByConversionDate float64 `json:"allConversionsValueByConversionDate,omitempty"`
	// AllConversionsValuePerCost: The value of all conversions divided by the
	// total cost of ad interactions (such as clicks for text ads or views for
	// video ads).
	AllConversionsValuePerCost float64 `json:"allConversionsValuePerCost,omitempty"`
	// AverageCartSize: Average cart size is the average number of products in each
	// order attributed to your ads. How it works: You report conversions with cart
	// data for completed purchases on your website. Average cart size is the total
	// number of products sold divided by the total number of orders you received.
	// Example: You received 2 orders, the first included 3 products and the second
	// included 2. The average cart size is 2.5 products = (3+2)/2. This metric is
	// only available if you report conversions with cart data.
	AverageCartSize float64 `json:"averageCartSize,omitempty"`
	// AverageCost: The average amount you pay per interaction. This amount is the
	// total cost of your ads divided by the total number of interactions.
	AverageCost float64 `json:"averageCost,omitempty"`
	// AverageCpc: The total cost of all clicks divided by the total number of
	// clicks received. This metric is a monetary value and returned in the
	// customer's currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	AverageCpc float64 `json:"averageCpc,omitempty"`
	// AverageCpm: Average cost-per-thousand impressions (CPM). This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	AverageCpm float64 `json:"averageCpm,omitempty"`
	// AverageImpressionFrequencyPerUser: The average number of times a unique user
	// saw your ad during the requested time period. This metric cannot be
	// aggregated, and can only be requested for date ranges of 92 days or less.
	// This metric is available for following campaign types - Display, Video,
	// Discovery and App.
	AverageImpressionFrequencyPerUser float64 `json:"averageImpressionFrequencyPerUser,omitempty"`
	// AverageOrderValueMicros: Average order value is the average revenue you made
	// per order attributed to your ads. How it works: You report conversions with
	// cart data for completed purchases on your website. Average order value is
	// the total revenue from your orders divided by the total number of orders.
	// Example: You received 3 orders which made $10, $15 and $20 worth of revenue.
	// The average order value is $15 = ($10 + $15 + $20)/3. This metric is only
	// available if you report conversions with cart data.
	AverageOrderValueMicros int64 `json:"averageOrderValueMicros,omitempty,string"`
	// AverageQualityScore: The average quality score.
	AverageQualityScore float64 `json:"averageQualityScore,omitempty"`
	// Clicks: The number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// ClientAccountConversions: The number of client account conversions. This
	// only includes conversion actions which
	// include_in_client_account_conversions_metric attribute is set to true. If
	// you use conversion-based bidding, your bid strategies will optimize for
	// these conversions.
	ClientAccountConversions float64 `json:"clientAccountConversions,omitempty"`
	// ClientAccountConversionsValue: The value of client account conversions. This
	// only includes conversion actions which
	// include_in_client_account_conversions_metric attribute is set to true. If
	// you use conversion-based bidding, your bid strategies will optimize for
	// these conversions.
	ClientAccountConversionsValue float64 `json:"clientAccountConversionsValue,omitempty"`
	// ClientAccountCrossSellCostOfGoodsSoldMicros: Client account cross-sell cost
	// of goods sold (COGS) is the total cost of products sold as a result of
	// advertising a different product. How it works: You report conversions with
	// cart data for completed purchases on your website. If the ad that was
	// interacted with before the purchase has an associated product (see Shopping
	// Ads) then this product is considered the advertised product. Any product
	// included in the order the customer places is a sold product. If these
	// products don't match then this is considered cross-sell. Cross-sell cost of
	// goods sold is the total cost of the products sold that weren't advertised.
	// Example: Someone clicked on a Shopping ad for a hat then bought the same hat
	// and a shirt. The hat has a cost of goods sold value of $3, the shirt has a
	// cost of goods sold value of $5. The cross-sell cost of goods sold for this
	// order is $5. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellCostOfGoodsSoldMicros int64 `json:"clientAccountCrossSellCostOfGoodsSoldMicros,omitempty,string"`
	// ClientAccountCrossSellGrossProfitMicros: Client account cross-sell gross
	// profit is the profit you made from products sold as a result of advertising
	// a different product, minus cost of goods sold (COGS). How it works: You
	// report conversions with cart data for completed purchases on your website.
	// If the ad that was interacted with before the purchase has an associated
	// product (see Shopping Ads) then this product is considered the advertised
	// product. Any product included in the purchase is a sold product. If these
	// products don't match then this is considered cross-sell. Cross-sell gross
	// profit is the revenue you made from cross-sell attributed to your ads minus
	// the cost of the goods sold. Example: Someone clicked on a Shopping ad for a
	// hat then bought the same hat and a shirt. The shirt is priced $20 and has a
	// cost of goods sold value of $5. The cross-sell gross profit of this order is
	// $15 = $20 - $5. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellGrossProfitMicros int64 `json:"clientAccountCrossSellGrossProfitMicros,omitempty,string"`
	// ClientAccountCrossSellRevenueMicros: Client account cross-sell revenue is
	// the total amount you made from products sold as a result of advertising a
	// different product. How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with
	// before the purchase has an associated product (see Shopping Ads) then this
	// product is considered the advertised product. Any product included in the
	// order the customer places is a sold product. If these products don't match
	// then this is considered cross-sell. Cross-sell revenue is the total value
	// you made from cross-sell attributed to your ads. Example: Someone clicked on
	// a Shopping ad for a hat then bought the same hat and a shirt. The hat is
	// priced $10 and the shirt is priced $20. The cross-sell revenue of this order
	// is $20. This metric is only available if you report conversions with cart
	// data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellRevenueMicros int64 `json:"clientAccountCrossSellRevenueMicros,omitempty,string"`
	// ClientAccountCrossSellUnitsSold: Client account cross-sell units sold is the
	// total number of products sold as a result of advertising a different
	// product. How it works: You report conversions with cart data for completed
	// purchases on your website. If the ad that was interacted with before the
	// purchase has an associated product (see Shopping Ads) then this product is
	// considered the advertised product. Any product included in the order the
	// customer places is a sold product. If these products don't match then this
	// is considered cross-sell. Cross-sell units sold is the total number of
	// cross-sold products from all orders attributed to your ads. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat, a shirt and a
	// jacket. The cross-sell units sold in this order is 2. This metric is only
	// available if you report conversions with cart data.
	ClientAccountCrossSellUnitsSold float64 `json:"clientAccountCrossSellUnitsSold,omitempty"`
	// ClientAccountLeadCostOfGoodsSoldMicros: Client account lead cost of goods
	// sold (COGS) is the total cost of products sold as a result of advertising
	// the same product. How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with has
	// an associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If the advertised and sold products match, then the cost of
	// these goods is counted under lead cost of goods sold. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat and a shirt. The
	// hat has a cost of goods sold value of $3, the shirt has a cost of goods sold
	// value of $5. The lead cost of goods sold for this order is $3. This metric
	// is only available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadCostOfGoodsSoldMicros int64 `json:"clientAccountLeadCostOfGoodsSoldMicros,omitempty,string"`
	// ClientAccountLeadGrossProfitMicros: Client account lead gross profit is the
	// profit you made from products sold as a result of advertising the same
	// product, minus cost of goods sold (COGS). How it works: You report
	// conversions with cart data for completed purchases on your website. If the
	// ad that was interacted with before the purchase has an associated product
	// (see Shopping Ads) then this product is considered the advertised product.
	// Any product included in the order the customer places is a sold product. If
	// the advertised and sold products match, then the revenue you made from these
	// sales minus the cost of goods sold is your lead gross profit. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt. The hat is priced $10 and has a cost of goods sold value of $3. The
	// lead gross profit of this order is $7 = $10 - $3. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadGrossProfitMicros int64 `json:"clientAccountLeadGrossProfitMicros,omitempty,string"`
	// ClientAccountLeadRevenueMicros: Client account lead revenue is the total
	// amount you made from products sold as a result of advertising the same
	// product. How it works: You report conversions with cart data for completed
	// purchases on your website. If the ad that was interacted with before the
	// purchase has an associated product (see Shopping Ads) then this product is
	// considered the advertised product. Any product included in the order the
	// customer places is a sold product. If the advertised and sold products
	// match, then the total value you made from the sales of these products is
	// shown under lead revenue. Example: Someone clicked on a Shopping ad for a
	// hat then bought the same hat and a shirt. The hat is priced $10 and the
	// shirt is priced $20. The lead revenue of this order is $10. This metric is
	// only available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadRevenueMicros int64 `json:"clientAccountLeadRevenueMicros,omitempty,string"`
	// ClientAccountLeadUnitsSold: Client account lead units sold is the total
	// number of products sold as a result of advertising the same product. How it
	// works: You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with before the purchase has an
	// associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If the advertised and sold products match, then the total
	// number of these products sold is shown under lead units sold. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt
	// and a jacket. The lead units sold in this order is 1. This metric is only
	// available if you report conversions with cart data.
	ClientAccountLeadUnitsSold float64 `json:"clientAccountLeadUnitsSold,omitempty"`
	// ClientAccountViewThroughConversions: The total number of view-through
	// conversions. These happen when a customer sees an image or rich media ad,
	// then later completes a conversion on your site without interacting with (for
	// example, clicking on) another ad.
	ClientAccountViewThroughConversions int64 `json:"clientAccountViewThroughConversions,omitempty,string"`
	// ContentBudgetLostImpressionShare: The estimated percent of times that your
	// ad was eligible to show on the Display Network but didn't because your
	// budget was too low. Note: Content budget lost impression share is reported
	// in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
	ContentBudgetLostImpressionShare float64 `json:"contentBudgetLostImpressionShare,omitempty"`
	// ContentImpressionShare: The impressions you've received on the Display
	// Network divided by the estimated number of impressions you were eligible to
	// receive. Note: Content impression share is reported in the range of 0.1 to
	// 1. Any value below 0.1 is reported as 0.0999.
	ContentImpressionShare float64 `json:"contentImpressionShare,omitempty"`
	// ContentRankLostImpressionShare: The estimated percentage of impressions on
	// the Display Network that your ads didn't receive due to poor Ad Rank. Note:
	// Content rank lost impression share is reported in the range of 0 to 0.9. Any
	// value above 0.9 is reported as 0.9001.
	ContentRankLostImpressionShare float64 `json:"contentRankLostImpressionShare,omitempty"`
	// ConversionCustomMetrics: The conversion custom metrics.
	ConversionCustomMetrics []*GoogleAdsSearchads360V0Common__Value `json:"conversionCustomMetrics,omitempty"`
	// Conversions: The number of conversions. This only includes conversion
	// actions which include_in_conversions_metric attribute is set to true. If you
	// use conversion-based bidding, your bid strategies will optimize for these
	// conversions.
	Conversions float64 `json:"conversions,omitempty"`
	// ConversionsByConversionDate: The sum of conversions by conversion date for
	// biddable conversion types. Can be fractional due to attribution modeling.
	// When this column is selected with date, the values in date column means the
	// conversion date.
	ConversionsByConversionDate float64 `json:"conversionsByConversionDate,omitempty"`
	// ConversionsFromInteractionsRate: Average biddable conversions (from
	// interaction) per conversion eligible interaction. Shows how often, on
	// average, an ad interaction leads to a biddable conversion.
	ConversionsFromInteractionsRate float64 `json:"conversionsFromInteractionsRate,omitempty"`
	// ConversionsFromInteractionsValuePerInteraction: The value of conversions
	// from interactions divided by the number of ad interactions. This only
	// includes conversion actions which include_in_conversions_metric attribute is
	// set to true. If you use conversion-based bidding, your bid strategies will
	// optimize for these conversions.
	ConversionsFromInteractionsValuePerInteraction float64 `json:"conversionsFromInteractionsValuePerInteraction,omitempty"`
	// ConversionsValue: The sum of conversion values for the conversions included
	// in the "conversions" field. This metric is useful only if you entered a
	// value for your conversion actions.
	ConversionsValue float64 `json:"conversionsValue,omitempty"`
	// ConversionsValueByConversionDate: The sum of biddable conversions value by
	// conversion date. When this column is selected with date, the values in date
	// column means the conversion date.
	ConversionsValueByConversionDate float64 `json:"conversionsValueByConversionDate,omitempty"`
	// ConversionsValuePerCost: The value of biddable conversion divided by the
	// total cost of conversion eligible interactions.
	ConversionsValuePerCost float64 `json:"conversionsValuePerCost,omitempty"`
	// CostMicros: The sum of your cost-per-click (CPC) and cost-per-thousand
	// impressions (CPM) costs during this period. This metric is a monetary value
	// and returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// CostOfGoodsSoldMicros: Cost of goods sold (COGS) is the total cost of the
	// products you sold in orders attributed to your ads. How it works: You can
	// add a cost of goods sold value to every product in Merchant Center. If you
	// report conversions with cart data, the products you sold are matched with
	// their cost of goods sold value and this can be used to calculate the gross
	// profit you made on each order. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The cost of
	// goods sold for this order is $8 = $3 + $5. This metric is only available if
	// you report conversions with cart data.
	CostOfGoodsSoldMicros int64 `json:"costOfGoodsSoldMicros,omitempty,string"`
	// CostPerAllConversions: The cost of ad interactions divided by all
	// conversions.
	CostPerAllConversions float64 `json:"costPerAllConversions,omitempty"`
	// CostPerConversion: Average conversion eligible cost per biddable conversion.
	CostPerConversion float64 `json:"costPerConversion,omitempty"`
	// CostPerCurrentModelAttributedConversion: The cost of ad interactions divided
	// by current model attributed conversions. This only includes conversion
	// actions which include_in_conversions_metric attribute is set to true. If you
	// use conversion-based bidding, your bid strategies will optimize for these
	// conversions.
	CostPerCurrentModelAttributedConversion float64 `json:"costPerCurrentModelAttributedConversion,omitempty"`
	// CrossDeviceConversions: Conversions from when a customer clicks on an ad on
	// one device, then converts on a different device or browser. Cross-device
	// conversions are already included in all_conversions.
	CrossDeviceConversions float64 `json:"crossDeviceConversions,omitempty"`
	// CrossDeviceConversionsByConversionDate: The number of cross-device
	// conversions by conversion date. Details for the by_conversion_date columns
	// are available at https://support.google.com/sa360/answer/9250611.
	CrossDeviceConversionsByConversionDate float64 `json:"crossDeviceConversionsByConversionDate,omitempty"`
	// CrossDeviceConversionsValue: The sum of the value of cross-device
	// conversions.
	CrossDeviceConversionsValue float64 `json:"crossDeviceConversionsValue,omitempty"`
	// CrossDeviceConversionsValueByConversionDate: The sum of cross-device
	// conversions value by conversion date. Details for the by_conversion_date
	// columns are available at https://support.google.com/sa360/answer/9250611.
	CrossDeviceConversionsValueByConversionDate float64 `json:"crossDeviceConversionsValueByConversionDate,omitempty"`
	// CrossSellCostOfGoodsSoldMicros: Cross-sell cost of goods sold (COGS) is the
	// total cost of products sold as a result of advertising a different product.
	// How it works: You report conversions with cart data for completed purchases
	// on your website. If the ad that was interacted with before the purchase has
	// an associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If these products don't match then this is considered
	// cross-sell. Cross-sell cost of goods sold is the total cost of the products
	// sold that weren't advertised. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The cross-sell
	// cost of goods sold for this order is $5. This metric is only available if
	// you report conversions with cart data. This metric is a monetary value and
	// returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellCostOfGoodsSoldMicros int64 `json:"crossSellCostOfGoodsSoldMicros,omitempty,string"`
	// CrossSellGrossProfitMicros: Cross-sell gross profit is the profit you made
	// from products sold as a result of advertising a different product, minus
	// cost of goods sold (COGS). How it works: You report conversions with cart
	// data for completed purchases on your website. If the ad that was interacted
	// with before the purchase has an associated product (see Shopping Ads) then
	// this product is considered the advertised product. Any product included in
	// the purchase is a sold product. If these products don't match then this is
	// considered cross-sell. Cross-sell gross profit is the revenue you made from
	// cross-sell attributed to your ads minus the cost of the goods sold. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The
	// cross-sell gross profit of this order is $15 = $20 - $5. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellGrossProfitMicros int64 `json:"crossSellGrossProfitMicros,omitempty,string"`
	// CrossSellRevenueMicros: Cross-sell revenue is the total amount you made from
	// products sold as a result of advertising a different product. How it works:
	// You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with before the purchase has an
	// associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If these products don't match then this is considered
	// cross-sell. Cross-sell revenue is the total value you made from cross-sell
	// attributed to your ads. Example: Someone clicked on a Shopping ad for a hat
	// then bought the same hat and a shirt. The hat is priced $10 and the shirt is
	// priced $20. The cross-sell revenue of this order is $20. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellRevenueMicros int64 `json:"crossSellRevenueMicros,omitempty,string"`
	// CrossSellUnitsSold: Cross-sell units sold is the total number of products
	// sold as a result of advertising a different product. How it works: You
	// report conversions with cart data for completed purchases on your website.
	// If the ad that was interacted with before the purchase has an associated
	// product (see Shopping Ads) then this product is considered the advertised
	// product. Any product included in the order the customer places is a sold
	// product. If these products don't match then this is considered cross-sell.
	// Cross-sell units sold is the total number of cross-sold products from all
	// orders attributed to your ads. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat, a shirt and a jacket. The cross-sell units
	// sold in this order is 2. This metric is only available if you report
	// conversions with cart data.
	CrossSellUnitsSold float64 `json:"crossSellUnitsSold,omitempty"`
	// Ctr: The number of clicks your ad receives (Clicks) divided by the number of
	// times your ad is shown (Impressions).
	Ctr float64 `json:"ctr,omitempty"`
	// GeneralInvalidClickRate: The percentage of clicks that have been filtered
	// out of your total number of clicks (filtered + non-filtered clicks) due to
	// being general invalid clicks. These are clicks Google considers illegitimate
	// that are detected through routine means of filtration (that is, known
	// invalid data-center traffic, bots and spiders or other crawlers, irregular
	// patterns, etc). You're not charged for them, and they don't affect your
	// account statistics. See the help page at
	// https://support.google.com/campaignmanager/answer/6076504 for details.
	GeneralInvalidClickRate float64 `json:"generalInvalidClickRate,omitempty"`
	// GeneralInvalidClicks: Number of general invalid clicks. These are a subset
	// of your invalid clicks that are detected through routine means of filtration
	// (such as known invalid data-center traffic, bots and spiders or other
	// crawlers, irregular patterns, etc.). You're not charged for them, and they
	// don't affect your account statistics. See the help page at
	// https://support.google.com/campaignmanager/answer/6076504 for details.
	GeneralInvalidClicks int64 `json:"generalInvalidClicks,omitempty,string"`
	// GrossProfitMargin: Gross profit margin is the percentage gross profit you
	// made from orders attributed to your ads, after taking out the cost of goods
	// sold (COGS). How it works: You report conversions with cart data for
	// completed purchases on your website. Gross profit margin is the gross profit
	// you made divided by your total revenue and multiplied by 100%. Gross profit
	// margin calculations only include products that have a cost of goods sold
	// value in Merchant Center. Example: Someone bought a hat and a shirt in an
	// order on your website. The hat is priced $10 and has a cost of goods sold
	// value of $3. The shirt is priced $20 but has no cost of goods sold value.
	// Gross profit margin for this order will only take into account the hat
	// because it has a cost of goods sold value, so it's 70% = ($10 - $3)/$10 x
	// 100%. This metric is only available if you report conversions with cart
	// data.
	GrossProfitMargin float64 `json:"grossProfitMargin,omitempty"`
	// GrossProfitMicros: Gross profit is the profit you made from orders
	// attributed to your ads minus the cost of goods sold (COGS). How it works:
	// Gross profit is the revenue you made from sales attributed to your ads minus
	// cost of goods sold. Gross profit calculations only include products that
	// have a cost of goods sold value in Merchant Center. Example: Someone clicked
	// on a Shopping ad for a hat then bought the same hat and a shirt in an order
	// from your website. The hat is priced $10 and the shirt is priced $20. The
	// hat has a cost of goods sold value of $3, but the shirt has no cost of goods
	// sold value. Gross profit for this order will only take into account the hat,
	// so it's $7 = $10 - $3. This metric is only available if you report
	// conversions with cart data.
	GrossProfitMicros int64 `json:"grossProfitMicros,omitempty,string"`
	// HistoricalCreativeQualityScore: The creative historical quality score.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalCreativeQualityScore string `json:"historicalCreativeQualityScore,omitempty"`
	// HistoricalLandingPageQualityScore: The quality of historical landing page
	// experience.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalLandingPageQualityScore string `json:"historicalLandingPageQualityScore,omitempty"`
	// HistoricalQualityScore: The historical quality score.
	HistoricalQualityScore int64 `json:"historicalQualityScore,omitempty,string"`
	// HistoricalSearchPredictedCtr: The historical search predicted click through
	// rate (CTR).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalSearchPredictedCtr string `json:"historicalSearchPredictedCtr,omitempty"`
	// Impressions: Count of how often your ad has appeared on a search results
	// page or website on the Google Network.
	Impressions int64 `json:"impressions,omitempty,string"`
	// InteractionEventTypes: The types of payable and free interactions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLICK" - Click to site. In most cases, this interaction navigates to an
	// external location, usually the advertiser's landing page. This is also the
	// default InteractionEventType for click events.
	//   "ENGAGEMENT" - The user's expressed intent to engage with the ad in-place.
	//   "VIDEO_VIEW" - User viewed a video ad.
	//   "NONE" - The default InteractionEventType for ad conversion events. This
	// is used when an ad conversion row does NOT indicate that the free
	// interactions (for example, the ad conversions) should be 'promoted' and
	// reported as part of the core metrics. These are simply other (ad)
	// conversions.
	InteractionEventTypes []string `json:"interactionEventTypes,omitempty"`
	// InteractionRate: How often people interact with your ad after it is shown to
	// them. This is the number of interactions divided by the number of times your
	// ad is shown.
	InteractionRate float64 `json:"interactionRate,omitempty"`
	// Interactions: The number of interactions. An interaction is the main user
	// action associated with an ad format-clicks for text and shopping ads, views
	// for video ads, and so on.
	Interactions int64 `json:"interactions,omitempty,string"`
	// InvalidClickRate: The percentage of clicks filtered out of your total number
	// of clicks (filtered + non-filtered clicks) during the reporting period.
	InvalidClickRate float64 `json:"invalidClickRate,omitempty"`
	// InvalidClicks: Number of clicks Google considers illegitimate and doesn't
	// charge you for.
	InvalidClicks int64 `json:"invalidClicks,omitempty,string"`
	// LeadCostOfGoodsSoldMicros: Lead cost of goods sold (COGS) is the total cost
	// of products sold as a result of advertising the same product. How it works:
	// You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with has an associated product (see
	// Shopping Ads) then this product is considered the advertised product. Any
	// product included in the order the customer places is a sold product. If the
	// advertised and sold products match, then the cost of these goods is counted
	// under lead cost of goods sold. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The lead cost
	// of goods sold for this order is $3. This metric is only available if you
	// report conversions with cart data. This metric is a monetary value and
	// returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadCostOfGoodsSoldMicros int64 `json:"leadCostOfGoodsSoldMicros,omitempty,string"`
	// LeadGrossProfitMicros: Lead gross profit is the profit you made from
	// products sold as a result of advertising the same product, minus cost of
	// goods sold (COGS). How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with
	// before the purchase has an associated product (see Shopping Ads) then this
	// product is considered the advertised product. Any product included in the
	// order the customer places is a sold product. If the advertised and sold
	// products match, then the revenue you made from these sales minus the cost of
	// goods sold is your lead gross profit. Example: Someone clicked on a Shopping
	// ad for a hat then bought the same hat and a shirt. The hat is priced $10 and
	// has a cost of goods sold value of $3. The lead gross profit of this order is
	// $7 = $10 - $3. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadGrossProfitMicros int64 `json:"leadGrossProfitMicros,omitempty,string"`
	// LeadRevenueMicros: Lead revenue is the total amount you made from products
	// sold as a result of advertising the same product. How it works: You report
	// conversions with cart data for completed purchases on your website. If the
	// ad that was interacted with before the purchase has an associated product
	// (see Shopping Ads) then this product is considered the advertised product.
	// Any product included in the order the customer places is a sold product. If
	// the advertised and sold products match, then the total value you made from
	// the sales of these products is shown under lead revenue. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat and a shirt. The
	// hat is priced $10 and the shirt is priced $20. The lead revenue of this
	// order is $10. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadRevenueMicros int64 `json:"leadRevenueMicros,omitempty,string"`
	// LeadUnitsSold: Lead units sold is the total number of products sold as a
	// result of advertising the same product. How it works: You report conversions
	// with cart data for completed purchases on your website. If the ad that was
	// interacted with before the purchase has an associated product (see Shopping
	// Ads) then this product is considered the advertised product. Any product
	// included in the order the customer places is a sold product. If the
	// advertised and sold products match, then the total number of these products
	// sold is shown under lead units sold. Example: Someone clicked on a Shopping
	// ad for a hat then bought the same hat, a shirt and a jacket. The lead units
	// sold in this order is 1. This metric is only available if you report
	// conversions with cart data.
	LeadUnitsSold float64 `json:"leadUnitsSold,omitempty"`
	// MobileFriendlyClicksPercentage: The percentage of mobile clicks that go to a
	// mobile-friendly page.
	MobileFriendlyClicksPercentage float64 `json:"mobileFriendlyClicksPercentage,omitempty"`
	// Orders: Orders is the total number of purchase conversions you received
	// attributed to your ads. How it works: You report conversions with cart data
	// for completed purchases on your website. If a conversion is attributed to
	// previous interactions with your ads (clicks for text or Shopping ads, views
	// for video ads etc.) it's counted as an order. Example: Someone clicked on a
	// Shopping ad for a hat then bought the same hat and a shirt in an order on
	// your website. Even though they bought 2 products, this would count as 1
	// order. This metric is only available if you report conversions with cart
	// data.
	Orders float64 `json:"orders,omitempty"`
	// RawEventConversionMetrics: The raw event conversion metrics.
	RawEventConversionMetrics []*GoogleAdsSearchads360V0Common__Value `json:"rawEventConversionMetrics,omitempty"`
	// RevenueMicros: Revenue is the total amount you made from orders attributed
	// to your ads. How it works: You report conversions with cart data for
	// completed purchases on your website. Revenue is the total value of all the
	// orders you received attributed to your ads, minus any discount. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt in an order from your website. The hat is priced $10 and the shirt is
	// priced $20. The entire order has a $5 discount. The revenue from this order
	// is $25 = ($10 + $20) - $5. This metric is only available if you report
	// conversions with cart data.
	RevenueMicros int64 `json:"revenueMicros,omitempty,string"`
	// SearchAbsoluteTopImpressionShare: The percentage of the customer's Shopping
	// or Search ad impressions that are shown in the most prominent Shopping
	// position. See https://support.google.com/sa360/answer/9566729 for details.
	// Any value below 0.1 is reported as 0.0999.
	SearchAbsoluteTopImpressionShare float64 `json:"searchAbsoluteTopImpressionShare,omitempty"`
	// SearchBudgetLostAbsoluteTopImpressionShare: The number estimating how often
	// your ad wasn't the very first ad among the top ads in the search results due
	// to a low budget. Note: Search budget lost absolute top impression share is
	// reported in the range of 0 to 0.9. Any value above 0.9 is reported as
	// 0.9001.
	SearchBudgetLostAbsoluteTopImpressionShare float64 `json:"searchBudgetLostAbsoluteTopImpressionShare,omitempty"`
	// SearchBudgetLostImpressionShare: The estimated percent of times that your ad
	// was eligible to show on the Search Network but didn't because your budget
	// was too low. Note: Search budget lost impression share is reported in the
	// range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
	SearchBudgetLostImpressionShare float64 `json:"searchBudgetLostImpressionShare,omitempty"`
	// SearchBudgetLostTopImpressionShare: The number estimating how often your ad
	// didn't show adjacent to the top organic search results due to a low budget.
	// Note: Search budget lost top impression share is reported in the range of 0
	// to 0.9. Any value above 0.9 is reported as 0.9001.
	SearchBudgetLostTopImpressionShare float64 `json:"searchBudgetLostTopImpressionShare,omitempty"`
	// SearchClickShare: The number of clicks you've received on the Search Network
	// divided by the estimated number of clicks you were eligible to receive.
	// Note: Search click share is reported in the range of 0.1 to 1. Any value
	// below 0.1 is reported as 0.0999.
	SearchClickShare float64 `json:"searchClickShare,omitempty"`
	// SearchExactMatchImpressionShare: The impressions you've received divided by
	// the estimated number of impressions you were eligible to receive on the
	// Search Network for search terms that matched your keywords exactly (or were
	// close variants of your keyword), regardless of your keyword match types.
	// Note: Search exact match impression share is reported in the range of 0.1 to
	// 1. Any value below 0.1 is reported as 0.0999.
	SearchExactMatchImpressionShare float64 `json:"searchExactMatchImpressionShare,omitempty"`
	// SearchImpressionShare: The impressions you've received on the Search Network
	// divided by the estimated number of impressions you were eligible to receive.
	// Note: Search impression share is reported in the range of 0.1 to 1. Any
	// value below 0.1 is reported as 0.0999.
	SearchImpressionShare float64 `json:"searchImpressionShare,omitempty"`
	// SearchRankLostAbsoluteTopImpressionShare: The number estimating how often
	// your ad wasn't the very first ad among the top ads in the search results due
	// to poor Ad Rank. Note: Search rank lost absolute top impression share is
	// reported in the range of 0 to 0.9. Any value above 0.9 is reported as
	// 0.9001.
	SearchRankLostAbsoluteTopImpressionShare float64 `json:"searchRankLostAbsoluteTopImpressionShare,omitempty"`
	// SearchRankLostImpressionShare: The estimated percentage of impressions on
	// the Search Network that your ads didn't receive due to poor Ad Rank. Note:
	// Search rank lost impression share is reported in the range of 0 to 0.9. Any
	// value above 0.9 is reported as 0.9001.
	SearchRankLostImpressionShare float64 `json:"searchRankLostImpressionShare,omitempty"`
	// SearchRankLostTopImpressionShare: The number estimating how often your ad
	// didn't show adjacent to the top organic search results due to poor Ad Rank.
	// Note: Search rank lost top impression share is reported in the range of 0 to
	// 0.9. Any value above 0.9 is reported as 0.9001.
	SearchRankLostTopImpressionShare float64 `json:"searchRankLostTopImpressionShare,omitempty"`
	// SearchTopImpressionShare: The impressions you've received among the top ads
	// compared to the estimated number of impressions you were eligible to receive
	// among the top ads. Note: Search top impression share is reported in the
	// range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. Top ads are
	// generally above the top organic results, although they may show below the
	// top organic results on certain queries.
	SearchTopImpressionShare float64 `json:"searchTopImpressionShare,omitempty"`
	// TopImpressionPercentage: The percent of your ad impressions that are shown
	// adjacent to the top organic search results.
	TopImpressionPercentage float64 `json:"topImpressionPercentage,omitempty"`
	// UniqueUsers: The number of unique users who saw your ad during the requested
	// time period. This metric cannot be aggregated, and can only be requested for
	// date ranges of 92 days or less. This metric is available for following
	// campaign types - Display, Video, Discovery and App.
	UniqueUsers int64 `json:"uniqueUsers,omitempty,string"`
	// UnitsSold: Units sold is the total number of products sold from orders
	// attributed to your ads. How it works: You report conversions with cart data
	// for completed purchases on your website. Units sold is the total number of
	// products sold from all orders attributed to your ads. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat, a shirt and a
	// jacket. The units sold in this order is 3. This metric is only available if
	// you report conversions with cart data.
	UnitsSold float64 `json:"unitsSold,omitempty"`
	// ValuePerAllConversions: The value of all conversions divided by the number
	// of all conversions.
	ValuePerAllConversions float64 `json:"valuePerAllConversions,omitempty"`
	// ValuePerAllConversionsByConversionDate: The value of all conversions divided
	// by the number of all conversions. When this column is selected with date,
	// the values in date column means the conversion date. Details for the
	// by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	ValuePerAllConversionsByConversionDate float64 `json:"valuePerAllConversionsByConversionDate,omitempty"`
	// ValuePerConversion: The value of biddable conversion divided by the number
	// of biddable conversions. Shows how much, on average, each of the biddable
	// conversions is worth.
	ValuePerConversion float64 `json:"valuePerConversion,omitempty"`
	// ValuePerConversionsByConversionDate: Biddable conversions value by
	// conversion date divided by biddable conversions by conversion date. Shows
	// how much, on average, each of the biddable conversions is worth (by
	// conversion date). When this column is selected with date, the values in date
	// column means the conversion date.
	ValuePerConversionsByConversionDate float64 `json:"valuePerConversionsByConversionDate,omitempty"`
	// Visits: Clicks that Search Ads 360 has successfully recorded and forwarded
	// to an advertiser's landing page.
	Visits float64 `json:"visits,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AbsoluteTopImpressionPercentage") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AbsoluteTopImpressionPercentage")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__Metrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__Metrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__Metrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__Metrics
	var s1 struct {
		AbsoluteTopImpressionPercentage                   gensupport.JSONFloat64 `json:"absoluteTopImpressionPercentage"`
		AllConversions                                    gensupport.JSONFloat64 `json:"allConversions"`
		AllConversionsByConversionDate                    gensupport.JSONFloat64 `json:"allConversionsByConversionDate"`
		AllConversionsFromClickToCall                     gensupport.JSONFloat64 `json:"allConversionsFromClickToCall"`
		AllConversionsFromDirections                      gensupport.JSONFloat64 `json:"allConversionsFromDirections"`
		AllConversionsFromInteractionsRate                gensupport.JSONFloat64 `json:"allConversionsFromInteractionsRate"`
		AllConversionsFromInteractionsValuePerInteraction gensupport.JSONFloat64 `json:"allConversionsFromInteractionsValuePerInteraction"`
		AllConversionsFromMenu                            gensupport.JSONFloat64 `json:"allConversionsFromMenu"`
		AllConversionsFromOrder                           gensupport.JSONFloat64 `json:"allConversionsFromOrder"`
		AllConversionsFromOtherEngagement                 gensupport.JSONFloat64 `json:"allConversionsFromOtherEngagement"`
		AllConversionsFromStoreVisit                      gensupport.JSONFloat64 `json:"allConversionsFromStoreVisit"`
		AllConversionsFromStoreWebsite                    gensupport.JSONFloat64 `json:"allConversionsFromStoreWebsite"`
		AllConversionsValue                               gensupport.JSONFloat64 `json:"allConversionsValue"`
		AllConversionsValueByConversionDate               gensupport.JSONFloat64 `json:"allConversionsValueByConversionDate"`
		AllConversionsValuePerCost                        gensupport.JSONFloat64 `json:"allConversionsValuePerCost"`
		AverageCartSize                                   gensupport.JSONFloat64 `json:"averageCartSize"`
		AverageCost                                       gensupport.JSONFloat64 `json:"averageCost"`
		AverageCpc                                        gensupport.JSONFloat64 `json:"averageCpc"`
		AverageCpm                                        gensupport.JSONFloat64 `json:"averageCpm"`
		AverageImpressionFrequencyPerUser                 gensupport.JSONFloat64 `json:"averageImpressionFrequencyPerUser"`
		AverageQualityScore                               gensupport.JSONFloat64 `json:"averageQualityScore"`
		ClientAccountConversions                          gensupport.JSONFloat64 `json:"clientAccountConversions"`
		ClientAccountConversionsValue                     gensupport.JSONFloat64 `json:"clientAccountConversionsValue"`
		ClientAccountCrossSellUnitsSold                   gensupport.JSONFloat64 `json:"clientAccountCrossSellUnitsSold"`
		ClientAccountLeadUnitsSold                        gensupport.JSONFloat64 `json:"clientAccountLeadUnitsSold"`
		ContentBudgetLostImpressionShare                  gensupport.JSONFloat64 `json:"contentBudgetLostImpressionShare"`
		ContentImpressionShare                            gensupport.JSONFloat64 `json:"contentImpressionShare"`
		ContentRankLostImpressionShare                    gensupport.JSONFloat64 `json:"contentRankLostImpressionShare"`
		Conversions                                       gensupport.JSONFloat64 `json:"conversions"`
		ConversionsByConversionDate                       gensupport.JSONFloat64 `json:"conversionsByConversionDate"`
		ConversionsFromInteractionsRate                   gensupport.JSONFloat64 `json:"conversionsFromInteractionsRate"`
		ConversionsFromInteractionsValuePerInteraction    gensupport.JSONFloat64 `json:"conversionsFromInteractionsValuePerInteraction"`
		ConversionsValue                                  gensupport.JSONFloat64 `json:"conversionsValue"`
		ConversionsValueByConversionDate                  gensupport.JSONFloat64 `json:"conversionsValueByConversionDate"`
		ConversionsValuePerCost                           gensupport.JSONFloat64 `json:"conversionsValuePerCost"`
		CostPerAllConversions                             gensupport.JSONFloat64 `json:"costPerAllConversions"`
		CostPerConversion                                 gensupport.JSONFloat64 `json:"costPerConversion"`
		CostPerCurrentModelAttributedConversion           gensupport.JSONFloat64 `json:"costPerCurrentModelAttributedConversion"`
		CrossDeviceConversions                            gensupport.JSONFloat64 `json:"crossDeviceConversions"`
		CrossDeviceConversionsByConversionDate            gensupport.JSONFloat64 `json:"crossDeviceConversionsByConversionDate"`
		CrossDeviceConversionsValue                       gensupport.JSONFloat64 `json:"crossDeviceConversionsValue"`
		CrossDeviceConversionsValueByConversionDate       gensupport.JSONFloat64 `json:"crossDeviceConversionsValueByConversionDate"`
		CrossSellUnitsSold                                gensupport.JSONFloat64 `json:"crossSellUnitsSold"`
		Ctr                                               gensupport.JSONFloat64 `json:"ctr"`
		GeneralInvalidClickRate                           gensupport.JSONFloat64 `json:"generalInvalidClickRate"`
		GrossProfitMargin                                 gensupport.JSONFloat64 `json:"grossProfitMargin"`
		InteractionRate                                   gensupport.JSONFloat64 `json:"interactionRate"`
		InvalidClickRate                                  gensupport.JSONFloat64 `json:"invalidClickRate"`
		LeadUnitsSold                                     gensupport.JSONFloat64 `json:"leadUnitsSold"`
		MobileFriendlyClicksPercentage                    gensupport.JSONFloat64 `json:"mobileFriendlyClicksPercentage"`
		Orders                                            gensupport.JSONFloat64 `json:"orders"`
		SearchAbsoluteTopImpressionShare                  gensupport.JSONFloat64 `json:"searchAbsoluteTopImpressionShare"`
		SearchBudgetLostAbsoluteTopImpressionShare        gensupport.JSONFloat64 `json:"searchBudgetLostAbsoluteTopImpressionShare"`
		SearchBudgetLostImpressionShare                   gensupport.JSONFloat64 `json:"searchBudgetLostImpressionShare"`
		SearchBudgetLostTopImpressionShare                gensupport.JSONFloat64 `json:"searchBudgetLostTopImpressionShare"`
		SearchClickShare                                  gensupport.JSONFloat64 `json:"searchClickShare"`
		SearchExactMatchImpressionShare                   gensupport.JSONFloat64 `json:"searchExactMatchImpressionShare"`
		SearchImpressionShare                             gensupport.JSONFloat64 `json:"searchImpressionShare"`
		SearchRankLostAbsoluteTopImpressionShare          gensupport.JSONFloat64 `json:"searchRankLostAbsoluteTopImpressionShare"`
		SearchRankLostImpressionShare                     gensupport.JSONFloat64 `json:"searchRankLostImpressionShare"`
		SearchRankLostTopImpressionShare                  gensupport.JSONFloat64 `json:"searchRankLostTopImpressionShare"`
		SearchTopImpressionShare                          gensupport.JSONFloat64 `json:"searchTopImpressionShare"`
		TopImpressionPercentage                           gensupport.JSONFloat64 `json:"topImpressionPercentage"`
		UnitsSold                                         gensupport.JSONFloat64 `json:"unitsSold"`
		ValuePerAllConversions                            gensupport.JSONFloat64 `json:"valuePerAllConversions"`
		ValuePerAllConversionsByConversionDate            gensupport.JSONFloat64 `json:"valuePerAllConversionsByConversionDate"`
		ValuePerConversion                                gensupport.JSONFloat64 `json:"valuePerConversion"`
		ValuePerConversionsByConversionDate               gensupport.JSONFloat64 `json:"valuePerConversionsByConversionDate"`
		Visits                                            gensupport.JSONFloat64 `json:"visits"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AbsoluteTopImpressionPercentage = float64(s1.AbsoluteTopImpressionPercentage)
	s.AllConversions = float64(s1.AllConversions)
	s.AllConversionsByConversionDate = float64(s1.AllConversionsByConversionDate)
	s.AllConversionsFromClickToCall = float64(s1.AllConversionsFromClickToCall)
	s.AllConversionsFromDirections = float64(s1.AllConversionsFromDirections)
	s.AllConversionsFromInteractionsRate = float64(s1.AllConversionsFromInteractionsRate)
	s.AllConversionsFromInteractionsValuePerInteraction = float64(s1.AllConversionsFromInteractionsValuePerInteraction)
	s.AllConversionsFromMenu = float64(s1.AllConversionsFromMenu)
	s.AllConversionsFromOrder = float64(s1.AllConversionsFromOrder)
	s.AllConversionsFromOtherEngagement = float64(s1.AllConversionsFromOtherEngagement)
	s.AllConversionsFromStoreVisit = float64(s1.AllConversionsFromStoreVisit)
	s.AllConversionsFromStoreWebsite = float64(s1.AllConversionsFromStoreWebsite)
	s.AllConversionsValue = float64(s1.AllConversionsValue)
	s.AllConversionsValueByConversionDate = float64(s1.AllConversionsValueByConversionDate)
	s.AllConversionsValuePerCost = float64(s1.AllConversionsValuePerCost)
	s.AverageCartSize = float64(s1.AverageCartSize)
	s.AverageCost = float64(s1.AverageCost)
	s.AverageCpc = float64(s1.AverageCpc)
	s.AverageCpm = float64(s1.AverageCpm)
	s.AverageImpressionFrequencyPerUser = float64(s1.AverageImpressionFrequencyPerUser)
	s.AverageQualityScore = float64(s1.AverageQualityScore)
	s.ClientAccountConversions = float64(s1.ClientAccountConversions)
	s.ClientAccountConversionsValue = float64(s1.ClientAccountConversionsValue)
	s.ClientAccountCrossSellUnitsSold = float64(s1.ClientAccountCrossSellUnitsSold)
	s.ClientAccountLeadUnitsSold = float64(s1.ClientAccountLeadUnitsSold)
	s.ContentBudgetLostImpressionShare = float64(s1.ContentBudgetLostImpressionShare)
	s.ContentImpressionShare = float64(s1.ContentImpressionShare)
	s.ContentRankLostImpressionShare = float64(s1.ContentRankLostImpressionShare)
	s.Conversions = float64(s1.Conversions)
	s.ConversionsByConversionDate = float64(s1.ConversionsByConversionDate)
	s.ConversionsFromInteractionsRate = float64(s1.ConversionsFromInteractionsRate)
	s.ConversionsFromInteractionsValuePerInteraction = float64(s1.ConversionsFromInteractionsValuePerInteraction)
	s.ConversionsValue = float64(s1.ConversionsValue)
	s.ConversionsValueByConversionDate = float64(s1.ConversionsValueByConversionDate)
	s.ConversionsValuePerCost = float64(s1.ConversionsValuePerCost)
	s.CostPerAllConversions = float64(s1.CostPerAllConversions)
	s.CostPerConversion = float64(s1.CostPerConversion)
	s.CostPerCurrentModelAttributedConversion = float64(s1.CostPerCurrentModelAttributedConversion)
	s.CrossDeviceConversions = float64(s1.CrossDeviceConversions)
	s.CrossDeviceConversionsByConversionDate = float64(s1.CrossDeviceConversionsByConversionDate)
	s.CrossDeviceConversionsValue = float64(s1.CrossDeviceConversionsValue)
	s.CrossDeviceConversionsValueByConversionDate = float64(s1.CrossDeviceConversionsValueByConversionDate)
	s.CrossSellUnitsSold = float64(s1.CrossSellUnitsSold)
	s.Ctr = float64(s1.Ctr)
	s.GeneralInvalidClickRate = float64(s1.GeneralInvalidClickRate)
	s.GrossProfitMargin = float64(s1.GrossProfitMargin)
	s.InteractionRate = float64(s1.InteractionRate)
	s.InvalidClickRate = float64(s1.InvalidClickRate)
	s.LeadUnitsSold = float64(s1.LeadUnitsSold)
	s.MobileFriendlyClicksPercentage = float64(s1.MobileFriendlyClicksPercentage)
	s.Orders = float64(s1.Orders)
	s.SearchAbsoluteTopImpressionShare = float64(s1.SearchAbsoluteTopImpressionShare)
	s.SearchBudgetLostAbsoluteTopImpressionShare = float64(s1.SearchBudgetLostAbsoluteTopImpressionShare)
	s.SearchBudgetLostImpressionShare = float64(s1.SearchBudgetLostImpressionShare)
	s.SearchBudgetLostTopImpressionShare = float64(s1.SearchBudgetLostTopImpressionShare)
	s.SearchClickShare = float64(s1.SearchClickShare)
	s.SearchExactMatchImpressionShare = float64(s1.SearchExactMatchImpressionShare)
	s.SearchImpressionShare = float64(s1.SearchImpressionShare)
	s.SearchRankLostAbsoluteTopImpressionShare = float64(s1.SearchRankLostAbsoluteTopImpressionShare)
	s.SearchRankLostImpressionShare = float64(s1.SearchRankLostImpressionShare)
	s.SearchRankLostTopImpressionShare = float64(s1.SearchRankLostTopImpressionShare)
	s.SearchTopImpressionShare = float64(s1.SearchTopImpressionShare)
	s.TopImpressionPercentage = float64(s1.TopImpressionPercentage)
	s.UnitsSold = float64(s1.UnitsSold)
	s.ValuePerAllConversions = float64(s1.ValuePerAllConversions)
	s.ValuePerAllConversionsByConversionDate = float64(s1.ValuePerAllConversionsByConversionDate)
	s.ValuePerConversion = float64(s1.ValuePerConversion)
	s.ValuePerConversionsByConversionDate = float64(s1.ValuePerConversionsByConversionDate)
	s.Visits = float64(s1.Visits)
	return nil
}

// GoogleAdsSearchads360V0Common__MobileAppAsset: An asset representing a
// mobile app.
type GoogleAdsSearchads360V0Common__MobileAppAsset struct {
	// AppId: Required. A string that uniquely identifies a mobile application. It
	// should just contain the platform native id, like "com.android.ebay" for
	// Android or "12345689" for iOS.
	AppId string `json:"appId,omitempty"`
	// AppStore: Required. The application store that distributes this specific
	// app.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Mobile app vendor for Apple app store.
	//   "GOOGLE_APP_STORE" - Mobile app vendor for Google app store.
	AppStore string `json:"appStore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__MobileAppAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__MobileAppAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__PercentCpc: A bidding strategy where bids are
// a fraction of the advertised price for some good or service.
type GoogleAdsSearchads360V0Common__PercentCpc struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// This is an optional field entered by the advertiser and specified in local
	// micros. Note: A zero value is interpreted in the same way as having
	// bid_ceiling undefined.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// EnhancedCpcEnabled: Adjusts the bid for each auction upward or downward,
	// depending on the likelihood of a conversion. Individual bids may exceed
	// cpc_bid_ceiling_micros, but the average bid amount for a campaign should
	// not.
	EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__PercentCpc) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__PercentCpc
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__RealTimeBiddingSetting: Settings for
// Real-Time Bidding, a feature only available for campaigns targeting the Ad
// Exchange network.
type GoogleAdsSearchads360V0Common__RealTimeBiddingSetting struct {
	// OptIn: Whether the campaign is opted in to real-time bidding.
	OptIn bool `json:"optIn,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OptIn") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OptIn") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__RealTimeBiddingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__RealTimeBiddingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo: An
// expanded dynamic search ad.
type GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo: A Search Ads
// 360 expanded text ad.
type GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// Headline2: The second headline of the ad.
	Headline2 string `json:"headline2,omitempty"`
	// Headline3: The third headline of the ad.
	Headline3 string `json:"headline3,omitempty"`
	// Path1: Text appended to the auto-generated visible URL with a delimiter.
	Path1 string `json:"path1,omitempty"`
	// Path2: Text appended to path1 with a delimiter.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo: A Search Ads 360
// product ad.
type GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo struct {
}

// GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo: A Search
// Ads 360 responsive search ad.
type GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V0Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V0Common__AdTextAsset `json:"headlines,omitempty"`
	// Path1: Text appended to the auto-generated visible URL with a delimiter.
	Path1 string `json:"path1,omitempty"`
	// Path2: Text appended to path1 with a delimiter.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo: A Search Ads 360 text
// ad.
type GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// DisplayMobileUrl: The displayed mobile URL of the ad.
	DisplayMobileUrl string `json:"displayMobileUrl,omitempty"`
	// DisplayUrl: The displayed URL of the ad.
	DisplayUrl string `json:"displayUrl,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__Segments: Segment only fields.
type GoogleAdsSearchads360V0Common__Segments struct {
	// AdFormatType: Ad Format type.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VERTICAL_ADS_PROMOTION" - An ad format that promotes a specific entity
	// within a vertical, for example, a hotel ad in the Travel vertical on Search.
	//   "VERTICAL_ADS_BOOKING_LINK" - An ad format for a booking link
	// call-to-action within a vertical ad, for example a 'Book Now' link for a
	// hotel ad.
	//   "TEXT" - A standard text ad format. This is currently only used for ads on
	// the Search network.
	AdFormatType string `json:"adFormatType,omitempty"`
	// AdNetworkType: Ad network type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "SEARCH" - Google search.
	//   "SEARCH_PARTNERS" - Search partners.
	//   "CONTENT" - Display Network.
	//   "YOUTUBE_SEARCH" - YouTube Search.
	//   "YOUTUBE_WATCH" - YouTube Videos
	//   "MIXED" - Cross-network.
	AdNetworkType string `json:"adNetworkType,omitempty"`
	// AssetInteractionTarget: Only used with CustomerAsset, CampaignAsset and
	// AdGroupAsset metrics. Indicates whether the interaction metrics occurred on
	// the asset itself or a different asset or ad unit. Interactions (for example,
	// clicks) are counted across all the parts of the served ad (for example, Ad
	// itself and other components like Sitelinks) when they are served together.
	// When interaction_on_this_asset is true, it means the interactions are on
	// this specific asset and when interaction_on_this_asset is false, it means
	// the interactions is not on this specific asset but on other parts of the
	// served ad this asset is served with.
	AssetInteractionTarget *GoogleAdsSearchads360V0Common__AssetInteractionTarget `json:"assetInteractionTarget,omitempty"`
	// ConversionAction: Resource name of the conversion action.
	ConversionAction string `json:"conversionAction,omitempty"`
	// ConversionActionCategory: Conversion action category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "LEAD" - Lead-generating action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	ConversionActionCategory string `json:"conversionActionCategory,omitempty"`
	// ConversionActionName: Conversion action name.
	ConversionActionName string `json:"conversionActionName,omitempty"`
	// ConversionCustomDimensions: The conversion custom dimensions.
	ConversionCustomDimensions []*GoogleAdsSearchads360V0Common__Value `json:"conversionCustomDimensions,omitempty"`
	// Date: Date to which metrics apply. yyyy-MM-dd format, for example,
	// 2018-04-17.
	Date string `json:"date,omitempty"`
	// DayOfWeek: Day of the week, for example, MONDAY.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MONDAY" - Monday.
	//   "TUESDAY" - Tuesday.
	//   "WEDNESDAY" - Wednesday.
	//   "THURSDAY" - Thursday.
	//   "FRIDAY" - Friday.
	//   "SATURDAY" - Saturday.
	//   "SUNDAY" - Sunday.
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// Device: Device to which metrics apply.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Device string `json:"device,omitempty"`
	// GeoTargetCity: Resource name of the geo target constant that represents a
	// city.
	GeoTargetCity string `json:"geoTargetCity,omitempty"`
	// GeoTargetCountry: Resource name of the geo target constant that represents a
	// country.
	GeoTargetCountry string `json:"geoTargetCountry,omitempty"`
	// GeoTargetMetro: Resource name of the geo target constant that represents a
	// metro.
	GeoTargetMetro string `json:"geoTargetMetro,omitempty"`
	// GeoTargetPostalCode: Resource name of the geo target constant that
	// represents a postal code.
	GeoTargetPostalCode string `json:"geoTargetPostalCode,omitempty"`
	// GeoTargetRegion: Resource name of the geo target constant that represents a
	// region.
	GeoTargetRegion string `json:"geoTargetRegion,omitempty"`
	// Hour: Hour of day as a number between 0 and 23, inclusive.
	Hour int64 `json:"hour,omitempty"`
	// Keyword: Keyword criterion.
	Keyword *GoogleAdsSearchads360V0Common__Keyword `json:"keyword,omitempty"`
	// Month: Month as represented by the date of the first day of a month.
	// Formatted as yyyy-MM-dd.
	Month string `json:"month,omitempty"`
	// ProductBiddingCategoryLevel1: Bidding category (level 1) of the product.
	ProductBiddingCategoryLevel1 string `json:"productBiddingCategoryLevel1,omitempty"`
	// ProductBiddingCategoryLevel2: Bidding category (level 2) of the product.
	ProductBiddingCategoryLevel2 string `json:"productBiddingCategoryLevel2,omitempty"`
	// ProductBiddingCategoryLevel3: Bidding category (level 3) of the product.
	ProductBiddingCategoryLevel3 string `json:"productBiddingCategoryLevel3,omitempty"`
	// ProductBiddingCategoryLevel4: Bidding category (level 4) of the product.
	ProductBiddingCategoryLevel4 string `json:"productBiddingCategoryLevel4,omitempty"`
	// ProductBiddingCategoryLevel5: Bidding category (level 5) of the product.
	ProductBiddingCategoryLevel5 string `json:"productBiddingCategoryLevel5,omitempty"`
	// ProductBrand: Brand of the product.
	ProductBrand string `json:"productBrand,omitempty"`
	// ProductChannel: Channel of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductChannelExclusivity: Channel exclusivity of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SINGLE_CHANNEL" - The item is sold through one channel only, either local
	// stores or online as indicated by its ProductChannel.
	//   "MULTI_CHANNEL" - The item is matched to its online or local stores
	// counterpart, indicating it is available for purchase in both
	// ShoppingProductChannels.
	ProductChannelExclusivity string `json:"productChannelExclusivity,omitempty"`
	// ProductCondition: Condition of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OLD" - The product condition is old.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	ProductCondition string `json:"productCondition,omitempty"`
	// ProductCountry: Resource name of the geo target constant for the country of
	// sale of the product.
	ProductCountry string `json:"productCountry,omitempty"`
	// ProductCustomAttribute0: Custom attribute 0 of the product.
	ProductCustomAttribute0 string `json:"productCustomAttribute0,omitempty"`
	// ProductCustomAttribute1: Custom attribute 1 of the product.
	ProductCustomAttribute1 string `json:"productCustomAttribute1,omitempty"`
	// ProductCustomAttribute2: Custom attribute 2 of the product.
	ProductCustomAttribute2 string `json:"productCustomAttribute2,omitempty"`
	// ProductCustomAttribute3: Custom attribute 3 of the product.
	ProductCustomAttribute3 string `json:"productCustomAttribute3,omitempty"`
	// ProductCustomAttribute4: Custom attribute 4 of the product.
	ProductCustomAttribute4 string `json:"productCustomAttribute4,omitempty"`
	// ProductItemId: Item ID of the product.
	ProductItemId string `json:"productItemId,omitempty"`
	// ProductLanguage: Resource name of the language constant for the language of
	// the product.
	ProductLanguage string `json:"productLanguage,omitempty"`
	// ProductSoldBiddingCategoryLevel1: Bidding category (level 1) of the product
	// sold.
	ProductSoldBiddingCategoryLevel1 string `json:"productSoldBiddingCategoryLevel1,omitempty"`
	// ProductSoldBiddingCategoryLevel2: Bidding category (level 2) of the product
	// sold.
	ProductSoldBiddingCategoryLevel2 string `json:"productSoldBiddingCategoryLevel2,omitempty"`
	// ProductSoldBiddingCategoryLevel3: Bidding category (level 3) of the product
	// sold.
	ProductSoldBiddingCategoryLevel3 string `json:"productSoldBiddingCategoryLevel3,omitempty"`
	// ProductSoldBiddingCategoryLevel4: Bidding category (level 4) of the product
	// sold.
	ProductSoldBiddingCategoryLevel4 string `json:"productSoldBiddingCategoryLevel4,omitempty"`
	// ProductSoldBiddingCategoryLevel5: Bidding category (level 5) of the product
	// sold.
	ProductSoldBiddingCategoryLevel5 string `json:"productSoldBiddingCategoryLevel5,omitempty"`
	// ProductSoldBrand: Brand of the product sold.
	ProductSoldBrand string `json:"productSoldBrand,omitempty"`
	// ProductSoldCondition: Condition of the product sold.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OLD" - The product condition is old.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	ProductSoldCondition string `json:"productSoldCondition,omitempty"`
	// ProductSoldCustomAttribute0: Custom attribute 0 of the product sold.
	ProductSoldCustomAttribute0 string `json:"productSoldCustomAttribute0,omitempty"`
	// ProductSoldCustomAttribute1: Custom attribute 1 of the product sold.
	ProductSoldCustomAttribute1 string `json:"productSoldCustomAttribute1,omitempty"`
	// ProductSoldCustomAttribute2: Custom attribute 2 of the product sold.
	ProductSoldCustomAttribute2 string `json:"productSoldCustomAttribute2,omitempty"`
	// ProductSoldCustomAttribute3: Custom attribute 3 of the product sold.
	ProductSoldCustomAttribute3 string `json:"productSoldCustomAttribute3,omitempty"`
	// ProductSoldCustomAttribute4: Custom attribute 4 of the product sold.
	ProductSoldCustomAttribute4 string `json:"productSoldCustomAttribute4,omitempty"`
	// ProductSoldItemId: Item ID of the product sold.
	ProductSoldItemId string `json:"productSoldItemId,omitempty"`
	// ProductSoldTitle: Title of the product sold.
	ProductSoldTitle string `json:"productSoldTitle,omitempty"`
	// ProductSoldTypeL1: Type (level 1) of the product sold.
	ProductSoldTypeL1 string `json:"productSoldTypeL1,omitempty"`
	// ProductSoldTypeL2: Type (level 2) of the product sold.
	ProductSoldTypeL2 string `json:"productSoldTypeL2,omitempty"`
	// ProductSoldTypeL3: Type (level 3) of the product sold.
	ProductSoldTypeL3 string `json:"productSoldTypeL3,omitempty"`
	// ProductSoldTypeL4: Type (level 4) of the product sold.
	ProductSoldTypeL4 string `json:"productSoldTypeL4,omitempty"`
	// ProductSoldTypeL5: Type (level 5) of the product sold.
	ProductSoldTypeL5 string `json:"productSoldTypeL5,omitempty"`
	// ProductStoreId: Store ID of the product.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ProductTitle: Title of the product.
	ProductTitle string `json:"productTitle,omitempty"`
	// ProductTypeL1: Type (level 1) of the product.
	ProductTypeL1 string `json:"productTypeL1,omitempty"`
	// ProductTypeL2: Type (level 2) of the product.
	ProductTypeL2 string `json:"productTypeL2,omitempty"`
	// ProductTypeL3: Type (level 3) of the product.
	ProductTypeL3 string `json:"productTypeL3,omitempty"`
	// ProductTypeL4: Type (level 4) of the product.
	ProductTypeL4 string `json:"productTypeL4,omitempty"`
	// ProductTypeL5: Type (level 5) of the product.
	ProductTypeL5 string `json:"productTypeL5,omitempty"`
	// Quarter: Quarter as represented by the date of the first day of a quarter.
	// Uses the calendar year for quarters, for example, the second quarter of 2018
	// starts on 2018-04-01. Formatted as yyyy-MM-dd.
	Quarter string `json:"quarter,omitempty"`
	// RawEventConversionDimensions: The raw event conversion dimensions.
	RawEventConversionDimensions []*GoogleAdsSearchads360V0Common__Value `json:"rawEventConversionDimensions,omitempty"`
	// VerticalAdsEventParticipantDisplayNames: The display names of participants
	// in an event listing, like performers, speakers, or teams.
	VerticalAdsEventParticipantDisplayNames string `json:"verticalAdsEventParticipantDisplayNames,omitempty"`
	// VerticalAdsHotelClass: The class of the hotel. Generally in the range of 1
	// to 5 stars, but fully customizable in the hotel feed.
	VerticalAdsHotelClass int64 `json:"verticalAdsHotelClass,omitempty,string"`
	// VerticalAdsListing: The listing associated with a listing impression, click
	// or conversion.
	VerticalAdsListing string `json:"verticalAdsListing,omitempty"`
	// VerticalAdsListingBrand: The brand associated with a specific listing within
	// a Vertical Ads context, for example, the brand of a car rental, a vacation
	// home, or an event.
	VerticalAdsListingBrand string `json:"verticalAdsListingBrand,omitempty"`
	// VerticalAdsListingCity: The city where the vertical ads listing is located.
	VerticalAdsListingCity string `json:"verticalAdsListingCity,omitempty"`
	// VerticalAdsListingCountry: The country where the vertical ads listing is
	// located.
	VerticalAdsListingCountry string `json:"verticalAdsListingCountry,omitempty"`
	// VerticalAdsListingRegion: The region where the vertical ads listing is
	// located.
	VerticalAdsListingRegion string `json:"verticalAdsListingRegion,omitempty"`
	// VerticalAdsPartnerAccount: A specific partner account within a Partner
	// Center (for example, Hotel Center) that supplies inventory feed data for
	// Vertical Ads.
	VerticalAdsPartnerAccount int64 `json:"verticalAdsPartnerAccount,omitempty,string"`
	// VerticalAdsVertical: Type of vertical ad, such as Vacation Rentals, Car
	// Rentals, or Events, used to categorize and segment data in the context of
	// Vertical Ads.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HOTELS" - Hotels travel vertical.
	//   "VACATION_RENTALS" - Vacation rentals travel vertical.
	//   "RENTAL_CARS" - Rental cars travel vertical.
	//   "EVENTS" - Events travel vertical.
	//   "THINGS_TO_DO" - Things to do travel vertical.
	//   "FLIGHTS" - Flights travel vertical.
	VerticalAdsVertical string `json:"verticalAdsVertical,omitempty"`
	// Week: Week as defined as Monday through Sunday, and represented by the date
	// of Monday. Formatted as yyyy-MM-dd.
	Week string `json:"week,omitempty"`
	// Year: Year, formatted as yyyy.
	Year int64 `json:"year,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdFormatType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdFormatType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__Segments) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__Segments
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetCpa: An automated bid strategy that
// sets bids to help get as many conversions as possible at the target
// cost-per-acquisition (CPA) you set.
type GoogleAdsSearchads360V0Common__TargetCpa struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetCpaMicros: Average CPA target. This target should be greater than or
	// equal to minimum billable unit based on the currency for the account.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetCpa) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetCpa
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetCpm: Target CPM (cost per thousand
// impressions) is an automated bidding strategy that sets bids to optimize
// performance given the target CPM you set.
type GoogleAdsSearchads360V0Common__TargetCpm struct {
}

// GoogleAdsSearchads360V0Common__TargetImpressionShare: An automated bidding
// strategy that sets bids so that a certain percentage of search ads are shown
// at the top of the first page (or other targeted location).
type GoogleAdsSearchads360V0Common__TargetImpressionShare struct {
	// CpcBidCeilingMicros: The highest CPC bid the automated bidding system is
	// permitted to specify. This is a required field entered by the advertiser
	// that sets the ceiling and specified in local micros.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// Location: The targeted location on the search results page.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANYWHERE_ON_PAGE" - Any location on the web page.
	//   "TOP_OF_PAGE" - Top box of ads.
	//   "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads.
	Location string `json:"location,omitempty"`
	// LocationFractionMicros: The chosen fraction of ads to be shown in the
	// targeted location in micros. For example, 1% equals 10,000.
	LocationFractionMicros int64 `json:"locationFractionMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetImpressionShare) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetImpressionShare
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetOutrankShare: An automated bidding
// strategy that sets bids based on the target fraction of auctions where the
// advertiser should outrank a specific competitor. This strategy is
// deprecated.
type GoogleAdsSearchads360V0Common__TargetOutrankShare struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetOutrankShare) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetOutrankShare
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetRestriction: The list of
// per-targeting-dimension targeting settings.
type GoogleAdsSearchads360V0Common__TargetRestriction struct {
	// BidOnly: Indicates whether to restrict your ads to show only for the
	// criteria you have selected for this targeting_dimension, or to target all
	// values for this targeting_dimension and show ads based on your targeting in
	// other TargetingDimensions. A value of `true` means that these criteria will
	// only apply bid modifiers, and not affect targeting. A value of `false` means
	// that these criteria will restrict targeting as well as applying bid
	// modifiers.
	BidOnly bool `json:"bidOnly,omitempty"`
	// TargetingDimension: The targeting dimension that these settings apply to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword criteria, for example, 'mars cruise'. KEYWORD may be
	// used as a custom bid dimension. Keywords are always a targeting dimension,
	// so may not be set as a target "ALL" dimension with TargetRestriction.
	//   "AUDIENCE" - Audience criteria, which include user list, user interest,
	// custom affinity, and custom in market.
	//   "TOPIC" - Topic criteria for targeting categories of content, for example,
	// 'category::Animals>Pets' Used for Display and Video targeting.
	//   "GENDER" - Criteria for targeting gender.
	//   "AGE_RANGE" - Criteria for targeting age ranges.
	//   "PLACEMENT" - Placement criteria, which include websites like
	// 'www.flowers4sale.com', as well as mobile applications, mobile app
	// categories, YouTube videos, and YouTube channels.
	//   "PARENTAL_STATUS" - Criteria for parental status targeting.
	//   "INCOME_RANGE" - Criteria for income range targeting.
	TargetingDimension string `json:"targetingDimension,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BidOnly") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BidOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetRestriction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetRestriction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetRoas: An automated bidding strategy
// that helps you maximize revenue while averaging a specific target return on
// ad spend (ROAS).
type GoogleAdsSearchads360V0Common__TargetRoas struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetRoas: Required. The chosen revenue (based on conversion data) per unit
	// of spend. Value must be between 0.01 and 1000.0, inclusive.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetRoas) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetRoas
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__TargetRoas) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__TargetRoas
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V0Common__TargetSpend: An automated bid strategy that
// sets your bids to help get as many clicks as possible within your budget.
type GoogleAdsSearchads360V0Common__TargetSpend struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// TargetSpendMicros: Deprecated: The spend target under which to maximize
	// clicks. A TargetSpend bidder will attempt to spend the smaller of this value
	// or the natural throttling spend amount. If not specified, the budget is used
	// as the spend target. This field is deprecated and should no longer be used.
	// See
	// https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
	// for details.
	TargetSpendMicros int64 `json:"targetSpendMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetSpend) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetSpend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TargetingSetting: Settings for the
// targeting-related features, at the campaign and ad group levels. For more
// details about the targeting setting, visit
// https://support.google.com/google-ads/answer/7365594
type GoogleAdsSearchads360V0Common__TargetingSetting struct {
	// TargetRestrictions: The per-targeting-dimension setting to restrict the
	// reach of your campaign or ad group.
	TargetRestrictions []*GoogleAdsSearchads360V0Common__TargetRestriction `json:"targetRestrictions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRestrictions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRestrictions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TargetingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TargetingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TextAsset: A Text asset.
type GoogleAdsSearchads360V0Common__TextAsset struct {
	// Text: Text content of the text asset.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Text") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Text") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TextAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TextAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__TextLabel: A type of label displaying text on
// a colored background.
type GoogleAdsSearchads360V0Common__TextLabel struct {
	// BackgroundColor: Background color of the label in HEX format. This string
	// must match the regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'.
	// Note: The background color may not be visible for manager accounts.
	BackgroundColor string `json:"backgroundColor,omitempty"`
	// Description: A short description of the label. The length must be no more
	// than 200 characters.
	Description string `json:"description,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackgroundColor") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__TextLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__TextLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UnifiedCallAsset: A unified call asset.
type GoogleAdsSearchads360V0Common__UnifiedCallAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V0Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CallConversionAction: The conversion action to attribute a call conversion
	// to. If not set, the default conversion action is used. This field only has
	// effect if call_conversion_reporting_state is set to
	// USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.
	CallConversionAction string `json:"callConversionAction,omitempty"`
	// CallConversionReportingState: Output only. Indicates whether this CallAsset
	// should use its own call conversion setting, follow the account level
	// setting, or disable call conversion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DISABLED" - Call conversion action is disabled.
	//   "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the account level.
	//   "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the resource (call only ads/call extensions)
	// level.
	CallConversionReportingState string `json:"callConversionReportingState,omitempty"`
	// CallOnly: Whether the call only shows the phone number without a link to the
	// website. Applies to Microsoft Ads.
	CallOnly bool `json:"callOnly,omitempty"`
	// CallTrackingEnabled: Whether the call should be enabled on call tracking.
	// Applies to Microsoft Ads.
	CallTrackingEnabled bool `json:"callTrackingEnabled,omitempty"`
	// CountryCode: Two-letter country code of the phone number. Examples: 'US',
	// 'us'.
	CountryCode string `json:"countryCode,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// PhoneNumber: The advertiser's raw phone number. Examples: '1234567890',
	// '(123)456-7890'
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// UseSearcherTimeZone: Whether to show the call extension in search user's
	// time zone. Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UnifiedCallAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UnifiedCallAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UnifiedCalloutAsset: A unified callout asset.
type GoogleAdsSearchads360V0Common__UnifiedCalloutAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V0Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CalloutText: The callout text. The length of this string should be between 1
	// and 25, inclusive.
	CalloutText string `json:"calloutText,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// UseSearcherTimeZone: Whether to show the asset in search user's time zone.
	// Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UnifiedCalloutAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UnifiedCalloutAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UnifiedLocationAsset: A unified location
// asset.
type GoogleAdsSearchads360V0Common__UnifiedLocationAsset struct {
	// BusinessProfileLocations: The list of business locations for the customer.
	// This will only be returned if the Location Asset is syncing from the
	// Business Profile account. It is possible to have multiple Business Profile
	// listings under the same account that point to the same Place ID.
	BusinessProfileLocations []*GoogleAdsSearchads360V0Common__BusinessProfileLocation `json:"businessProfileLocations,omitempty"`
	// LocationOwnershipType: The type of location ownership. If the type is
	// BUSINESS_OWNER, it will be served as a location extension. If the type is
	// AFFILIATE, it will be served as an affiliate location.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_OWNER" - Business Owner of location(legacy location extension -
	// LE).
	//   "AFFILIATE" - Affiliate location(Third party location extension - ALE).
	LocationOwnershipType string `json:"locationOwnershipType,omitempty"`
	// PlaceId: Place IDs uniquely identify a place in the Google Places database
	// and on Google Maps. This field is unique for a given customer ID and asset
	// type. See https://developers.google.com/places/web-service/place-id to learn
	// more about Place ID.
	PlaceId string `json:"placeId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessProfileLocations")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessProfileLocations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UnifiedLocationAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UnifiedLocationAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset: A Unified Page Feed
// asset.
type GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset struct {
	// Labels: Labels used to group the page urls.
	Labels []string `json:"labels,omitempty"`
	// PageUrl: The webpage that advertisers want to target.
	PageUrl string `json:"pageUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset: A unified sitelink
// asset.
type GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V0Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// Description1: First line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description2 must also be
	// set.
	Description1 string `json:"description1,omitempty"`
	// Description2: Second line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description1 must also be
	// set.
	Description2 string `json:"description2,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// LinkText: URL display text for the sitelink. The length of this string
	// should be between 1 and 25, inclusive.
	LinkText string `json:"linkText,omitempty"`
	// MobilePreferred: Whether the preference is for the sitelink asset to be
	// displayed on mobile devices. Applies to Microsoft Ads.
	MobilePreferred bool `json:"mobilePreferred,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// TrackingId: ID used for tracking clicks for the sitelink asset. This is a
	// Yahoo! Japan only field.
	TrackingId int64 `json:"trackingId,omitempty,string"`
	// UseSearcherTimeZone: Whether to show the sitelink asset in search user's
	// time zone. Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__UserListInfo: A User List criterion.
// Represents a user list that is defined by the advertiser to be targeted.
type GoogleAdsSearchads360V0Common__UserListInfo struct {
	// UserList: The User List resource name.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__UserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__UserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__Value: A generic data container.
type GoogleAdsSearchads360V0Common__Value struct {
	// BooleanValue: A boolean.
	BooleanValue bool `json:"booleanValue,omitempty"`
	// DoubleValue: A double.
	DoubleValue float64 `json:"doubleValue,omitempty"`
	// FloatValue: A float.
	FloatValue float64 `json:"floatValue,omitempty"`
	// Int64Value: An int64.
	Int64Value int64 `json:"int64Value,omitempty,string"`
	// StringValue: A string.
	StringValue string `json:"stringValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BooleanValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BooleanValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__Value) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__Value
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__Value) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__Value
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		FloatValue  gensupport.JSONFloat64 `json:"floatValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	s.FloatValue = float64(s1.FloatValue)
	return nil
}

// GoogleAdsSearchads360V0Common__WebpageConditionInfo: Logical expression for
// targeting webpages of an advertiser's website.
type GoogleAdsSearchads360V0Common__WebpageConditionInfo struct {
	// Argument: Argument of webpage targeting condition.
	Argument string `json:"argument,omitempty"`
	// Operand: Operand of webpage targeting condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "URL" - Operand denoting a webpage URL targeting condition.
	//   "CATEGORY" - Operand denoting a webpage category targeting condition.
	//   "PAGE_TITLE" - Operand denoting a webpage title targeting condition.
	//   "PAGE_CONTENT" - Operand denoting a webpage content targeting condition.
	//   "CUSTOM_LABEL" - Operand denoting a webpage custom label targeting
	// condition.
	Operand string `json:"operand,omitempty"`
	// Operator: Operator of webpage targeting condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EQUALS" - The argument web condition is equal to the compared web
	// condition.
	//   "CONTAINS" - The argument web condition is part of the compared web
	// condition.
	Operator string `json:"operator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Argument") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Argument") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__WebpageConditionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__WebpageConditionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Common__WebpageInfo: Represents a criterion for
// targeting webpages of an advertiser's website.
type GoogleAdsSearchads360V0Common__WebpageInfo struct {
	// Conditions: Conditions, or logical expressions, for webpage targeting. The
	// list of webpage targeting conditions are and-ed together when evaluated for
	// targeting. An empty list of conditions indicates all pages of the campaign's
	// website are targeted. This field is required for CREATE operations and is
	// prohibited on UPDATE operations.
	Conditions []*GoogleAdsSearchads360V0Common__WebpageConditionInfo `json:"conditions,omitempty"`
	// CoveragePercentage: Website criteria coverage percentage. This is the
	// computed percentage of website coverage based on the website target,
	// negative website target and negative keywords in the ad group and campaign.
	// For instance, when coverage returns as 1, it indicates it has 100% coverage.
	// This field is read-only.
	CoveragePercentage float64 `json:"coveragePercentage,omitempty"`
	// CriterionName: The name of the criterion that is defined by this parameter.
	// The name value will be used for identifying, sorting and filtering criteria
	// with this type of parameters. This field is required for CREATE operations
	// and is prohibited on UPDATE operations.
	CriterionName string `json:"criterionName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Conditions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conditions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__WebpageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__WebpageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__WebpageInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__WebpageInfo
	var s1 struct {
		CoveragePercentage gensupport.JSONFloat64 `json:"coveragePercentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.CoveragePercentage = float64(s1.CoveragePercentage)
	return nil
}

// GoogleAdsSearchads360V0Common__YoutubeVideoAsset: A YouTube asset.
type GoogleAdsSearchads360V0Common__YoutubeVideoAsset struct {
	// YoutubeVideoId: YouTube video id. This is the 11 character string value used
	// in the YouTube video URL.
	YoutubeVideoId string `json:"youtubeVideoId,omitempty"`
	// YoutubeVideoTitle: YouTube video title.
	YoutubeVideoTitle string `json:"youtubeVideoTitle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "YoutubeVideoId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "YoutubeVideoId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__YoutubeVideoAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__YoutubeVideoAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement: A part of a
// field path.
type GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement struct {
	// FieldName: The name of a field or a oneof
	FieldName string `json:"fieldName,omitempty"`
	// Index: If field_name is a repeated field, this is the element that failed
	Index int64 `json:"index,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorCode: The error reason represented by
// type and enum.
type GoogleAdsSearchads360V0Errors__ErrorCode struct {
	// AuthenticationError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AUTHENTICATION_ERROR" - Authentication of the request failed.
	//   "CLIENT_CUSTOMER_ID_INVALID" - Client customer ID is not a number.
	//   "CUSTOMER_NOT_FOUND" - No customer found for the provided customer ID.
	//   "GOOGLE_ACCOUNT_DELETED" - Client's Google account is deleted.
	//   "GOOGLE_ACCOUNT_COOKIE_INVALID" - Account login token in the cookie is
	// invalid.
	//   "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED" - A problem occurred during Google
	// account authentication.
	//   "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH" - The user in the Google
	// account login token does not match the user ID in the cookie.
	//   "LOGIN_COOKIE_REQUIRED" - Login cookie is required for authentication.
	//   "NOT_ADS_USER" - The Google account that generated the OAuth access token
	// is not associated with a Search Ads 360 account. Create a new account, or
	// add the Google account to an existing Search Ads 360 account.
	//   "OAUTH_TOKEN_INVALID" - OAuth token in the header is not valid.
	//   "OAUTH_TOKEN_EXPIRED" - OAuth token in the header has expired.
	//   "OAUTH_TOKEN_DISABLED" - OAuth token in the header has been disabled.
	//   "OAUTH_TOKEN_REVOKED" - OAuth token in the header has been revoked.
	//   "OAUTH_TOKEN_HEADER_INVALID" - OAuth token HTTP header is malformed.
	//   "LOGIN_COOKIE_INVALID" - Login cookie is not valid.
	//   "USER_ID_INVALID" - User ID in the header is not a valid ID.
	//   "TWO_STEP_VERIFICATION_NOT_ENROLLED" - An account administrator changed
	// this account's authentication settings. To access this account, enable
	// 2-Step Verification in your Google account at
	// https://www.google.com/landing/2step.
	//   "ADVANCED_PROTECTION_NOT_ENROLLED" - An account administrator changed this
	// account's authentication settings. To access this account, enable Advanced
	// Protection in your Google account at
	// https://landing.google.com/advancedprotection.
	AuthenticationError string `json:"authenticationError,omitempty"`
	// AuthorizationError: An error encountered when trying to authorize a user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "USER_PERMISSION_DENIED" - User doesn't have permission to access
	// customer. Note: If you're accessing a client customer, the manager's
	// customer ID must be set in the `login-customer-id` header. Learn more at
	// https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header
	//   "PROJECT_DISABLED" - The Google Cloud project sent in the request does not
	// have permission to access the api.
	//   "AUTHORIZATION_ERROR" - Authorization of the client failed.
	//   "ACTION_NOT_PERMITTED" - The user does not have permission to perform this
	// action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.
	//   "INCOMPLETE_SIGNUP" - Signup not complete.
	//   "CUSTOMER_NOT_ENABLED" - The customer account can't be accessed because it
	// is not yet enabled or has been deactivated.
	//   "MISSING_TOS" - The developer must sign the terms of service. They can be
	// found here: https://developers.google.com/terms
	//   "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION" - The login
	// customer specified does not have access to the account specified, so the
	// request is invalid.
	//   "SERVICE_ACCESS_DENIED" - The developer specified does not have access to
	// the service.
	//   "ACCESS_DENIED_FOR_ACCOUNT_TYPE" - The customer (or login customer) isn't
	// allowed in Search Ads 360 API. It belongs to another ads system.
	//   "METRIC_ACCESS_DENIED" - The developer does not have access to the metrics
	// queried.
	AuthorizationError string `json:"authorizationError,omitempty"`
	// ConversionCustomVariableError: The reasons for the conversion custom
	// variable error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - A conversion custom variable with the specified name
	// already exists.
	//   "DUPLICATE_TAG" - A conversion custom variable with the specified tag
	// already exists.
	//   "RESERVED_TAG" - A conversion custom variable with the specified tag is
	// reserved for other uses.
	//   "NOT_FOUND" - The conversion custom variable is not found.
	//   "NOT_AVAILABLE" - The conversion custom variable is not available for use.
	//   "INCOMPATIBLE_TYPE" - The conversion custom variable requested is
	// incompatible with the current request.
	//   "INVALID_METRIC" - The conversion custom variable requested is not of type
	// METRIC.
	//   "EXCEEDS_CARDINALITY_LIMIT" - The conversion custom variable's cardinality
	// exceeds the segmentation limit.
	//   "INVALID_DIMENSION" - The conversion custom variable requested is not of
	// type DIMENSION.
	//   "INCOMPATIBLE_WITH_SELECTED_RESOURCE" - The conversion custom variable
	// requested is incompatible with the selected resource.
	ConversionCustomVariableError string `json:"conversionCustomVariableError,omitempty"`
	// CustomColumnError: The reasons for the custom column error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOM_COLUMN_NOT_FOUND" - The custom column has not been found.
	//   "CUSTOM_COLUMN_NOT_AVAILABLE" - The custom column is not available.
	CustomColumnError string `json:"customColumnError,omitempty"`
	// DateError: The reasons for the date error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not correspond to a
	// valid date.
	//   "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not correspond
	// to a valid date time.
	//   "INVALID_STRING_DATE" - The string date's format should be yyyy-mm-dd.
	//   "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.ssssss.
	//   "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.
	//   "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date time's
	// format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
	//   "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum.
	//   "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum.
	//   "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range bounds are
	// not in order.
	//   "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in range are
	// null.
	DateError string `json:"dateError,omitempty"`
	// DateRangeError: The reasons for the date range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_DATE" - Invalid date.
	//   "START_DATE_AFTER_END_DATE" - The start date was after the end date.
	//   "CANNOT_SET_DATE_TO_PAST" - Cannot set date to past time
	//   "AFTER_MAXIMUM_ALLOWABLE_DATE" - A date was used that is past the system
	// "last" date.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a resource that has started.
	DateRangeError string `json:"dateRangeError,omitempty"`
	// DistinctError: The reasons for the distinct error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ELEMENT" - Duplicate element.
	//   "DUPLICATE_TYPE" - Duplicate type.
	DistinctError string `json:"distinctError,omitempty"`
	// HeaderError: The reasons for the header error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_SELECTED_CUSTOMER_ID" - The user selected customer ID could
	// not be validated.
	//   "INVALID_LOGIN_CUSTOMER_ID" - The login customer ID could not be
	// validated.
	HeaderError string `json:"headerError,omitempty"`
	// InternalError: An unexpected server-side error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INTERNAL_ERROR" - API encountered unexpected internal error.
	//   "ERROR_CODE_NOT_PUBLISHED" - The intended error code doesn't exist in
	// specified API version. It will be released in a future API version.
	//   "TRANSIENT_ERROR" - API encountered an unexpected transient error. The
	// user should retry their request in these cases.
	//   "DEADLINE_EXCEEDED" - The request took longer than a deadline.
	InternalError string `json:"internalError,omitempty"`
	// InvalidParameterError: The reasons for invalid parameter errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CURRENCY_CODE" - The specified currency code is invalid.
	InvalidParameterError string `json:"invalidParameterError,omitempty"`
	// QueryError: An error with the query
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "QUERY_ERROR" - Returned if all other query error reasons are not
	// applicable.
	//   "BAD_ENUM_CONSTANT" - A condition used in the query references an invalid
	// enum constant.
	//   "BAD_ESCAPE_SEQUENCE" - Query contains an invalid escape sequence.
	//   "BAD_FIELD_NAME" - Field name is invalid.
	//   "BAD_LIMIT_VALUE" - Limit value is invalid (for example, not a number)
	//   "BAD_NUMBER" - Encountered number can not be parsed.
	//   "BAD_OPERATOR" - Invalid operator encountered.
	//   "BAD_PARAMETER_NAME" - Parameter unknown or not supported.
	//   "BAD_PARAMETER_VALUE" - Parameter have invalid value.
	//   "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE" - Invalid resource type was specified
	// in the FROM clause.
	//   "BAD_SYMBOL" - Non-ASCII symbol encountered outside of strings.
	//   "BAD_VALUE" - Value is invalid.
	//   "DATE_RANGE_TOO_WIDE" - Date filters fail to restrict date to a range
	// smaller than 31 days. Applicable if the query is segmented by date.
	//   "DATE_RANGE_TOO_NARROW" - Filters on date/week/month/quarter have a start
	// date after end date.
	//   "EXPECTED_AND" - Expected AND between values with BETWEEN operator.
	//   "EXPECTED_BY" - Expecting ORDER BY to have BY.
	//   "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE" - There was no dimension field
	// selected.
	//   "EXPECTED_FILTERS_ON_DATE_RANGE" - Missing filters on date related fields.
	//   "EXPECTED_FROM" - Missing FROM clause.
	//   "EXPECTED_LIST" - The operator used in the conditions requires the value
	// to be a list.
	//   "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE" - Fields used in WHERE or
	// ORDER BY clauses are missing from the SELECT clause.
	//   "EXPECTED_SELECT" - SELECT is missing at the beginning of query.
	//   "EXPECTED_SINGLE_VALUE" - A list was passed as a value to a condition
	// whose operator expects a single value.
	//   "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR" - Missing one or both values with
	// BETWEEN operator.
	//   "INVALID_DATE_FORMAT" - Invalid date format. Expected 'YYYY-MM-DD'.
	//   "MISALIGNED_DATE_FOR_FILTER" - Misaligned date value for the filter. The
	// date should be the start of a week/month/quarter if the filtered field is
	// segments.week/segments.month/segments.quarter.
	//   "INVALID_STRING_VALUE" - Value passed was not a string when it should have
	// been. For example, it was a number or unquoted literal.
	//   "INVALID_VALUE_WITH_BETWEEN_OPERATOR" - A String value passed to the
	// BETWEEN operator does not parse as a date.
	//   "INVALID_VALUE_WITH_DURING_OPERATOR" - The value passed to the DURING
	// operator is not a Date range literal
	//   "INVALID_VALUE_WITH_LIKE_OPERATOR" - A value was passed to the LIKE
	// operator.
	//   "OPERATOR_FIELD_MISMATCH" - An operator was provided that is inapplicable
	// to the field being filtered.
	//   "PROHIBITED_EMPTY_LIST_IN_CONDITION" - A Condition was found with an empty
	// list.
	//   "PROHIBITED_ENUM_CONSTANT" - A condition used in the query references an
	// unsupported enum constant.
	//   "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE" - Fields that are not
	// allowed to be selected together were included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE" - A field that is not orderable was
	// included in the ORDER BY clause.
	//   "PROHIBITED_FIELD_IN_SELECT_CLAUSE" - A field that is not selectable was
	// included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_WHERE_CLAUSE" - A field that is not filterable was
	// included in the WHERE clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE" - Resource type specified in the
	// FROM clause is not supported by this service.
	//   "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE" - A field that comes from an
	// incompatible resource was included in the SELECT clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE" - A field that comes from an
	// incompatible resource was included in the WHERE clause.
	//   "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A metric incompatible with
	// the main resource or other selected segmenting resources was included in the
	// SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE" - A segment incompatible
	// with the main resource or other selected segmenting resources was included
	// in the SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A segment in
	// the SELECT clause is incompatible with a metric in the SELECT or WHERE
	// clause.
	//   "LIMIT_VALUE_TOO_LOW" - The value passed to the limit clause is too low.
	//   "PROHIBITED_NEWLINE_IN_STRING" - Query has a string containing a newline
	// character.
	//   "PROHIBITED_VALUE_COMBINATION_IN_LIST" - List contains values of different
	// types.
	//   "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR" - The values passed
	// to the BETWEEN operator are not of the same type.
	//   "STRING_NOT_TERMINATED" - Query contains unterminated string.
	//   "TOO_MANY_SEGMENTS" - Too many segments are specified in SELECT clause.
	//   "UNEXPECTED_END_OF_QUERY" - Query is incomplete and cannot be parsed.
	//   "UNEXPECTED_FROM_CLAUSE" - FROM clause cannot be specified in this query.
	//   "UNRECOGNIZED_FIELD" - Query contains one or more unrecognized fields.
	//   "UNEXPECTED_INPUT" - Query has an unexpected extra part.
	//   "REQUESTED_METRICS_FOR_MANAGER" - Metrics cannot be requested for a
	// manager account. To retrieve metrics, issue separate requests against each
	// client account under the manager account.
	//   "FILTER_HAS_TOO_MANY_VALUES" - The number of values (right-hand-side
	// operands) in a filter exceeds the limit.
	//   "REQUIRED_SEGMENT_FIELD_MISSING" - Required segment field is missing.
	QueryError string `json:"queryError,omitempty"`
	// QuotaError: An error with the amount of quota remaining.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_EXHAUSTED" - Too many requests.
	//   "RESOURCE_TEMPORARILY_EXHAUSTED" - Too many requests in a short amount of
	// time.
	QuotaError string `json:"quotaError,omitempty"`
	// RequestError: An error caused by the request
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NAME_MISSING" - Resource name is required for this request.
	//   "RESOURCE_NAME_MALFORMED" - Resource name provided is malformed.
	//   "BAD_RESOURCE_ID" - Resource name provided is malformed.
	//   "INVALID_PRODUCT_NAME" - Product name is invalid.
	//   "INVALID_CUSTOMER_ID" - Customer ID is invalid.
	//   "OPERATION_REQUIRED" - Mutate operation should have either create, update,
	// or remove specified.
	//   "RESOURCE_NOT_FOUND" - Requested resource not found.
	//   "INVALID_PAGE_TOKEN" - Next page token specified in user request is
	// invalid.
	//   "EXPIRED_PAGE_TOKEN" - Next page token specified in user request has
	// expired.
	//   "INVALID_PAGE_SIZE" - Page size specified in user request is invalid.
	//   "REQUIRED_FIELD_MISSING" - Required field is missing.
	//   "IMMUTABLE_FIELD" - The field cannot be modified because it's immutable.
	// It's also possible that the field can be modified using 'create' operation
	// but not 'update'.
	//   "TOO_MANY_MUTATE_OPERATIONS" - Received too many entries in request.
	//   "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT" - Request cannot be executed by a
	// manager account.
	//   "CANNOT_MODIFY_FOREIGN_FIELD" - Mutate request was attempting to modify a
	// readonly field. For instance, Budget fields can be requested for Ad Group,
	// but are read-only for adGroups:mutate.
	//   "INVALID_ENUM_VALUE" - Enum value is not permitted.
	//   "LOGIN_CUSTOMER_ID_PARAMETER_MISSING" - The login-customer-id parameter is
	// required for this request.
	//   "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED" - Either
	// login-customer-id or linked-customer-id parameter is required for this
	// request.
	//   "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN" - page_token is set in the validate
	// only request
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS" -
	// return_summary_row cannot be enabled if request did not select any metrics
	// field.
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS" -
	// return_summary_row should not be enabled for validate only requests.
	//   "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE" - return_summary_row parameter
	// value should be the same between requests with page_token field set and
	// their original request.
	//   "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED" - The total results count
	// cannot be returned if it was not requested in the original request.
	//   "RPC_DEADLINE_TOO_SHORT" - Deadline specified by the client was too short.
	//   "PRODUCT_NOT_SUPPORTED" - The product associated with the request is not
	// supported for the current request.
	RequestError string `json:"requestError,omitempty"`
	// SizeLimitError: The reasons for the size limit error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUEST_SIZE_LIMIT_EXCEEDED" - The number of entries in the request
	// exceeds the system limit, or the contents of the operations exceed
	// transaction limits due to their size or complexity. Try reducing the number
	// of entries per request.
	//   "RESPONSE_SIZE_LIMIT_EXCEEDED" - The number of entries in the response
	// exceeds the system limit.
	SizeLimitError string `json:"sizeLimitError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuthenticationError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthenticationError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorCode) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorDetails: Additional error details.
type GoogleAdsSearchads360V0Errors__ErrorDetails struct {
	// QuotaErrorDetails: Details on the quota error, including the scope (account
	// or developer), the rate bucket name and the retry delay.
	QuotaErrorDetails *GoogleAdsSearchads360V0Errors__QuotaErrorDetails `json:"quotaErrorDetails,omitempty"`
	// UnpublishedErrorCode: The error code that should have been returned, but
	// wasn't. This is used when the error code is not published in the client
	// specified version.
	UnpublishedErrorCode string `json:"unpublishedErrorCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuotaErrorDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuotaErrorDetails") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorLocation: Describes the part of the
// request proto that caused the error.
type GoogleAdsSearchads360V0Errors__ErrorLocation struct {
	// FieldPathElements: A field path that indicates which field was invalid in
	// the request.
	FieldPathElements []*GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement `json:"fieldPathElements,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPathElements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPathElements") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__QuotaErrorDetails: Additional quota error
// details when there is QuotaError.
type GoogleAdsSearchads360V0Errors__QuotaErrorDetails struct {
	// RateName: The high level description of the quota bucket. Examples are "Get
	// requests for standard access" or "Requests per account".
	RateName string `json:"rateName,omitempty"`
	// RateScope: The rate scope of the quota limit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified enum
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCOUNT" - Per customer account quota
	//   "DEVELOPER" - Per project quota
	RateScope string `json:"rateScope,omitempty"`
	// RetryDelay: Backoff period that customers should wait before sending next
	// request.
	RetryDelay string `json:"retryDelay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RateName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RateName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__QuotaErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__QuotaErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__SearchAds360Error: Search Ads 360-specific
// error.
type GoogleAdsSearchads360V0Errors__SearchAds360Error struct {
	// Details: Additional error details, which are returned by certain error
	// codes. Most error codes do not include details.
	Details *GoogleAdsSearchads360V0Errors__ErrorDetails `json:"details,omitempty"`
	// ErrorCode: An enum value that indicates which error occurred.
	ErrorCode *GoogleAdsSearchads360V0Errors__ErrorCode `json:"errorCode,omitempty"`
	// Location: Describes the part of the request proto that caused the error.
	Location *GoogleAdsSearchads360V0Errors__ErrorLocation `json:"location,omitempty"`
	// Message: A human-readable description of the error.
	Message string `json:"message,omitempty"`
	// Trigger: The value that triggered the error.
	Trigger *GoogleAdsSearchads360V0Common__Value `json:"trigger,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__SearchAds360Error) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Error
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__SearchAds360Failure: Describes how a Search
// Ads 360 API call failed. It's returned inside google.rpc.Status.details when
// a call fails.
type GoogleAdsSearchads360V0Errors__SearchAds360Failure struct {
	// Errors: The list of errors that occurred.
	Errors []*GoogleAdsSearchads360V0Errors__SearchAds360Error `json:"errors,omitempty"`
	// RequestId: The unique ID of the request that is used for debugging purposes.
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__SearchAds360Failure) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Failure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionVa
// lue: An automated bidding strategy to help get the most conversion value for
// your campaigns while spending your budget.
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue struct {
	// TargetRoas: Output only. The target return on ad spend (ROAS) option. If
	// set, the bid strategy will maximize revenue while averaging the target
	// return on ad spend. If the target ROAS is high, the bid strategy may not be
	// able to spend the full budget. If the target ROAS is not set, the bid
	// strategy will aim to achieve the highest possible ROAS for the budget.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRoas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRoas") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversions:
//
//	An automated bidding strategy to help get the most conversions for your
//
// campaigns while spending your budget.
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversions struct {
	// TargetCpa: Output only. The target cost per acquisition (CPA) option. This
	// is the average amount that you would like to spend per acquisition.
	TargetCpa int64 `json:"targetCpa,omitempty,string"`
	// TargetCpaMicros: Output only. The target cost per acquisition (CPA) option.
	// This is the average amount that you would like to spend per acquisition.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TargetCpa") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpa") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetCpa: An
// automated bid strategy that sets bids to help get as many conversions as
// possible at the target cost-per-acquisition (CPA) you set.
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetCpa struct {
	// TargetCpaMicros: Output only. Average CPA target. This target should be
	// greater than or equal to minimum billable unit based on the currency for the
	// account.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TargetCpaMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpaMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetCpa) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetCpa
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetImpressionShar
// e: An automated bidding strategy that sets bids so that a certain percentage
// of search ads are shown at the top of the first page (or other targeted
// location).
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetImpressionShare struct {
	// CpcBidCeilingMicros: Output only. The highest CPC bid the automated bidding
	// system is permitted to specify. This is a required field entered by the
	// advertiser that sets the ceiling and specified in local micros.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// Location: Output only. The targeted location on the search results page.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANYWHERE_ON_PAGE" - Any location on the web page.
	//   "TOP_OF_PAGE" - Top box of ads.
	//   "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads.
	Location string `json:"location,omitempty"`
	// LocationFractionMicros: The chosen fraction of ads to be shown in the
	// targeted location in micros. For example, 1% equals 10,000.
	LocationFractionMicros int64 `json:"locationFractionMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetImpressionShare) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetImpressionShare
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas: An
// automated bidding strategy that helps you maximize revenue while averaging a
// specific target return on ad spend (ROAS).
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas struct {
	// TargetRoas: Output only. The chosen revenue (based on conversion data) per
	// unit of spend.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRoas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRoas") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetSpend: An
// automated bid strategy that sets your bids to help get as many clicks as
// possible within your budget.
type GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetSpend struct {
	// CpcBidCeilingMicros: Output only. Maximum bid limit that can be set by the
	// bid strategy. The limit applies to all keywords managed by the strategy.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// TargetSpendMicros: Output only. The spend target under which to maximize
	// clicks. A TargetSpend bidder will attempt to spend the smaller of this value
	// or the natural throttling spend amount. If not specified, the budget is used
	// as the spend target. This field is deprecated and should no longer be used.
	// See
	// https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
	// for details.
	TargetSpendMicros int64 `json:"targetSpendMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetSpend) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetSpend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAdGroupCriterionPositionEstimates: Estimates
// for criterion bids at various positions.
type GoogleAdsSearchads360V0ResourcesAdGroupCriterionPositionEstimates struct {
	// TopOfPageCpcMicros: Output only. The estimate of the CPC bid required for ad
	// to be displayed at the top of the first page of search results.
	TopOfPageCpcMicros int64 `json:"topOfPageCpcMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TopOfPageCpcMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TopOfPageCpcMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAdGroupCriterionPositionEstimates) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAdGroupCriterionPositionEstimates
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo: A container for
// ad group criterion quality information.
type GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo struct {
	// QualityScore: Output only. The quality score. This field may not be
	// populated if Google does not have enough information to determine a value.
	QualityScore int64 `json:"qualityScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QualityScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QualityScore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting: The setting
// for controlling Dynamic Search Ads (DSA).
type GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting struct {
	// DomainName: Required. The Internet domain name that this setting represents,
	// for example, "google.com" or "www.google.com".
	DomainName string `json:"domainName,omitempty"`
	// LanguageCode: Required. The language code specifying the language of the
	// domain, for example, "en".
	LanguageCode string `json:"languageCode,omitempty"`
	// UseSuppliedUrlsOnly: Whether the campaign uses advertiser supplied URLs
	// exclusively.
	UseSuppliedUrlsOnly bool `json:"useSuppliedUrlsOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DomainName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DomainName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting: Represents a
// collection of settings related to ads geotargeting.
type GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting struct {
	// NegativeGeoTargetType: The setting used for negative geotargeting in this
	// particular campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "PRESENCE_OR_INTEREST" - Specifies that a user is excluded from seeing the
	// ad if they are in, or show interest in, advertiser's excluded locations.
	//   "PRESENCE" - Specifies that a user is excluded from seeing the ad if they
	// are in advertiser's excluded locations.
	NegativeGeoTargetType string `json:"negativeGeoTargetType,omitempty"`
	// PositiveGeoTargetType: The setting used for positive geotargeting in this
	// particular campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "PRESENCE_OR_INTEREST" - Specifies that an ad is triggered if the user is
	// in, or shows interest in, advertiser's targeted locations.
	//   "SEARCH_INTEREST" - Specifies that an ad is triggered if the user searches
	// for advertiser's targeted locations. This can only be used with Search and
	// standard Shopping campaigns.
	//   "PRESENCE" - Specifies that an ad is triggered if the user is in or
	// regularly in advertiser's targeted locations.
	PositiveGeoTargetType string `json:"positiveGeoTargetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NegativeGeoTargetType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NegativeGeoTargetType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings: The network
// settings for the campaign.
type GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings struct {
	// TargetContentNetwork: Whether ads will be served on specified placements in
	// the Google Display Network. Placements are specified using the Placement
	// criterion.
	TargetContentNetwork bool `json:"targetContentNetwork,omitempty"`
	// TargetGoogleSearch: Whether ads will be served with google.com search
	// results.
	TargetGoogleSearch bool `json:"targetGoogleSearch,omitempty"`
	// TargetPartnerSearchNetwork: Whether ads will be served on the partner
	// network. This is available only to some select partner accounts. Unless you
	// have been instructed to use this field, it likely does not apply to your
	// account. This does not control whether ads will be served on Google Search
	// Partners Network; use `target_search_network` for that instead.
	TargetPartnerSearchNetwork bool `json:"targetPartnerSearchNetwork,omitempty"`
	// TargetSearchNetwork: Whether ads will be served on sites in the Google
	// Search Partners Network (requires `target_google_search` to also be `true`).
	TargetSearchNetwork bool `json:"targetSearchNetwork,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetContentNetwork") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetContentNetwork") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting:
// Optimization goal setting for this campaign, which includes a set of
// optimization goal types.
type GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting struct {
	// OptimizationGoalTypes: The list of optimization goal types.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "CALL_CLICKS" - Optimize for call clicks. Call click conversions are times
	// people selected 'Call' to contact a store after viewing an ad.
	//   "DRIVING_DIRECTIONS" - Optimize for driving directions. Driving directions
	// conversions are times people selected 'Get directions' to navigate to a
	// store after viewing an ad.
	//   "APP_PRE_REGISTRATION" - Optimize for pre-registration. Pre-registration
	// conversions are the number of pre-registration signups to receive a
	// notification when the app is released.
	OptimizationGoalTypes []string `json:"optimizationGoalTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OptimizationGoalTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OptimizationGoalTypes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization: Selective
// optimization setting for this campaign, which includes a set of conversion
// actions to optimize this campaign towards. This feature only applies to app
// campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN
// or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.
type GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization struct {
	// ConversionActions: The selected set of resource names for conversion actions
	// for optimizing this campaign.
	ConversionActions []string `json:"conversionActions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionActions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting: The setting for
// Shopping campaigns. Defines the universe of products that can be advertised
// by the campaign, and how this campaign interacts with other Shopping
// campaigns.
type GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting struct {
	// CampaignPriority: Priority of the campaign. Campaigns with numerically
	// higher priorities take precedence over those with lower priorities. This
	// field is required for Shopping campaigns, with values between 0 and 2,
	// inclusive. This field is optional for Smart Shopping campaigns, but must be
	// equal to 3 if set.
	CampaignPriority int64 `json:"campaignPriority,omitempty"`
	// EnableLocal: Whether to include local products.
	EnableLocal bool `json:"enableLocal,omitempty"`
	// FeedLabel: Feed label of products to include in the campaign. Valid feed
	// labels may contain a maximum of 20 characters including uppercase letters,
	// numbers, hyphens, and underscores. If you previously used the deprecated
	// `sales_country` in the two-letter country code (`XX`) format, the
	// `feed_label` field should be used instead. For more information see the feed
	// label (//support.google.com/merchants/answer/12453549) support article.
	FeedLabel string `json:"feedLabel,omitempty"`
	// MerchantId: Immutable. ID of the Merchant Center account. This field is
	// required for create operations. This field is immutable for Shopping
	// campaigns.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// SalesCountry: Sales country of products to include in the campaign.
	SalesCountry string `json:"salesCountry,omitempty"`
	// UseVehicleInventory: Immutable. Whether to target Vehicle Listing inventory.
	UseVehicleInventory bool `json:"useVehicleInventory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignPriority") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignPriority") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting: Campaign-level
// settings for tracking information.
type GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting struct {
	// TrackingUrl: Output only. The url used for dynamic tracking.
	TrackingUrl string `json:"trackingUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TrackingUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TrackingUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings:
// Settings related to this conversion action's attribution model.
type GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings struct {
	// AttributionModel: The attribution model type of this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXTERNAL" - Uses external attribution.
	//   "GOOGLE_ADS_LAST_CLICK" - Attributes all credit for a conversion to its
	// last click.
	//   "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK" - Attributes all credit for a
	// conversion to its first click using Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_LINEAR" - Attributes credit for a conversion
	// equally across all of its clicks using Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY" - Attributes exponentially more
	// credit for a conversion to its more recent clicks using Google Search
	// attribution (half-life is 1 week).
	//   "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED" - Attributes 40% of the credit
	// for a conversion to its first and last clicks. Remaining 20% is evenly
	// distributed across all other clicks. This uses Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" - Flexible model that uses machine
	// learning to determine the appropriate distribution of credit among clicks
	// using Google Search attribution.
	AttributionModel string `json:"attributionModel,omitempty"`
	// DataDrivenModelStatus: Output only. The status of the data-driven
	// attribution model for the conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AVAILABLE" - The data driven model is available.
	//   "STALE" - The data driven model is stale. It hasn't been updated for at
	// least 7 days. It is still being used, but will become expired if it does not
	// get updated for 30 days.
	//   "EXPIRED" - The data driven model expired. It hasn't been updated for at
	// least 30 days and cannot be used. Most commonly this is because there hasn't
	// been the required number of events in a recent 30-day period.
	//   "NEVER_GENERATED" - The data driven model has never been generated. Most
	// commonly this is because there has never been the required number of events
	// in any 30-day period.
	DataDrivenModelStatus string `json:"dataDrivenModelStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributionModel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributionModel") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings: Settings
// related to a Floodlight conversion action.
type GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings struct {
	// ActivityGroupTag: Output only. String used to identify a Floodlight activity
	// group when reporting conversions.
	ActivityGroupTag string `json:"activityGroupTag,omitempty"`
	// ActivityId: Output only. ID of the Floodlight activity in DoubleClick
	// Campaign Manager (DCM).
	ActivityId int64 `json:"activityId,omitempty,string"`
	// ActivityTag: Output only. String used to identify a Floodlight activity when
	// reporting conversions.
	ActivityTag string `json:"activityTag,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActivityGroupTag") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActivityGroupTag") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesConversionActionValueSettings: Settings
// related to the value for conversion events associated with this conversion
// action.
type GoogleAdsSearchads360V0ResourcesConversionActionValueSettings struct {
	// AlwaysUseDefaultValue: Controls whether the default value and default
	// currency code are used in place of the value and currency code specified in
	// conversion events for this conversion action.
	AlwaysUseDefaultValue bool `json:"alwaysUseDefaultValue,omitempty"`
	// DefaultCurrencyCode: The currency code to use when conversion events for
	// this conversion action are sent with an invalid or missing currency code, or
	// when this conversion action is configured to always use the default value.
	DefaultCurrencyCode string `json:"defaultCurrencyCode,omitempty"`
	// DefaultValue: The value to use when conversion events for this conversion
	// action are sent with an invalid, disallowed or missing value, or when this
	// conversion action is configured to always use the default value.
	DefaultValue float64 `json:"defaultValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlwaysUseDefaultValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlwaysUseDefaultValue") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesConversionActionValueSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionValueSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0ResourcesConversionActionValueSettings) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0ResourcesConversionActionValueSettings
	var s1 struct {
		DefaultValue gensupport.JSONFloat64 `json:"defaultValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DefaultValue = float64(s1.DefaultValue)
	return nil
}

// GoogleAdsSearchads360V0ResourcesConversionCustomVariableFloodlightConversionC
// ustomVariableInfo: Information for Search Ads 360 Floodlight Conversion
// Custom Variables.
type GoogleAdsSearchads360V0ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo struct {
	// FloodlightVariableDataType: Output only. Floodlight variable data type
	// defined in Search Ads 360.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NUMBER" - Represents a floodlight variable of "Number" type. This
	// variable may be assigned to floodlight variables of DIMENSION or METRIC
	// types.
	//   "STRING" - Represents a floodlight variable of "String" type. This
	// variable may be assigned to floodlight variables of DIMENSION type.
	FloodlightVariableDataType string `json:"floodlightVariableDataType,omitempty"`
	// FloodlightVariableType: Output only. Floodlight variable type defined in
	// Search Ads 360.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DIMENSION" - Dimension floodlight variable type.
	//   "METRIC" - Metric floodlight variable type.
	//   "UNSET" - Floodlight variable type is unset.
	FloodlightVariableType string `json:"floodlightVariableType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FloodlightVariableDataType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FloodlightVariableDataType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBiddingCate
// gory: One element of a bidding category at a certain level. Top-level
// categories are at level 1, their children at level 2, and so on. We
// currently support up to 5 levels. The user must specify a dimension type
// that indicates the level of the category. All cases of the same subdivision
// must have the same dimension type (category level).
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBiddingCategory struct {
	// Id: ID of the product bidding category. This ID is equivalent to the
	// google_product_category ID as described in this article:
	// https://support.google.com/merchants/answer/6324436
	Id int64 `json:"id,omitempty,string"`
	// Level: Indicates the level of the category in the taxonomy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBiddingCategory) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBiddingCategory
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBrand:
// Brand of the product.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBrand struct {
	// Value: String value of the product brand.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBrand) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBrand
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductChannel:
// Locality of a product offer.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductChannel struct {
	// Channel: Value of the locality.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	Channel string `json:"channel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Channel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductChannel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductChannel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCondition:
// Condition of a product offer.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCondition struct {
	// Condition: Value of the condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Condition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Condition") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCustomAttri
// bute: Custom attribute of a product offer.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCustomAttribute struct {
	// Index: Indicates the index of the custom attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INDEX0" - First listing group filter custom attribute.
	//   "INDEX1" - Second listing group filter custom attribute.
	//   "INDEX2" - Third listing group filter custom attribute.
	//   "INDEX3" - Fourth listing group filter custom attribute.
	//   "INDEX4" - Fifth listing group filter custom attribute.
	Index string `json:"index,omitempty"`
	// Value: String value of the product custom attribute.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Index") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Index") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCustomAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCustomAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductItemId:
// Item id of a product offer.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductItemId struct {
	// Value: Value of the id.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductItemId) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductItemId
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductType: Type
// of a product offer.
type GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductType struct {
	// Level: Level of the type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// Value: Value of the type.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Level") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Level") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy: Represents a
// view of BiddingStrategies owned by and shared with the customer. In contrast
// to BiddingStrategy, this resource includes strategies owned by managers of
// the customer and shared with this customer - in addition to strategies owned
// by this customer. This resource does not provide metrics and only exposes a
// limited subset of the BiddingStrategy attributes.
type GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy struct {
	// Id: Output only. The ID of the bidding strategy.
	Id int64 `json:"id,omitempty,string"`
	// MaximizeConversionValue: Output only. An automated bidding strategy to help
	// get the most conversion value for your campaigns while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: Output only. An automated bidding strategy to help get
	// the most conversions for your campaigns while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyMaximizeConversions `json:"maximizeConversions,omitempty"`
	// Name: Output only. The name of the bidding strategy.
	Name string `json:"name,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the bidding
	// strategy.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// OwnerDescriptiveName: Output only. descriptive_name of the Customer which
	// owns the bidding strategy.
	OwnerDescriptiveName string `json:"ownerDescriptiveName,omitempty"`
	// ResourceName: Output only. The resource name of the accessible bidding
	// strategy. AccessibleBiddingStrategy resource names have the form:
	// `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetCpa: Output only. A bidding strategy that sets bids to help get as
	// many conversions as possible at the target cost-per-acquisition (CPA) you
	// set.
	TargetCpa *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetCpa `json:"targetCpa,omitempty"`
	// TargetImpressionShare: Output only. A bidding strategy that automatically
	// optimizes towards a chosen percentage of impressions.
	TargetImpressionShare *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetRoas: Output only. A bidding strategy that helps you maximize revenue
	// while averaging a specific target Return On Ad Spend (ROAS).
	TargetRoas *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: Output only. A bid strategy that sets your bids to help get as
	// many clicks as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V0ResourcesAccessibleBiddingStrategyTargetSpend `json:"targetSpend,omitempty"`
	// Type: Output only. The type of the bidding strategy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Ad: An ad.
type GoogleAdsSearchads360V0Resources__Ad struct {
	// DisplayUrl: The URL that appears in the ad description for some ad formats.
	DisplayUrl string `json:"displayUrl,omitempty"`
	// ExpandedDynamicSearchAd: Immutable. Details pertaining to an expanded
	// dynamic search ad.
	ExpandedDynamicSearchAd *GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo `json:"expandedDynamicSearchAd,omitempty"`
	// ExpandedTextAd: Immutable. Details pertaining to an expanded text ad.
	ExpandedTextAd *GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo `json:"expandedTextAd,omitempty"`
	// FinalAppUrls: A list of final app URLs that will be used on mobile if the
	// user has the specific app installed.
	FinalAppUrls []*GoogleAdsSearchads360V0Common__FinalAppUrl `json:"finalAppUrls,omitempty"`
	// FinalMobileUrls: The list of possible final mobile URLs after all
	// cross-domain redirects for the ad.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: The suffix to use when constructing a final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: The list of possible final URLs after all cross-domain redirects
	// for the ad.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Id: Output only. The ID of the ad.
	Id int64 `json:"id,omitempty,string"`
	// Name: Immutable. The name of the ad. This is only used to be able to
	// identify the ad. It does not need to be unique and does not affect the
	// served ad.
	Name string `json:"name,omitempty"`
	// ProductAd: Immutable. Details pertaining to a product ad.
	ProductAd *GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo `json:"productAd,omitempty"`
	// ResourceName: Immutable. The resource name of the ad. Ad resource names have
	// the form: `customers/{customer_id}/ads/{ad_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ResponsiveSearchAd: Immutable. Details pertaining to a responsive search ad.
	ResponsiveSearchAd *GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo `json:"responsiveSearchAd,omitempty"`
	// TextAd: Immutable. Details pertaining to a text ad.
	TextAd *GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo `json:"textAd,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Output only. The type of ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "TEXT_AD" - The ad is a text ad.
	//   "EXPANDED_TEXT_AD" - The ad is an expanded text ad.
	//   "CALL_ONLY_AD" - The ad is a call only ad.
	//   "EXPANDED_DYNAMIC_SEARCH_AD" - The ad is an expanded dynamic search ad.
	//   "HOTEL_AD" - The ad is a hotel ad.
	//   "SHOPPING_SMART_AD" - The ad is a Smart Shopping ad.
	//   "SHOPPING_PRODUCT_AD" - The ad is a standard Shopping ad.
	//   "VIDEO_AD" - The ad is a video ad.
	//   "GMAIL_AD" - This ad is a Gmail ad.
	//   "IMAGE_AD" - This ad is an Image ad.
	//   "RESPONSIVE_SEARCH_AD" - The ad is a responsive search ad.
	//   "LEGACY_RESPONSIVE_DISPLAY_AD" - The ad is a legacy responsive display ad.
	//   "APP_AD" - The ad is an app ad.
	//   "LEGACY_APP_INSTALL_AD" - The ad is a legacy app install ad.
	//   "RESPONSIVE_DISPLAY_AD" - The ad is a responsive display ad.
	//   "LOCAL_AD" - The ad is a local ad.
	//   "HTML5_UPLOAD_AD" - The ad is a display upload ad with the HTML5_UPLOAD_AD
	// product type.
	//   "DYNAMIC_HTML5_AD" - The ad is a display upload ad with one of the
	// DYNAMIC_HTML5_* product types.
	//   "APP_ENGAGEMENT_AD" - The ad is an app engagement ad.
	//   "SHOPPING_COMPARISON_LISTING_AD" - The ad is a Shopping Comparison Listing
	// ad.
	//   "VIDEO_BUMPER_AD" - Video bumper ad.
	//   "VIDEO_NON_SKIPPABLE_IN_STREAM_AD" - Video non-skippable in-stream ad.
	//   "VIDEO_OUTSTREAM_AD" - Video outstream ad.
	//   "VIDEO_TRUEVIEW_DISCOVERY_AD" - Video TrueView in-display ad.
	//   "VIDEO_TRUEVIEW_IN_STREAM_AD" - Video TrueView in-stream ad.
	//   "VIDEO_RESPONSIVE_AD" - Video responsive ad.
	//   "SMART_CAMPAIGN_AD" - Smart campaign ad.
	//   "APP_PRE_REGISTRATION_AD" - Universal app pre-registration ad.
	//   "TRAVEL_AD" - Travel ad.
	//   "MULTIMEDIA_AD" - Multimedia ad.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Ad) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Ad
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroup: An ad group.
type GoogleAdsSearchads360V0Resources__AdGroup struct {
	// AdRotationMode: The ad rotation mode of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The ad rotation mode has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "OPTIMIZE" - Optimize ad group ads based on clicks or conversions.
	//   "ROTATE_FOREVER" - Rotate evenly forever.
	AdRotationMode string `json:"adRotationMode,omitempty"`
	// CpcBidMicros: The maximum CPC (cost-per-click) bid. This field is used when
	// the ad group's effective bidding strategy is Manual CPC. This field is not
	// applicable and will be ignored if the ad group's campaign is using a
	// portfolio bidding strategy.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// CreationTime: Output only. The timestamp when this ad_group was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad group. An effective label is a label inherited or
	// directly assigned to this ad group.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EndDate: Output only. Date when the ad group ends serving ads. By default,
	// the ad group ends on the ad group's end date. If this field is set, then the
	// ad group ends at the end of the specified date in the customer's time zone.
	// This field is only available for Microsoft Advertising and Facebook gateway
	// accounts. Format: YYYY-MM-DD Example: 2019-03-14
	EndDate string `json:"endDate,omitempty"`
	// EngineId: Output only. ID of the ad group in the external engine account.
	// This field is for non-Google Ads account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For Google Ads entity, use "ad_group.id" instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. The Engine Status for ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_EXPIRED" - No ads are running for this ad group, because the ad
	// group's end date has passed.
	//   "AD_GROUP_REMOVED" - The ad group has been deleted.
	//   "AD_GROUP_DRAFT" - No ads are running for this ad group because the
	// associated ad group is still in draft form.
	//   "AD_GROUP_PAUSED" - The ad group has been paused.
	//   "AD_GROUP_SERVING" - The ad group is active and currently serving ads.
	//   "AD_GROUP_SUBMITTED" - The ad group has been submitted (Microsoft Bing Ads
	// legacy status).
	//   "CAMPAIGN_PAUSED" - No ads are running for this ad group, because the
	// campaign has been paused.
	//   "ACCOUNT_PAUSED" - No ads are running for this ad group, because the
	// account has been paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// FinalUrlSuffix: URL template for appending params to Final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// Id: Output only. The ID of the ad group.
	Id int64 `json:"id,omitempty,string"`
	// Labels: Output only. The resource names of labels attached to this ad group.
	Labels []string `json:"labels,omitempty"`
	// LanguageCode: Output only. The language of the ads and keywords in an ad
	// group. This field is only available for Microsoft Advertising accounts. More
	// details:
	// https://docs.microsoft.com/en-us/advertising/guides/ad-languages?view=bingads-13#adlanguage
	LanguageCode string `json:"languageCode,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// Name: The name of the ad group. This field is required and should not be
	// empty when creating new ad groups. It must contain fewer than 255 UTF-8
	// full-width characters. It must not contain any null (code point 0x0), NL
	// line feed (code point 0xA) or carriage return (code point 0xD) characters.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group. Ad group
	// resource names have the form:
	// `customers/{customer_id}/adGroups/{ad_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. Date when this ad group starts serving ads. By
	// default, the ad group starts now or the ad group's start date, whichever is
	// later. If this field is set, then the ad group starts at the beginning of
	// the specified date in the customer's time zone. This field is only available
	// for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD
	// Example: 2019-03-14
	StartDate string `json:"startDate,omitempty"`
	// Status: The status of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group is enabled.
	//   "PAUSED" - The ad group is paused.
	//   "REMOVED" - The ad group is removed.
	Status string `json:"status,omitempty"`
	// TargetingSetting: Setting for targeting related features.
	TargetingSetting *GoogleAdsSearchads360V0Common__TargetingSetting `json:"targetingSetting,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Immutable. The type of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "SEARCH_STANDARD" - The default ad group type for Search campaigns.
	//   "DISPLAY_STANDARD" - The default ad group type for Display campaigns.
	//   "SHOPPING_PRODUCT_ADS" - The ad group type for Shopping campaigns serving
	// standard product ads.
	//   "HOTEL_ADS" - The default ad group type for Hotel campaigns.
	//   "SHOPPING_SMART_ADS" - The type for ad groups in Smart Shopping campaigns.
	//   "VIDEO_BUMPER" - Short unskippable in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_STREAM" - TrueView (skippable) in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_DISPLAY" - TrueView in-display video ads.
	//   "VIDEO_NON_SKIPPABLE_IN_STREAM" - Unskippable in-stream video ads.
	//   "VIDEO_OUTSTREAM" - Outstream video ads.
	//   "SEARCH_DYNAMIC_ADS" - Ad group type for Dynamic Search Ads ad groups.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - The type for ad groups in Shopping
	// Comparison Listing campaigns.
	//   "PROMOTED_HOTEL_ADS" - The ad group type for Promoted Hotel ad groups.
	//   "VIDEO_RESPONSIVE" - Video responsive ad groups.
	//   "VIDEO_EFFICIENT_REACH" - Video efficient reach ad groups.
	//   "SMART_CAMPAIGN_ADS" - Ad group type for Smart campaigns.
	//   "TRAVEL_ADS" - Ad group type for Travel campaigns.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdRotationMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdRotationMode") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAd: An ad group ad.
type GoogleAdsSearchads360V0Resources__AdGroupAd struct {
	// Ad: Immutable. The ad.
	Ad *GoogleAdsSearchads360V0Resources__Ad `json:"ad,omitempty"`
	// CreationTime: Output only. The timestamp when this ad_group_ad was created.
	// The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	CreationTime string `json:"creationTime,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad. An effective label is a label inherited or directly
	// assigned to this ad.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EngineId: Output only. ID of the ad in the external engine account. This
	// field is for Search Ads 360 account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For non-Search Ads 360 entity, use "ad_group_ad.ad.id"
	// instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. Additional status of the ad in the external
	// engine account. Possible statuses (depending on the type of external
	// account) include active, eligible, pending review, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_AD_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_AD_INAPPROPRIATE_FOR_CAMPAIGN" - Baidu: Creative was not
	// approved.
	//   "AD_GROUP_AD_MOBILE_URL_UNDER_REVIEW" - Baidu: Mobile URL in process to be
	// reviewed.
	//   "AD_GROUP_AD_PARTIALLY_INVALID" - Baidu: Creative is invalid on mobile
	// device but valid on desktop.
	//   "AD_GROUP_AD_TO_BE_ACTIVATED" - Baidu: Creative is ready for activation.
	//   "AD_GROUP_AD_NOT_REVIEWED" - Baidu: Creative not reviewed.
	//   "AD_GROUP_AD_ON_HOLD" - Deprecated. Do not use. Previously used by Gemini
	//   "AD_GROUP_AD_PAUSED" - Creative has been paused.
	//   "AD_GROUP_AD_REMOVED" - Creative has been removed.
	//   "AD_GROUP_AD_PENDING_REVIEW" - Creative is pending review.
	//   "AD_GROUP_AD_UNDER_REVIEW" - Creative is under review.
	//   "AD_GROUP_AD_APPROVED" - Creative has been approved.
	//   "AD_GROUP_AD_DISAPPROVED" - Creative has been disapproved.
	//   "AD_GROUP_AD_SERVING" - Creative is serving.
	//   "AD_GROUP_AD_ACCOUNT_PAUSED" - Creative has been paused because the
	// account is paused.
	//   "AD_GROUP_AD_CAMPAIGN_PAUSED" - Creative has been paused because the
	// campaign is paused.
	//   "AD_GROUP_AD_AD_GROUP_PAUSED" - Creative has been paused because the ad
	// group is paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// Labels: Output only. The resource names of labels attached to this ad group
	// ad.
	Labels []string `json:"labels,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group ad was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// ResourceName: Immutable. The resource name of the ad. Ad group ad resource
	// names have the form:
	// `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group ad is enabled.
	//   "PAUSED" - The ad group ad is paused.
	//   "REMOVED" - The ad group ad is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAd) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAd
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel: A relationship
// between an ad group ad and an effective label. An effective label is a label
// inherited or directly assigned to this ad group ad.
type GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel struct {
	// AdGroupAd: Immutable. The ad group ad to which the effective label is
	// attached.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group ad.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group ad effective
	// label. Ad group ad effective label resource names have the form:
	// `customers/{owner_customer_id}/adGroupAdEffectiveLabels/{ad_group_id}~{ad_id}
	// ~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAdLabel: A relationship between an
// ad group ad and a label.
type GoogleAdsSearchads360V0Resources__AdGroupAdLabel struct {
	// AdGroupAd: Immutable. The ad group ad to which the label is attached.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Label: Immutable. The label assigned to the ad group ad.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group ad label. Ad
	// group ad label resource names have the form:
	// `customers/{owner_customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAdLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAdLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAsset: A link between an ad group
// and an asset.
type GoogleAdsSearchads360V0Resources__AdGroupAsset struct {
	// AdGroup: Required. Immutable. The ad group to which the asset is linked.
	AdGroup string `json:"adGroup,omitempty"`
	// Asset: Required. Immutable. The asset which is linked to the ad group.
	Asset string `json:"asset,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group asset.
	// AdGroupAsset resource names have the form:
	// `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Status of the ad group asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAssetSet: AdGroupAssetSet is the
// linkage between an ad group and an asset set. Creating an AdGroupAssetSet
// links an asset set with an ad group.
type GoogleAdsSearchads360V0Resources__AdGroupAssetSet struct {
	// AdGroup: Immutable. The ad group to which this asset set is linked.
	AdGroup string `json:"adGroup,omitempty"`
	// AssetSet: Immutable. The asset set which is linked to the ad group.
	AssetSet string `json:"assetSet,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group asset set. Ad
	// group asset set resource names have the form:
	// `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the ad group asset set. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupAudienceView: An ad group audience
// view. Includes performance data from interests and remarketing lists for
// Display Network and YouTube Network ads, and remarketing lists for search
// ads (RLSA), aggregated at the audience level.
type GoogleAdsSearchads360V0Resources__AdGroupAudienceView struct {
	// ResourceName: Output only. The resource name of the ad group audience view.
	// Ad group audience view resource names have the form:
	// `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupAudienceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupAudienceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupBidModifier: Represents an ad group
// bid modifier.
type GoogleAdsSearchads360V0Resources__AdGroupBidModifier struct {
	// BidModifier: The modifier for the bid when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Use 0 to opt out of a Device
	// type.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// Device: Immutable. A device criterion.
	Device *GoogleAdsSearchads360V0Common__DeviceInfo `json:"device,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group bid modifier. Ad
	// group bid modifier resource names have the form:
	// `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BidModifier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BidModifier") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupBidModifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupBidModifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Resources__AdGroupBidModifier) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupBidModifier
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V0Resources__AdGroupCriterion: An ad group criterion.
// The ad_group_criterion report only returns criteria that were explicitly
// added to the ad group.
type GoogleAdsSearchads360V0Resources__AdGroupCriterion struct {
	// AdGroup: Immutable. The ad group to which the criterion belongs.
	AdGroup string `json:"adGroup,omitempty"`
	// AgeRange: Immutable. Age range.
	AgeRange *GoogleAdsSearchads360V0Common__AgeRangeInfo `json:"ageRange,omitempty"`
	// BidModifier: The modifier for the bid when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Most targetable criteria types
	// support modifiers.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// CpcBidMicros: The CPC (cost-per-click) bid.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// CreationTime: Output only. The timestamp when this ad group criterion was
	// created. The timestamp is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss" format.
	CreationTime string `json:"creationTime,omitempty"`
	// CriterionId: Output only. The ID of the criterion.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// EffectiveCpcBidMicros: Output only. The effective CPC (cost-per-click) bid.
	EffectiveCpcBidMicros int64 `json:"effectiveCpcBidMicros,omitempty,string"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad group criterion. An effective label is a label inherited
	// or directly assigned to this ad group criterion.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EngineId: Output only. ID of the ad group criterion in the external engine
	// account. This field is for non-Google Ads account only, for example, Yahoo
	// Japan, Microsoft, Baidu etc. For Google Ads entity, use
	// "ad_group_criterion.criterion_id" instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. The Engine Status for ad group criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_CRITERION_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN" - Baidu: Bid or quality
	// too low to be displayed.
	//   "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH" - Baidu: Bid or quality too low
	// for mobile, but eligible to display for desktop.
	//   "AD_GROUP_CRITERION_INVALID_PC_SEARCH" - Baidu: Bid or quality too low for
	// desktop, but eligible to display for mobile.
	//   "AD_GROUP_CRITERION_INVALID_SEARCH" - Baidu: Bid or quality too low to be
	// displayed.
	//   "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME" - Baidu: Paused by Baidu due to low
	// search volume.
	//   "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW" - Baidu: Mobile URL in
	// process to be reviewed.
	//   "AD_GROUP_CRITERION_PARTIALLY_INVALID" - Baidu: The landing page for one
	// device is invalid, while the landing page for the other device is valid.
	//   "AD_GROUP_CRITERION_TO_BE_ACTIVATED" - Baidu: Keyword has been created and
	// paused by Baidu account management, and is now ready for you to activate it.
	//   "AD_GROUP_CRITERION_UNDER_REVIEW" - Baidu: In process to be reviewed by
	// Baidu. Gemini: Criterion under review.
	//   "AD_GROUP_CRITERION_NOT_REVIEWED" - Baidu: Criterion to be reviewed.
	//   "AD_GROUP_CRITERION_ON_HOLD" - Deprecated. Do not use. Previously used by
	// Gemini
	//   "AD_GROUP_CRITERION_PENDING_REVIEW" - Y!J : Criterion pending review
	//   "AD_GROUP_CRITERION_PAUSED" - Criterion has been paused.
	//   "AD_GROUP_CRITERION_REMOVED" - Criterion has been removed.
	//   "AD_GROUP_CRITERION_APPROVED" - Criterion has been approved.
	//   "AD_GROUP_CRITERION_DISAPPROVED" - Criterion has been disapproved.
	//   "AD_GROUP_CRITERION_SERVING" - Criterion is active and serving.
	//   "AD_GROUP_CRITERION_ACCOUNT_PAUSED" - Criterion has been paused since the
	// account is paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// FinalMobileUrls: The list of possible final mobile URLs after all
	// cross-domain redirects.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: URL template for appending params to final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: The list of possible final URLs after all cross-domain redirects
	// for the ad.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Gender: Immutable. Gender.
	Gender *GoogleAdsSearchads360V0Common__GenderInfo `json:"gender,omitempty"`
	// Keyword: Immutable. Keyword.
	Keyword *GoogleAdsSearchads360V0Common__KeywordInfo `json:"keyword,omitempty"`
	// Labels: Output only. The resource names of labels attached to this ad group
	// criterion.
	Labels []string `json:"labels,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group criterion was
	// last modified. The datetime is in the customer's time zone and in
	// "yyyy-MM-dd HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// ListingGroup: Immutable. Listing group.
	ListingGroup *GoogleAdsSearchads360V0Common__ListingGroupInfo `json:"listingGroup,omitempty"`
	// Location: Immutable. Location.
	Location *GoogleAdsSearchads360V0Common__LocationInfo `json:"location,omitempty"`
	// Negative: Immutable. Whether to target (`false`) or exclude (`true`) the
	// criterion. This field is immutable. To switch a criterion from positive to
	// negative, remove then re-add it.
	Negative bool `json:"negative,omitempty"`
	// PositionEstimates: Output only. Estimates for criterion bids at various
	// positions.
	PositionEstimates *GoogleAdsSearchads360V0ResourcesAdGroupCriterionPositionEstimates `json:"positionEstimates,omitempty"`
	// QualityInfo: Output only. Information regarding the quality of the
	// criterion.
	QualityInfo *GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo `json:"qualityInfo,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group criterion. Ad
	// group criterion resource names have the form:
	// `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the criterion. This is the status of the ad group
	// criterion entity, set by the client. Note: UI reports may incorporate
	// additional information that affects whether a criterion is eligible to run.
	// In some cases a criterion that's REMOVED in the API can still show as
	// enabled in the UI. For example, campaigns by default show to users of all
	// age ranges unless excluded. The UI will show each age range as "enabled",
	// since they're eligible to see the ads; but AdGroupCriterion.status will show
	// "removed", since no positive criterion was added.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group criterion is enabled.
	//   "PAUSED" - The ad group criterion is paused.
	//   "REMOVED" - The ad group criterion is removed.
	Status string `json:"status,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	Type string `json:"type,omitempty"`
	// UrlCustomParameters: The list of mappings used to substitute custom
	// parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`.
	UrlCustomParameters []*GoogleAdsSearchads360V0Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// UserList: Immutable. User List.
	UserList *GoogleAdsSearchads360V0Common__UserListInfo `json:"userList,omitempty"`
	// Webpage: Immutable. Webpage
	Webpage *GoogleAdsSearchads360V0Common__WebpageInfo `json:"webpage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Resources__AdGroupCriterion) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterion
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel: A
// relationship between an ad group criterion and an effective label. An
// effective label is a label inherited or directly assigned to this ad group
// criterion.
type GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel struct {
	// AdGroupCriterion: Immutable. The ad group criterion to which the effective
	// label is attached.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group criterion.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group criterion
	// effective label. Ad group criterion effective label resource names have the
	// form:
	// `customers/{owner_customer_id}/adGroupCriterionEffectiveLabels/{ad_group_id}~
	// {criterion_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel: A relationship
// between an ad group criterion and a label.
type GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel struct {
	// AdGroupCriterion: Immutable. The ad group criterion to which the label is
	// attached.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Label: Immutable. The label assigned to the ad group criterion.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group criterion label.
	// Ad group criterion label resource names have the form:
	// `customers/{owner_customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterio
	// n_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel: A relationship
// between an ad group and an effective label. An effective label is a label
// inherited or directly assigned to this ad group.
type GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel struct {
	// AdGroup: Immutable. The ad group to which the effective label is attached.
	AdGroup string `json:"adGroup,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group effective label.
	// Ad group effective label resource names have the form:
	// `customers/{owner_customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id
	// }`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AdGroupLabel: A relationship between an ad
// group and a label.
type GoogleAdsSearchads360V0Resources__AdGroupLabel struct {
	// AdGroup: Immutable. The ad group to which the label is attached.
	AdGroup string `json:"adGroup,omitempty"`
	// Label: Immutable. The label assigned to the ad group.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group label. Ad group
	// label resource names have the form:
	// `customers/{owner_customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AdGroupLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AdGroupLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AgeRangeView: An age range view.
type GoogleAdsSearchads360V0Resources__AgeRangeView struct {
	// ResourceName: Output only. The resource name of the age range view. Age
	// range view resource names have the form:
	// `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AgeRangeView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AgeRangeView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Asset: Asset is a part of an ad which can
// be shared across multiple ads. It can be an image (ImageAsset), a video
// (YoutubeVideoAsset), etc. Assets are immutable and cannot be removed. To
// stop an asset from serving, remove the asset from the entity that is using
// it.
type GoogleAdsSearchads360V0Resources__Asset struct {
	// CallAsset: Output only. A unified call asset.
	CallAsset *GoogleAdsSearchads360V0Common__UnifiedCallAsset `json:"callAsset,omitempty"`
	// CallToActionAsset: Immutable. A call to action asset.
	CallToActionAsset *GoogleAdsSearchads360V0Common__CallToActionAsset `json:"callToActionAsset,omitempty"`
	// CalloutAsset: Output only. A unified callout asset.
	CalloutAsset *GoogleAdsSearchads360V0Common__UnifiedCalloutAsset `json:"calloutAsset,omitempty"`
	// CreationTime: Output only. The timestamp when this asset was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// EngineStatus: Output only. The Engine Status for an asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SERVING" - The asset is active.
	//   "SERVING_LIMITED" - The asset is active limited.
	//   "DISAPPROVED" - The asset is disapproved (not eligible).
	//   "DISABLED" - The asset is inactive (pending).
	//   "REMOVED" - The asset has been removed.
	EngineStatus string `json:"engineStatus,omitempty"`
	// FinalMobileUrls: A list of possible final mobile URLs after all cross domain
	// redirects.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: URL template for appending params to landing page URLs
	// served with parallel tracking.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: A list of possible final URLs after all cross domain redirects.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Id: Output only. The ID of the asset.
	Id int64 `json:"id,omitempty,string"`
	// ImageAsset: Output only. An image asset.
	ImageAsset *GoogleAdsSearchads360V0Common__ImageAsset `json:"imageAsset,omitempty"`
	// LastModifiedTime: Output only. The datetime when this asset was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// LocationAsset: Output only. A unified location asset.
	LocationAsset *GoogleAdsSearchads360V0Common__UnifiedLocationAsset `json:"locationAsset,omitempty"`
	// MobileAppAsset: A mobile app asset.
	MobileAppAsset *GoogleAdsSearchads360V0Common__MobileAppAsset `json:"mobileAppAsset,omitempty"`
	// Name: Optional name of the asset.
	Name string `json:"name,omitempty"`
	// PageFeedAsset: Output only. A unified page feed asset.
	PageFeedAsset *GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset `json:"pageFeedAsset,omitempty"`
	// ResourceName: Immutable. The resource name of the asset. Asset resource
	// names have the form: `customers/{customer_id}/assets/{asset_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SitelinkAsset: Output only. A unified sitelink asset.
	SitelinkAsset *GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset `json:"sitelinkAsset,omitempty"`
	// Status: Output only. The status of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The asset is enabled.
	//   "REMOVED" - The asset is removed.
	//   "ARCHIVED" - The asset is archived.
	//   "PENDING_SYSTEM_GENERATED" - The asset is system generated pending user
	// review.
	Status string `json:"status,omitempty"`
	// TextAsset: Output only. A text asset.
	TextAsset *GoogleAdsSearchads360V0Common__TextAsset `json:"textAsset,omitempty"`
	// TrackingUrlTemplate: URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Output only. Type of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "YOUTUBE_VIDEO" - YouTube video asset.
	//   "MEDIA_BUNDLE" - Media bundle asset.
	//   "IMAGE" - Image asset.
	//   "TEXT" - Text asset.
	//   "LEAD_FORM" - Lead form asset.
	//   "BOOK_ON_GOOGLE" - Book on Google asset.
	//   "PROMOTION" - Promotion asset.
	//   "CALLOUT" - Callout asset.
	//   "STRUCTURED_SNIPPET" - Structured Snippet asset.
	//   "SITELINK" - Sitelink asset.
	//   "PAGE_FEED" - Page Feed asset.
	//   "DYNAMIC_EDUCATION" - Dynamic Education asset.
	//   "MOBILE_APP" - Mobile app asset.
	//   "HOTEL_CALLOUT" - Hotel callout asset.
	//   "CALL" - Call asset.
	//   "PRICE" - Price asset.
	//   "CALL_TO_ACTION" - Call to action asset.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset.
	//   "DISCOVERY_CAROUSEL_CARD" - Discovery Carousel Card asset.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset.
	//   "DYNAMIC_LOCAL" - Dynamic local asset.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset.
	//   "LOCATION" - Location asset.
	//   "HOTEL_PROPERTY" - Hotel property asset.
	Type string `json:"type,omitempty"`
	// UrlCustomParameters: A list of mappings to be used for substituting URL
	// custom parameter tags in the tracking_url_template, final_urls, and/or
	// final_mobile_urls.
	UrlCustomParameters []*GoogleAdsSearchads360V0Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// YoutubeVideoAsset: Immutable. A YouTube video asset.
	YoutubeVideoAsset *GoogleAdsSearchads360V0Common__YoutubeVideoAsset `json:"youtubeVideoAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Asset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Asset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroup: An asset group.
// AssetGroupAsset is used to link an asset to the asset group.
// AssetGroupSignal is used to associate a signal to an asset group.
type GoogleAdsSearchads360V0Resources__AssetGroup struct {
	// AdStrength: Output only. Overall ad strength of this asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The ad strength is currently pending.
	//   "NO_ADS" - No ads could be generated.
	//   "POOR" - Poor strength.
	//   "AVERAGE" - Average strength.
	//   "GOOD" - Good strength.
	//   "EXCELLENT" - Excellent strength.
	AdStrength string `json:"adStrength,omitempty"`
	// Campaign: Immutable. The campaign with which this asset group is associated.
	// The asset which is linked to the asset group.
	Campaign string `json:"campaign,omitempty"`
	// FinalMobileUrls: A list of final mobile URLs after all cross domain
	// redirects. In performance max, by default, the urls are eligible for
	// expansion unless opted out.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrls: A list of final URLs after all cross domain redirects. In
	// performance max, by default, the urls are eligible for expansion unless
	// opted out.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Id: Output only. The ID of the asset group.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. Name of the asset group. Required. It must have a minimum
	// length of 1 and maximum length of 128. It must be unique under a campaign.
	Name string `json:"name,omitempty"`
	// Path1: First part of text that may appear appended to the url displayed in
	// the ad.
	Path1 string `json:"path1,omitempty"`
	// Path2: Second part of text that may appear appended to the url displayed in
	// the ad. This field can only be set when path1 is set.
	Path2 string `json:"path2,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group. Asset group
	// resource names have the form:
	// `customers/{customer_id}/assetGroups/{asset_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The asset group is enabled.
	//   "PAUSED" - The asset group is paused.
	//   "REMOVED" - The asset group is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdStrength") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdStrength") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroupAsset: AssetGroupAsset is the
// link between an asset and an asset group. Adding an AssetGroupAsset links an
// asset with an asset group.
type GoogleAdsSearchads360V0Resources__AssetGroupAsset struct {
	// Asset: Immutable. The asset which this asset group asset is linking.
	Asset string `json:"asset,omitempty"`
	// AssetGroup: Immutable. The asset group which this asset group asset is
	// linking.
	AssetGroup string `json:"assetGroup,omitempty"`
	// FieldType: The description of the placement of the asset within the asset
	// group. For example: HEADLINE, YOUTUBE_VIDEO etc
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DISCOVERY_CAROUSEL_CARD" - The asset is linked for use as a discovery
	// carousel card.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group asset. Asset
	// group asset resource name have the form:
	// `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_
	// type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the link between an asset and asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroupAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroupAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData: Asset
// group asset combination data
type GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData struct {
	// AssetCombinationServedAssets: Output only. Served assets.
	AssetCombinationServedAssets []*GoogleAdsSearchads360V0Common__AssetUsage `json:"assetCombinationServedAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AssetCombinationServedAssets") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetCombinationServedAssets") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter:
// AssetGroupListingGroupFilter represents a listing group filter tree node in
// an asset group.
type GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter struct {
	// AssetGroup: Immutable. The asset group which this asset group listing group
	// filter is part of.
	AssetGroup string `json:"assetGroup,omitempty"`
	// CaseValue: Dimension value with which this listing group is refining its
	// parent. Undefined for the root group.
	CaseValue *GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension `json:"caseValue,omitempty"`
	// Id: Output only. The ID of the ListingGroupFilter.
	Id int64 `json:"id,omitempty,string"`
	// ParentListingGroupFilter: Immutable. Resource name of the parent listing
	// group subdivision. Null for the root listing group filter node.
	ParentListingGroupFilter string `json:"parentListingGroupFilter,omitempty"`
	// Path: Output only. The path of dimensions defining this listing group
	// filter.
	Path *GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath `json:"path,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group listing group
	// filter. Asset group listing group filter resource name have the form:
	// `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{list
	// ing_group_filter_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Immutable. Type of a listing group filter node.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SUBDIVISION" - Subdivision of products along some listing dimensions.
	//   "UNIT_INCLUDED" - An included listing group filter leaf node.
	//   "UNIT_EXCLUDED" - An excluded listing group filter leaf node.
	Type string `json:"type,omitempty"`
	// Vertical: Immutable. The vertical the current node tree represents. All
	// nodes in the same tree must belong to the same vertical.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SHOPPING" - Represents the shopping vertical. The vertical is allowed
	// only in Performance Max for Retail campaigns.
	Vertical string `json:"vertical,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroupSignal: AssetGroupSignal
// represents a signal in an asset group. The existence of a signal tells the
// performance max campaign who's most likely to convert. Performance Max uses
// the signal to look for new people with similar or stronger intent to find
// conversions across Search, Display, Video, and more.
type GoogleAdsSearchads360V0Resources__AssetGroupSignal struct {
	// AssetGroup: Immutable. The asset group which this asset group signal belongs
	// to.
	AssetGroup string `json:"assetGroup,omitempty"`
	// Audience: Immutable. The audience signal to be used by the performance max
	// campaign.
	Audience *GoogleAdsSearchads360V0Common__AudienceInfo `json:"audience,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group signal. Asset
	// group signal resource name have the form:
	// `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroupSignal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroupSignal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView: A view on
// the usage of asset group asset top combinations.
type GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView struct {
	// AssetGroupTopCombinations: Output only. The top combinations of assets that
	// served together.
	AssetGroupTopCombinations []*GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData `json:"assetGroupTopCombinations,omitempty"`
	// ResourceName: Output only. The resource name of the asset group top
	// combination view. AssetGroup Top Combination view resource names have the
	// form:
	// "customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{ass
	// et_combination_category}"
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroupTopCombinations")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroupTopCombinations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetSet: An asset set representing a
// collection of assets. Use AssetSetAsset to link an asset to the asset set.
type GoogleAdsSearchads360V0Resources__AssetSet struct {
	// Id: Output only. The ID of the asset set.
	Id int64 `json:"id,omitempty,string"`
	// ResourceName: Immutable. The resource name of the asset set. Asset set
	// resource names have the form:
	// `customers/{customer_id}/assetSets/{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__AssetSetAsset: AssetSetAsset is the link
// between an asset and an asset set. Adding an AssetSetAsset links an asset
// with an asset set.
type GoogleAdsSearchads360V0Resources__AssetSetAsset struct {
	// Asset: Immutable. The asset which this asset set asset is linking to.
	Asset string `json:"asset,omitempty"`
	// AssetSet: Immutable. The asset set which this asset set asset is linking to.
	AssetSet string `json:"assetSet,omitempty"`
	// ResourceName: Immutable. The resource name of the asset set asset. Asset set
	// asset resource names have the form:
	// `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The asset set asset is enabled.
	//   "REMOVED" - The asset set asset is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__AssetSetAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__AssetSetAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Audience: Audience is an effective
// targeting option that lets you intersect different segment attributes, such
// as detailed demographics and affinities, to create audiences that represent
// sections of your target segments.
type GoogleAdsSearchads360V0Resources__Audience struct {
	// Description: Description of this audience.
	Description string `json:"description,omitempty"`
	// Id: Output only. ID of the audience.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. Name of the audience. It should be unique across all
	// audiences. It must have a minimum length of 1 and maximum length of 255.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the audience. Audience names
	// have the form: `customers/{customer_id}/audiences/{audience_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Audience) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Audience
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__BiddingStrategy: A bidding strategy.
type GoogleAdsSearchads360V0Resources__BiddingStrategy struct {
	// CampaignCount: Output only. The number of campaigns attached to this bidding
	// strategy. This field is read-only.
	CampaignCount int64 `json:"campaignCount,omitempty,string"`
	// CurrencyCode: Immutable. The currency used by the bidding strategy (ISO 4217
	// three-letter code). For bidding strategies in manager customers, this
	// currency can be set on creation and defaults to the manager customer's
	// currency. For serving customers, this field cannot be set; all strategies in
	// a serving customer implicitly use the serving customer's currency. In all
	// cases the effective_currency_code field returns the currency used by the
	// strategy.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// EffectiveCurrencyCode: Output only. The currency used by the bidding
	// strategy (ISO 4217 three-letter code). For bidding strategies in manager
	// customers, this is the currency set by the advertiser when creating the
	// strategy. For serving customers, this is the customer's currency_code.
	// Bidding strategy metrics are reported in this currency. This field is
	// read-only.
	EffectiveCurrencyCode string `json:"effectiveCurrencyCode,omitempty"`
	// EnhancedCpc: A bidding strategy that raises bids for clicks that seem more
	// likely to lead to a conversion and lowers them for clicks where they seem
	// less likely.
	EnhancedCpc *GoogleAdsSearchads360V0Common__EnhancedCpc `json:"enhancedCpc,omitempty"`
	// Id: Output only. The ID of the bidding strategy.
	Id int64 `json:"id,omitempty,string"`
	// MaximizeConversionValue: An automated bidding strategy to help get the most
	// conversion value for your campaigns while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V0Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: An automated bidding strategy to help get the most
	// conversions for your campaigns while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V0Common__MaximizeConversions `json:"maximizeConversions,omitempty"`
	// Name: The name of the bidding strategy. All bidding strategies within an
	// account must be named distinctly. The length of this string should be
	// between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).
	Name string `json:"name,omitempty"`
	// NonRemovedCampaignCount: Output only. The number of non-removed campaigns
	// attached to this bidding strategy. This field is read-only.
	NonRemovedCampaignCount int64 `json:"nonRemovedCampaignCount,omitempty,string"`
	// ResourceName: Immutable. The resource name of the bidding strategy. Bidding
	// strategy resource names have the form:
	// `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the bidding strategy. This field is
	// read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The bidding strategy is enabled.
	//   "REMOVED" - The bidding strategy is removed.
	Status string `json:"status,omitempty"`
	// TargetCpa: A bidding strategy that sets bids to help get as many conversions
	// as possible at the target cost-per-acquisition (CPA) you set.
	TargetCpa *GoogleAdsSearchads360V0Common__TargetCpa `json:"targetCpa,omitempty"`
	// TargetImpressionShare: A bidding strategy that automatically optimizes
	// towards a chosen percentage of impressions.
	TargetImpressionShare *GoogleAdsSearchads360V0Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetOutrankShare: A bidding strategy that sets bids based on the target
	// fraction of auctions where the advertiser should outrank a specific
	// competitor. This field is deprecated. Creating a new bidding strategy with
	// this field or attaching bidding strategies with this field to a campaign
	// will fail. Mutates to strategies that already have this scheme populated are
	// allowed.
	TargetOutrankShare *GoogleAdsSearchads360V0Common__TargetOutrankShare `json:"targetOutrankShare,omitempty"`
	// TargetRoas: A bidding strategy that helps you maximize revenue while
	// averaging a specific target Return On Ad Spend (ROAS).
	TargetRoas *GoogleAdsSearchads360V0Common__TargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: A bid strategy that sets your bids to help get as many clicks
	// as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V0Common__TargetSpend `json:"targetSpend,omitempty"`
	// Type: Output only. The type of the bidding strategy. Create a bidding
	// strategy by setting the bidding scheme. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__BiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__BiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Campaign: A campaign.
type GoogleAdsSearchads360V0Resources__Campaign struct {
	// AccessibleBiddingStrategy: Output only. Resource name of
	// AccessibleBiddingStrategy, a read-only view of the unrestricted attributes
	// of the attached portfolio bidding strategy identified by 'bidding_strategy'.
	// Empty, if the campaign does not use a portfolio strategy. Unrestricted
	// strategy attributes are available to all customers with whom the strategy is
	// shared and are read from the AccessibleBiddingStrategy resource. In
	// contrast, restricted attributes are only available to the owner customer of
	// the strategy and their managers. Restricted attributes can only be read from
	// the BiddingStrategy resource.
	AccessibleBiddingStrategy string `json:"accessibleBiddingStrategy,omitempty"`
	// AdServingOptimizationStatus: The ad serving optimization status of the
	// campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "OPTIMIZE" - Ad serving is optimized based on CTR for the campaign.
	//   "CONVERSION_OPTIMIZE" - Ad serving is optimized based on CTR * Conversion
	// for the campaign. If the campaign is not in the conversion optimizer bidding
	// strategy, it will default to OPTIMIZED.
	//   "ROTATE" - Ads are rotated evenly for 90 days, then optimized for clicks.
	//   "ROTATE_INDEFINITELY" - Show lower performing ads more evenly with higher
	// performing ads, and do not optimize.
	//   "UNAVAILABLE" - Ad serving optimization status is not available.
	AdServingOptimizationStatus string `json:"adServingOptimizationStatus,omitempty"`
	// AdvertisingChannelSubType: Immutable. Optional refinement to
	// `advertising_channel_type`. Must be a valid sub-type of the parent channel
	// type. Can be set only when creating campaigns. After campaign is created,
	// the field can not be changed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "SEARCH_MOBILE_APP" - Mobile app campaigns for Search.
	//   "DISPLAY_MOBILE_APP" - Mobile app campaigns for Display.
	//   "SEARCH_EXPRESS" - AdWords express campaigns for search.
	//   "DISPLAY_EXPRESS" - AdWords Express campaigns for display.
	//   "SHOPPING_SMART_ADS" - Smart Shopping campaigns.
	//   "DISPLAY_GMAIL_AD" - Gmail Ad campaigns.
	//   "DISPLAY_SMART_CAMPAIGN" - Smart display campaigns. New campaigns of this
	// sub type cannot be created.
	//   "VIDEO_OUTSTREAM" - Video Outstream campaigns.
	//   "VIDEO_ACTION" - Video TrueView for Action campaigns.
	//   "VIDEO_NON_SKIPPABLE" - Video campaigns with non-skippable video ads.
	//   "APP_CAMPAIGN" - App Campaign that lets you easily promote your Android or
	// iOS app across Google's top properties including Search, Play, YouTube, and
	// the Google Display Network.
	//   "APP_CAMPAIGN_FOR_ENGAGEMENT" - App Campaign for engagement, focused on
	// driving re-engagement with the app across several of Google's top properties
	// including Search, YouTube, and the Google Display Network.
	//   "LOCAL_CAMPAIGN" - Campaigns specialized for local advertising.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - Shopping Comparison Listing campaigns.
	//   "SMART_CAMPAIGN" - Standard Smart campaigns.
	//   "VIDEO_SEQUENCE" - Video campaigns with sequence video ads.
	//   "APP_CAMPAIGN_FOR_PRE_REGISTRATION" - App Campaign for pre registration,
	// specialized for advertising mobile app pre-registration, that targets
	// multiple advertising channels across Google Play, YouTube and Display
	// Network.
	//   "VIDEO_REACH_TARGET_FREQUENCY" - Video reach campaign with Target
	// Frequency bidding strategy.
	//   "TRAVEL_ACTIVITIES" - Travel Activities campaigns.
	//   "SOCIAL_FACEBOOK_TRACKING_ONLY" - Facebook tracking only social campaigns.
	AdvertisingChannelSubType string `json:"advertisingChannelSubType,omitempty"`
	// AdvertisingChannelType: Immutable. The primary serving target for ads within
	// the campaign. The targeting options can be refined in `network_settings`.
	// This field is required and should not be empty when creating new campaigns.
	// Can be set only when creating campaigns. After the campaign is created, the
	// field can not be changed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "DISCOVERY" - Discovery campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelType string `json:"advertisingChannelType,omitempty"`
	// BiddingStrategy: The resource name of the portfolio bidding strategy used by
	// the campaign.
	BiddingStrategy string `json:"biddingStrategy,omitempty"`
	// BiddingStrategySystemStatus: Output only. The system status of the
	// campaign's bidding strategy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Signals that an unexpected error occurred, for example, no
	// bidding strategy type was found, or no status information was found.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The bid strategy is active, and AdWords cannot find any
	// specific issues with the strategy.
	//   "LEARNING_NEW" - The bid strategy is learning because it has been recently
	// created or recently reactivated.
	//   "LEARNING_SETTING_CHANGE" - The bid strategy is learning because of a
	// recent setting change.
	//   "LEARNING_BUDGET_CHANGE" - The bid strategy is learning because of a
	// recent budget change.
	//   "LEARNING_COMPOSITION_CHANGE" - The bid strategy is learning because of
	// recent change in number of campaigns, ad groups or keywords attached to it.
	//   "LEARNING_CONVERSION_TYPE_CHANGE" - The bid strategy depends on conversion
	// reporting and the customer recently modified conversion types that were
	// relevant to the bid strategy.
	//   "LEARNING_CONVERSION_SETTING_CHANGE" - The bid strategy depends on
	// conversion reporting and the customer recently changed their conversion
	// settings.
	//   "LIMITED_BY_CPC_BID_CEILING" - The bid strategy is limited by its bid
	// ceiling.
	//   "LIMITED_BY_CPC_BID_FLOOR" - The bid strategy is limited by its bid floor.
	//   "LIMITED_BY_DATA" - The bid strategy is limited because there was not
	// enough conversion traffic over the past weeks.
	//   "LIMITED_BY_BUDGET" - A significant fraction of keywords in this bid
	// strategy are limited by budget.
	//   "LIMITED_BY_LOW_PRIORITY_SPEND" - The bid strategy cannot reach its target
	// spend because its spend has been de-prioritized.
	//   "LIMITED_BY_LOW_QUALITY" - A significant fraction of keywords in this bid
	// strategy have a low Quality Score.
	//   "LIMITED_BY_INVENTORY" - The bid strategy cannot fully spend its budget
	// because of narrow targeting.
	//   "MISCONFIGURED_ZERO_ELIGIBILITY" - Missing conversion tracking (no pings
	// present) and/or remarketing lists for SSC.
	//   "MISCONFIGURED_CONVERSION_TYPES" - The bid strategy depends on conversion
	// reporting and the customer is lacking conversion types that might be
	// reported against this strategy.
	//   "MISCONFIGURED_CONVERSION_SETTINGS" - The bid strategy depends on
	// conversion reporting and the customer's conversion settings are
	// misconfigured.
	//   "MISCONFIGURED_SHARED_BUDGET" - There are campaigns outside the bid
	// strategy that share budgets with campaigns included in the strategy.
	//   "MISCONFIGURED_STRATEGY_TYPE" - The campaign has an invalid strategy type
	// and is not serving.
	//   "PAUSED" - The bid strategy is not active. Either there are no active
	// campaigns, ad groups or keywords attached to the bid strategy. Or there are
	// no active budgets connected to the bid strategy.
	//   "UNAVAILABLE" - This bid strategy currently does not support status
	// reporting.
	//   "MULTIPLE_LEARNING" - There were multiple LEARNING_* system statuses for
	// this bid strategy during the time in question.
	//   "MULTIPLE_LIMITED" - There were multiple LIMITED_* system statuses for
	// this bid strategy during the time in question.
	//   "MULTIPLE_MISCONFIGURED" - There were multiple MISCONFIGURED_* system
	// statuses for this bid strategy during the time in question.
	//   "MULTIPLE" - There were multiple system statuses for this bid strategy
	// during the time in question.
	BiddingStrategySystemStatus string `json:"biddingStrategySystemStatus,omitempty"`
	// BiddingStrategyType: Output only. The type of bidding strategy. A bidding
	// strategy can be created by setting either the bidding scheme to create a
	// standard bidding strategy or the `bidding_strategy` field to create a
	// portfolio bidding strategy. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	BiddingStrategyType string `json:"biddingStrategyType,omitempty"`
	// CampaignBudget: The resource name of the campaign budget of the campaign.
	CampaignBudget string `json:"campaignBudget,omitempty"`
	// CreateTime: Output only. The timestamp when this campaign was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format. create_time will be deprecated in v1. Use creation_time instead.
	CreateTime string `json:"createTime,omitempty"`
	// CreationTime: Output only. The timestamp when this campaign was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// DynamicSearchAdsSetting: The setting for controlling Dynamic Search Ads
	// (DSA).
	DynamicSearchAdsSetting *GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting `json:"dynamicSearchAdsSetting,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this campaign. An effective label is a label inherited or
	// directly assigned to this campaign.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EndDate: The last day of the campaign in serving customer's timezone in
	// YYYY-MM-DD format. On create, defaults to 2037-12-30, which means the
	// campaign will run indefinitely. To set an existing campaign to run
	// indefinitely, set this field to 2037-12-30.
	EndDate string `json:"endDate,omitempty"`
	// EngineId: Output only. ID of the campaign in the external engine account.
	// This field is for non-Google Ads account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For Google Ads entity, use "campaign.id" instead.
	EngineId string `json:"engineId,omitempty"`
	// ExcludedParentAssetFieldTypes: The asset field types that should be excluded
	// from this campaign. Asset links with these field types will not be inherited
	// by this campaign from the upper level.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DISCOVERY_CAROUSEL_CARD" - The asset is linked for use as a discovery
	// carousel card.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	ExcludedParentAssetFieldTypes []string `json:"excludedParentAssetFieldTypes,omitempty"`
	// FeedTypes: Output only. Types of feeds that are attached directly to this
	// campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	FeedTypes []string `json:"feedTypes,omitempty"`
	// FinalUrlSuffix: Suffix used to append query parameters to landing pages that
	// are served with parallel tracking.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FrequencyCaps: A list that limits how often each user will see this
	// campaign's ads.
	FrequencyCaps []*GoogleAdsSearchads360V0Common__FrequencyCapEntry `json:"frequencyCaps,omitempty"`
	// GeoTargetTypeSetting: The setting for ads geotargeting.
	GeoTargetTypeSetting *GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting `json:"geoTargetTypeSetting,omitempty"`
	// Id: Output only. The ID of the campaign.
	Id int64 `json:"id,omitempty,string"`
	// Labels: Output only. The resource names of labels attached to this campaign.
	Labels []string `json:"labels,omitempty"`
	// LastModifiedTime: Output only. The datetime when this campaign was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// ManualCpa: Standard Manual CPA bidding strategy. Manual bidding strategy
	// that allows advertiser to set the bid per advertiser-specified action.
	// Supported only for Local Services campaigns.
	ManualCpa *GoogleAdsSearchads360V0Common__ManualCpa `json:"manualCpa,omitempty"`
	// ManualCpc: Standard Manual CPC bidding strategy. Manual click-based bidding
	// where user pays per click.
	ManualCpc *GoogleAdsSearchads360V0Common__ManualCpc `json:"manualCpc,omitempty"`
	// ManualCpm: Standard Manual CPM bidding strategy. Manual impression-based
	// bidding where user pays per thousand impressions.
	ManualCpm *GoogleAdsSearchads360V0Common__ManualCpm `json:"manualCpm,omitempty"`
	// MaximizeConversionValue: Standard Maximize Conversion Value bidding strategy
	// that automatically sets bids to maximize revenue while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V0Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: Standard Maximize Conversions bidding strategy that
	// automatically maximizes number of conversions while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V0Common__MaximizeConversions `json:"maximizeConversions,omitempty"`
	// Name: The name of the campaign. This field is required and should not be
	// empty when creating new campaigns. It must not contain any null (code point
	// 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD)
	// characters.
	Name string `json:"name,omitempty"`
	// NetworkSettings: The network settings for the campaign.
	NetworkSettings *GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings `json:"networkSettings,omitempty"`
	// OptimizationGoalSetting: Optimization goal setting for this campaign, which
	// includes a set of optimization goal types.
	OptimizationGoalSetting *GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting `json:"optimizationGoalSetting,omitempty"`
	// PercentCpc: Standard Percent Cpc bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	PercentCpc *GoogleAdsSearchads360V0Common__PercentCpc `json:"percentCpc,omitempty"`
	// RealTimeBiddingSetting: Settings for Real-Time Bidding, a feature only
	// available for campaigns targeting the Ad Exchange network.
	RealTimeBiddingSetting *GoogleAdsSearchads360V0Common__RealTimeBiddingSetting `json:"realTimeBiddingSetting,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign. Campaign
	// resource names have the form:
	// `customers/{customer_id}/campaigns/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SelectiveOptimization: Selective optimization setting for this campaign,
	// which includes a set of conversion actions to optimize this campaign
	// towards. This feature only applies to app campaigns that use MULTI_CHANNEL
	// as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
	// AdvertisingChannelSubType.
	SelectiveOptimization *GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization `json:"selectiveOptimization,omitempty"`
	// ServingStatus: Output only. The ad serving status of the campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "SERVING" - Serving.
	//   "NONE" - None.
	//   "ENDED" - Ended.
	//   "PENDING" - Pending.
	//   "SUSPENDED" - Suspended.
	ServingStatus string `json:"servingStatus,omitempty"`
	// ShoppingSetting: The setting for controlling Shopping campaigns.
	ShoppingSetting *GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting `json:"shoppingSetting,omitempty"`
	// StartDate: The date when campaign started in serving customer's timezone in
	// YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// Status: The status of the campaign. When a new campaign is added, the status
	// defaults to ENABLED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Campaign is active and can show ads.
	//   "PAUSED" - Campaign has been paused by the user.
	//   "REMOVED" - Campaign has been removed.
	Status string `json:"status,omitempty"`
	// TargetCpa: Standard Target CPA bidding strategy that automatically sets bids
	// to help get as many conversions as possible at the target
	// cost-per-acquisition (CPA) you set.
	TargetCpa *GoogleAdsSearchads360V0Common__TargetCpa `json:"targetCpa,omitempty"`
	// TargetCpm: A bidding strategy that automatically optimizes cost per thousand
	// impressions.
	TargetCpm *GoogleAdsSearchads360V0Common__TargetCpm `json:"targetCpm,omitempty"`
	// TargetImpressionShare: Target Impression Share bidding strategy. An
	// automated bidding strategy that sets bids to achieve a chosen percentage of
	// impressions.
	TargetImpressionShare *GoogleAdsSearchads360V0Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetRoas: Standard Target ROAS bidding strategy that automatically
	// maximizes revenue while averaging a specific target return on ad spend
	// (ROAS).
	TargetRoas *GoogleAdsSearchads360V0Common__TargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: Standard Target Spend bidding strategy that automatically sets
	// your bids to help get as many clicks as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V0Common__TargetSpend `json:"targetSpend,omitempty"`
	// TrackingSetting: Output only. Campaign-level settings for tracking
	// information.
	TrackingSetting *GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting `json:"trackingSetting,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// UrlCustomParameters: The list of mappings used to substitute custom
	// parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`.
	UrlCustomParameters []*GoogleAdsSearchads360V0Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// UrlExpansionOptOut: Represents opting out of URL expansion to more targeted
	// URLs. If opted out (true), only the final URLs in the asset group or URLs
	// specified in the advertiser's Google Merchant Center or business data feeds
	// are targeted. If opted in (false), the entire domain will be targeted. This
	// field can only be set for Performance Max campaigns, where the default value
	// is false.
	UrlExpansionOptOut bool `json:"urlExpansionOptOut,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessibleBiddingStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessibleBiddingStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Campaign) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Campaign
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignAsset: A link between a Campaign
// and an Asset.
type GoogleAdsSearchads360V0Resources__CampaignAsset struct {
	// Asset: Immutable. The asset which is linked to the campaign.
	Asset string `json:"asset,omitempty"`
	// Campaign: Immutable. The campaign to which the asset is linked.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign asset.
	// CampaignAsset resource names have the form:
	// `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}
	// `
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the campaign asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignAssetSet: CampaignAssetSet is the
// linkage between a campaign and an asset set. Adding a CampaignAssetSet links
// an asset set with a campaign.
type GoogleAdsSearchads360V0Resources__CampaignAssetSet struct {
	// AssetSet: Immutable. The asset set which is linked to the campaign.
	AssetSet string `json:"assetSet,omitempty"`
	// Campaign: Immutable. The campaign to which this asset set is linked.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign asset set. Asset
	// set asset resource names have the form:
	// `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the campaign asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignAudienceView: A campaign audience
// view. Includes performance data from interests and remarketing lists for
// Display Network and YouTube Network ads, and remarketing lists for search
// ads (RLSA), aggregated by campaign and audience criterion. This view only
// includes audiences attached at the campaign level.
type GoogleAdsSearchads360V0Resources__CampaignAudienceView struct {
	// ResourceName: Output only. The resource name of the campaign audience view.
	// Campaign audience view resource names have the form:
	// `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignAudienceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignAudienceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignBudget: A campaign budget.
type GoogleAdsSearchads360V0Resources__CampaignBudget struct {
	// AmountMicros: The average daily amount to be spent by the campaign. This
	// field is used when the CampaignBudget `period` is set to `DAILY`, which is
	// the default. Amount is specified in micros in the account's local currency.
	// One million micros is equivalent to one currency unit. The effective monthly
	// spend is capped at 30.4 times this daily amount. This field is mutually
	// exclusive with 'total_amount_micros'. Only one of 'amount_micros' or
	// 'total_amount_micros' should be set.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// DeliveryMethod: The delivery method that determines the rate at which the
	// campaign budget is spent. Defaults to STANDARD if unspecified in a create
	// operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STANDARD" - The budget server will throttle serving evenly across the
	// entire time period.
	//   "ACCELERATED" - The budget server will not throttle serving, and ads will
	// serve as fast as possible.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Period: Immutable. Period over which to spend the budget. Defaults to DAILY
	// if not specified.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DAILY" - Daily budget.
	//   "FIXED_DAILY" - Fixed daily budget.
	//   "CUSTOM_PERIOD" - Custom budget can be used with total_amount to specify
	// lifetime budget limit.
	Period string `json:"period,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign budget. Campaign
	// budget resource names have the form:
	// `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignBudget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignBudget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignCriterion: A campaign criterion.
type GoogleAdsSearchads360V0Resources__CampaignCriterion struct {
	// AgeRange: Immutable. Age range.
	AgeRange *GoogleAdsSearchads360V0Common__AgeRangeInfo `json:"ageRange,omitempty"`
	// BidModifier: The modifier for the bids when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Most targetable criteria types
	// support modifiers. Use 0 to opt out of a Device type.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// CriterionId: Output only. The ID of the criterion. This field is ignored
	// during mutate.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Device: Immutable. Device.
	Device *GoogleAdsSearchads360V0Common__DeviceInfo `json:"device,omitempty"`
	// DisplayName: Output only. The display name of the criterion. This field is
	// ignored for mutates.
	DisplayName string `json:"displayName,omitempty"`
	// Gender: Immutable. Gender.
	Gender *GoogleAdsSearchads360V0Common__GenderInfo `json:"gender,omitempty"`
	// Keyword: Immutable. Keyword.
	Keyword *GoogleAdsSearchads360V0Common__KeywordInfo `json:"keyword,omitempty"`
	// Language: Immutable. Language.
	Language *GoogleAdsSearchads360V0Common__LanguageInfo `json:"language,omitempty"`
	// LastModifiedTime: Output only. The datetime when this campaign criterion was
	// last modified. The datetime is in the customer's time zone and in
	// "yyyy-MM-dd HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// Location: Immutable. Location.
	Location *GoogleAdsSearchads360V0Common__LocationInfo `json:"location,omitempty"`
	// LocationGroup: Immutable. Location Group
	LocationGroup *GoogleAdsSearchads360V0Common__LocationGroupInfo `json:"locationGroup,omitempty"`
	// Negative: Immutable. Whether to target (`false`) or exclude (`true`) the
	// criterion.
	Negative bool `json:"negative,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign criterion.
	// Campaign criterion resource names have the form:
	// `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The campaign criterion is enabled.
	//   "PAUSED" - The campaign criterion is paused.
	//   "REMOVED" - The campaign criterion is removed.
	Status string `json:"status,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	Type string `json:"type,omitempty"`
	// UserList: Immutable. User List.
	UserList *GoogleAdsSearchads360V0Common__UserListInfo `json:"userList,omitempty"`
	// Webpage: Immutable. Webpage.
	Webpage *GoogleAdsSearchads360V0Common__WebpageInfo `json:"webpage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Resources__CampaignCriterion) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignCriterion
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel: Represents a
// relationship between a campaign and an effective label. An effective label
// is a label inherited or directly assigned to this campaign.
type GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel struct {
	// Campaign: Immutable. The campaign to which the effective label is attached.
	Campaign string `json:"campaign,omitempty"`
	// Label: Immutable. The effective label assigned to the campaign.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. CampaignEffectivelabel
	// resource names have the form:
	// `customers/{owner_customer_id}/campaignEffectiveLabels/{campaign_id}~{label_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CampaignLabel: Represents a relationship
// between a campaign and a label.
type GoogleAdsSearchads360V0Resources__CampaignLabel struct {
	// Campaign: Immutable. The campaign to which the label is attached.
	Campaign string `json:"campaign,omitempty"`
	// Label: Immutable. The label assigned to the campaign.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. Campaign label resource names
	// have the form:
	// `customers/{owner_customer_id}/campaignLabels/{campaign_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CampaignLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CampaignLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CartDataSalesView: Cart data sales view.
// Provides information about the products which were purchased if conversions
// with cart data is implemented. Performance metrics like revenue, gross
// profit, lead/cross-sell metrics etc. and Merchant Center attributes such as
// brand, category etc. are available for products defined in an inventory feed
// and sold as a result of Google ads. For purchases attributed to clicks on
// Shopping ads, dimensions of both clicked and sold products can be viewed
// together.
type GoogleAdsSearchads360V0Resources__CartDataSalesView struct {
	// ResourceName: Output only. The resource name of the Cart data sales view.
	// Cart data sales view resource names have the form:
	// `customers/{customer_id}/cartDataSalesView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CartDataSalesView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CartDataSalesView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Conversion: A conversion.
type GoogleAdsSearchads360V0Resources__Conversion struct {
	// AdId: Output only. Ad ID. A value of 0 indicates that the ad is
	// unattributed.
	AdId int64 `json:"adId,omitempty,string"`
	// AdvertiserConversionId: Output only. For offline conversions, this is an ID
	// provided by advertisers. If an advertiser doesn't specify such an ID, Search
	// Ads 360 generates one. For online conversions, this is equal to the id
	// column or the floodlight_order_id column depending on the advertiser's
	// Floodlight instructions.
	AdvertiserConversionId string `json:"advertiserConversionId,omitempty"`
	// AssetFieldType: Output only. Asset field type of the conversion event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DISCOVERY_CAROUSEL_CARD" - The asset is linked for use as a discovery
	// carousel card.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// AssetId: Output only. ID of the asset which was interacted with during the
	// conversion event.
	AssetId int64 `json:"assetId,omitempty,string"`
	// AttributionType: Output only. What the conversion is attributed to: Visit or
	// Keyword+Ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VISIT" - The conversion is attributed to a visit.
	//   "CRITERION_AD" - The conversion is attributed to a criterion and ad pair.
	AttributionType string `json:"attributionType,omitempty"`
	// ClickId: Output only. A unique string, for the visit that the conversion is
	// attributed to, that is passed to the landing page as the click id URL
	// parameter.
	ClickId string `json:"clickId,omitempty"`
	// ConversionDateTime: Output only. The timestamp of the conversion event.
	ConversionDateTime string `json:"conversionDateTime,omitempty"`
	// ConversionLastModifiedDateTime: Output only. The timestamp of the last time
	// the conversion was modified.
	ConversionLastModifiedDateTime string `json:"conversionLastModifiedDateTime,omitempty"`
	// ConversionQuantity: Output only. The quantity of items recorded by the
	// conversion, as determined by the qty url parameter. The advertiser is
	// responsible for dynamically populating the parameter (such as number of
	// items sold in the conversion), otherwise it defaults to 1.
	ConversionQuantity int64 `json:"conversionQuantity,omitempty,string"`
	// ConversionRevenueMicros: Output only. The adjusted revenue in micros for the
	// conversion event. This will always be in the currency of the serving
	// account.
	ConversionRevenueMicros int64 `json:"conversionRevenueMicros,omitempty,string"`
	// ConversionVisitDateTime: Output only. The timestamp of the visit that the
	// conversion is attributed to.
	ConversionVisitDateTime string `json:"conversionVisitDateTime,omitempty"`
	// CriterionId: Output only. Search Ads 360 criterion ID. A value of 0
	// indicates that the criterion is unattributed.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// FloodlightOrderId: Output only. The Floodlight order ID provided by the
	// advertiser for the conversion.
	FloodlightOrderId string `json:"floodlightOrderId,omitempty"`
	// FloodlightOriginalRevenue: Output only. The original, unchanged revenue
	// associated with the Floodlight event (in the currency of the current
	// report), before Floodlight currency instruction modifications.
	FloodlightOriginalRevenue int64 `json:"floodlightOriginalRevenue,omitempty,string"`
	// Id: Output only. The ID of the conversion
	Id int64 `json:"id,omitempty,string"`
	// MerchantId: Output only. The Search Ads 360 inventory account ID containing
	// the product that was clicked on. Search Ads 360 generates this ID when you
	// link an inventory account in Search Ads 360.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// ProductChannel: Output only. The sales channel of the product that was
	// clicked on: Online or Local.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductCountryCode: Output only. The country (ISO-3166-format) registered
	// for the inventory feed that contains the product clicked on.
	ProductCountryCode string `json:"productCountryCode,omitempty"`
	// ProductId: Output only. The ID of the product clicked on.
	ProductId string `json:"productId,omitempty"`
	// ProductLanguageCode: Output only. The language (ISO-639-1) that has been set
	// for the Merchant Center feed containing data about the product.
	ProductLanguageCode string `json:"productLanguageCode,omitempty"`
	// ProductStoreId: Output only. The store in the Local Inventory Ad that was
	// clicked on. This should match the store IDs used in your local products
	// feed.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ResourceName: Output only. The resource name of the conversion. Conversion
	// resource names have the form:
	// `customers/{customer_id}/conversions/{ad_group_id}~{criterion_id}~{ds_convers
	// ion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the conversion, either ENABLED or
	// REMOVED..
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The conversion is enabled.
	//   "REMOVED" - The conversion has been removed.
	Status string `json:"status,omitempty"`
	// VisitId: Output only. The Search Ads 360 visit ID that the conversion is
	// attributed to.
	VisitId int64 `json:"visitId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdId") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Conversion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Conversion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ConversionAction: A conversion action.
type GoogleAdsSearchads360V0Resources__ConversionAction struct {
	// AppId: App ID for an app conversion action.
	AppId string `json:"appId,omitempty"`
	// AttributionModelSettings: Settings related to this conversion action's
	// attribution model.
	AttributionModelSettings *GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings `json:"attributionModelSettings,omitempty"`
	// Category: The category of conversions reported for this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "LEAD" - Lead-generating action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	Category string `json:"category,omitempty"`
	// ClickThroughLookbackWindowDays: The maximum number of days that may elapse
	// between an interaction (for example, a click) and a conversion event.
	ClickThroughLookbackWindowDays int64 `json:"clickThroughLookbackWindowDays,omitempty,string"`
	// CreationTime: Output only. Timestamp of the Floodlight activity's creation,
	// formatted in ISO 8601.
	CreationTime string `json:"creationTime,omitempty"`
	// FloodlightSettings: Output only. Floodlight settings for Floodlight
	// conversion types.
	FloodlightSettings *GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings `json:"floodlightSettings,omitempty"`
	// Id: Output only. The ID of the conversion action.
	Id int64 `json:"id,omitempty,string"`
	// IncludeInClientAccountConversionsMetric: Whether this conversion action
	// should be included in the "client_account_conversions" metric.
	IncludeInClientAccountConversionsMetric bool `json:"includeInClientAccountConversionsMetric,omitempty"`
	// IncludeInConversionsMetric: Output only. Whether this conversion action
	// should be included in the "conversions" metric.
	IncludeInConversionsMetric bool `json:"includeInConversionsMetric,omitempty"`
	// Name: The name of the conversion action. This field is required and should
	// not be empty when creating new conversion actions.
	Name string `json:"name,omitempty"`
	// OwnerCustomer: Output only. The resource name of the conversion action owner
	// customer, or null if this is a system-defined conversion action.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// PrimaryForGoal: If a conversion action's primary_for_goal bit is false, the
	// conversion action is non-biddable for all campaigns regardless of their
	// customer conversion goal or campaign conversion goal. However, custom
	// conversion goals do not respect primary_for_goal, so if a campaign has a
	// custom conversion goal configured with a primary_for_goal = false conversion
	// action, that conversion action is still biddable. By default,
	// primary_for_goal will be true if not set. In V9, primary_for_goal can only
	// be set to false after creation through an 'update' operation because it's
	// not declared as optional.
	PrimaryForGoal bool `json:"primaryForGoal,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion action.
	// Conversion action resource names have the form:
	// `customers/{customer_id}/conversionActions/{conversion_action_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of this conversion action for conversion event accrual.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Conversions will be recorded.
	//   "REMOVED" - Conversions will not be recorded.
	//   "HIDDEN" - Conversions will not be recorded and the conversion action will
	// not appear in the UI.
	Status string `json:"status,omitempty"`
	// Type: Immutable. The type of this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_CALL" - Conversions that occur when a user clicks on an ad's call
	// extension.
	//   "CLICK_TO_CALL" - Conversions that occur when a user on a mobile device
	// clicks a phone number.
	//   "GOOGLE_PLAY_DOWNLOAD" - Conversions that occur when a user downloads a
	// mobile app from the Google Play Store.
	//   "GOOGLE_PLAY_IN_APP_PURCHASE" - Conversions that occur when a user makes a
	// purchase in an app through Android billing.
	//   "UPLOAD_CALLS" - Call conversions that are tracked by the advertiser and
	// uploaded.
	//   "UPLOAD_CLICKS" - Conversions that are tracked by the advertiser and
	// uploaded with attributed clicks.
	//   "WEBPAGE" - Conversions that occur on a webpage.
	//   "WEBSITE_CALL" - Conversions that occur when a user calls a
	// dynamically-generated phone number from an advertiser's website.
	//   "STORE_SALES_DIRECT_UPLOAD" - Store Sales conversion based on first-party
	// or third-party merchant data uploads. Only customers on the allowlist can
	// use store sales direct upload types.
	//   "STORE_SALES" - Store Sales conversion based on first-party or third-party
	// merchant data uploads and/or from in-store purchases using cards from
	// payment networks. Only customers on the allowlist can use store sales types.
	// Read only.
	//   "FIREBASE_ANDROID_FIRST_OPEN" - Android app first open conversions tracked
	// through Firebase.
	//   "FIREBASE_ANDROID_IN_APP_PURCHASE" - Android app in app purchase
	// conversions tracked through Firebase.
	//   "FIREBASE_ANDROID_CUSTOM" - Android app custom conversions tracked through
	// Firebase.
	//   "FIREBASE_IOS_FIRST_OPEN" - iOS app first open conversions tracked through
	// Firebase.
	//   "FIREBASE_IOS_IN_APP_PURCHASE" - iOS app in app purchase conversions
	// tracked through Firebase.
	//   "FIREBASE_IOS_CUSTOM" - iOS app custom conversions tracked through
	// Firebase.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN" - Android app first open
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE" - Android app in app
	// purchase conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM" - Android app custom
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN" - iOS app first open
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE" - iOS app in app purchase
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM" - iOS app custom conversions
	// tracked through Third Party App Analytics.
	//   "ANDROID_APP_PRE_REGISTRATION" - Conversions that occur when a user
	// pre-registers a mobile app from the Google Play Store. Read only.
	//   "ANDROID_INSTALLS_ALL_OTHER_APPS" - Conversions that track all Google Play
	// downloads which aren't tracked by an app-specific type. Read only.
	//   "FLOODLIGHT_ACTION" - Floodlight activity that counts the number of times
	// that users have visited a particular webpage after seeing or clicking on one
	// of an advertiser's ads. Read only.
	//   "FLOODLIGHT_TRANSACTION" - Floodlight activity that tracks the number of
	// sales made or the number of items purchased. Can also capture the total
	// value of each sale. Read only.
	//   "GOOGLE_HOSTED" - Conversions that track local actions from Google's
	// products and services after interacting with an ad. Read only.
	//   "LEAD_FORM_SUBMIT" - Conversions reported when a user submits a lead form.
	// Read only.
	//   "SALESFORCE" - Deprecated: The Salesforce integration will be going away
	// and replaced with an improved way to import your conversions from
	// Salesforce. - see https://support.google.com/google-ads/answer/14728349
	//   "SEARCH_ADS_360" - Conversions imported from Search Ads 360 Floodlight
	// data. Read only.
	//   "SMART_CAMPAIGN_AD_CLICKS_TO_CALL" - Call conversions that occur on Smart
	// campaign Ads without call tracking setup, using Smart campaign custom
	// criteria. Read only.
	//   "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL" - The user clicks on a call element
	// within Google Maps. Smart campaign only. Read only.
	//   "SMART_CAMPAIGN_MAP_DIRECTIONS" - The user requests directions to a
	// business location within Google Maps. Smart campaign only. Read only.
	//   "SMART_CAMPAIGN_TRACKED_CALLS" - Call conversions that occur on Smart
	// campaign Ads with call tracking setup, using Smart campaign custom criteria.
	// Read only.
	//   "STORE_VISITS" - Conversions that occur when a user visits an advertiser's
	// retail store. Read only.
	//   "WEBPAGE_CODELESS" - Conversions created from website events (such as form
	// submissions or page loads), that don't use individually coded event
	// snippets. Read only.
	//   "UNIVERSAL_ANALYTICS_GOAL" - Conversions that come from linked Universal
	// Analytics goals.
	//   "UNIVERSAL_ANALYTICS_TRANSACTION" - Conversions that come from linked
	// Universal Analytics transactions.
	//   "GOOGLE_ANALYTICS_4_CUSTOM" - Conversions that come from linked Google
	// Analytics 4 custom event conversions.
	//   "GOOGLE_ANALYTICS_4_PURCHASE" - Conversions that come from linked Google
	// Analytics 4 purchase conversions.
	Type string `json:"type,omitempty"`
	// ValueSettings: Settings related to the value for conversion events
	// associated with this conversion action.
	ValueSettings *GoogleAdsSearchads360V0ResourcesConversionActionValueSettings `json:"valueSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ConversionAction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ConversionAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ConversionCustomVariable: A conversion
// custom variable. See "About custom Floodlight metrics and dimensions in the
// new Search Ads 360" at https://support.google.com/sa360/answer/13567857
type GoogleAdsSearchads360V0Resources__ConversionCustomVariable struct {
	// Cardinality: Output only. Cardinality of the conversion custom variable.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_ALL_LIMITS" - The conversion custom variable has cardinality below
	// all limits. The variable can be used for segmentation, and stats can accrue
	// for new values if the variable is enabled.
	//   "EXCEEDS_SEGMENTATION_LIMIT_BUT_NOT_STATS_LIMIT" - The conversion custom
	// variable has cardinality that exceeds the segmentation limit, but does not
	// exceed the stats limit. Segmentation will be disabled, but stats can accrue
	// for new values if the variable is enabled.
	//   "APPROACHES_STATS_LIMIT" - The conversion custom variable has exceeded the
	// segmentation limits, and is approaching the stats limits (> 90%).
	// Segmentation will be disabled, but stats can accrue for new values if the
	// variable is enabled.
	//   "EXCEEDS_STATS_LIMIT" - The conversion custom variable has exceeded both
	// the segmentation limits and stats limits. Segmentation will be disabled, and
	// stats for enabled variables can accrue only if the existing values do not
	// increase the cardinality of the variable any further.
	Cardinality string `json:"cardinality,omitempty"`
	// CustomColumnIds: Output only. The IDs of custom columns that use this
	// conversion custom variable.
	CustomColumnIds googleapi.Int64s `json:"customColumnIds,omitempty"`
	// Family: Output only. Family of the conversion custom variable.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STANDARD" - The standard conversion custom variable. Customers are
	// required to activate before use.
	//   "FLOODLIGHT" - The conversion custom variable imported from a custom
	// floodlight variable.
	Family string `json:"family,omitempty"`
	// FloodlightConversionCustomVariableInfo: Output only. Fields for Search Ads
	// 360 floodlight conversion custom variables.
	FloodlightConversionCustomVariableInfo *GoogleAdsSearchads360V0ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo `json:"floodlightConversionCustomVariableInfo,omitempty"`
	// Id: Output only. The ID of the conversion custom variable.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. The name of the conversion custom variable. Name should be
	// unique. The maximum length of name is 100 characters. There should not be
	// any extra spaces before and after.
	Name string `json:"name,omitempty"`
	// OwnerCustomer: Output only. The resource name of the customer that owns the
	// conversion custom variable.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion custom
	// variable. Conversion custom variable resource names have the form:
	// `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variabl
	// e_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the conversion custom variable for conversion event
	// accrual.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVATION_NEEDED" - The conversion custom variable is pending activation
	// and will not accrue stats until set to ENABLED. This status can't be used in
	// CREATE and UPDATE requests.
	//   "ENABLED" - The conversion custom variable is enabled and will accrue
	// stats.
	//   "PAUSED" - The conversion custom variable is paused and will not accrue
	// stats until set to ENABLED again.
	Status string `json:"status,omitempty"`
	// Tag: Required. Immutable. The tag of the conversion custom variable. Tag
	// should be unique and consist of a "u" character directly followed with a
	// number less than ormequal to 100. For example: "u4".
	Tag string `json:"tag,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cardinality") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cardinality") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ConversionCustomVariable) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ConversionCustomVariable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ConversionTrackingSetting: A collection of
// customer-wide settings related to Search Ads 360 Conversion Tracking.
type GoogleAdsSearchads360V0Resources__ConversionTrackingSetting struct {
	// AcceptedCustomerDataTerms: Output only. Whether the customer has accepted
	// customer data terms. If using cross-account conversion tracking, this value
	// is inherited from the manager. This field is read-only. For more
	// information, see https://support.google.com/adspolicy/answer/7475709.
	AcceptedCustomerDataTerms bool `json:"acceptedCustomerDataTerms,omitempty"`
	// ConversionTrackingId: Output only. The conversion tracking id used for this
	// account. This id doesn't indicate whether the customer uses conversion
	// tracking (conversion_tracking_status does). This field is read-only.
	ConversionTrackingId int64 `json:"conversionTrackingId,omitempty,string"`
	// ConversionTrackingStatus: Output only. Conversion tracking status. It
	// indicates whether the customer is using conversion tracking, and who is the
	// conversion tracking owner of this customer. If this customer is using
	// cross-account conversion tracking, the value returned will differ based on
	// the `login-customer-id` of the request.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOT_CONVERSION_TRACKED" - Customer does not use any conversion tracking.
	//   "CONVERSION_TRACKING_MANAGED_BY_SELF" - The conversion actions are created
	// and managed by this customer.
	//   "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER" - The conversion actions are
	// created and managed by the manager specified in the request's
	// `login-customer-id`.
	//   "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" - The conversion actions
	// are created and managed by a manager different from the customer or manager
	// specified in the request's `login-customer-id`.
	ConversionTrackingStatus string `json:"conversionTrackingStatus,omitempty"`
	// CrossAccountConversionTrackingId: Output only. The conversion tracking id of
	// the customer's manager. This is set when the customer is opted into
	// cross-account conversion tracking, and it overrides conversion_tracking_id.
	CrossAccountConversionTrackingId int64 `json:"crossAccountConversionTrackingId,omitempty,string"`
	// EnhancedConversionsForLeadsEnabled: Output only. Whether the customer is
	// opted-in for enhanced conversions for leads. If using cross-account
	// conversion tracking, this value is inherited from the manager. This field is
	// read-only.
	EnhancedConversionsForLeadsEnabled bool `json:"enhancedConversionsForLeadsEnabled,omitempty"`
	// GoogleAdsConversionCustomer: Output only. The resource name of the customer
	// where conversions are created and managed. This field is read-only.
	GoogleAdsConversionCustomer string `json:"googleAdsConversionCustomer,omitempty"`
	// GoogleAdsCrossAccountConversionTrackingId: Output only. The conversion
	// tracking id of the customer's manager. This is set when the customer is
	// opted into conversion tracking, and it overrides conversion_tracking_id.
	// This field can only be managed through the Google Ads UI. This field is
	// read-only.
	GoogleAdsCrossAccountConversionTrackingId int64 `json:"googleAdsCrossAccountConversionTrackingId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AcceptedCustomerDataTerms")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptedCustomerDataTerms") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ConversionTrackingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ConversionTrackingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CustomColumn: A custom column. See Search
// Ads 360 custom column at https://support.google.com/sa360/answer/9633916
type GoogleAdsSearchads360V0Resources__CustomColumn struct {
	// Description: Output only. User-defined description of the custom column.
	Description string `json:"description,omitempty"`
	// Id: Output only. ID of the custom column.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. User-defined name of the custom column.
	Name string `json:"name,omitempty"`
	// Queryable: Output only. True when the custom column is available to be used
	// in the query of SearchAds360Service.Search and
	// SearchAds360Service.SearchStream.
	Queryable bool `json:"queryable,omitempty"`
	// ReferencedSystemColumns: Output only. The list of the referenced system
	// columns of this custom column. For example, A custom column "sum of
	// impressions and clicks" has referenced system columns of {"metrics.clicks",
	// "metrics.impressions"}.
	ReferencedSystemColumns []string `json:"referencedSystemColumns,omitempty"`
	// ReferencesAttributes: Output only. True when the custom column is referring
	// to one or more attributes.
	ReferencesAttributes bool `json:"referencesAttributes,omitempty"`
	// ReferencesMetrics: Output only. True when the custom column is referring to
	// one or more metrics.
	ReferencesMetrics bool `json:"referencesMetrics,omitempty"`
	// RenderType: Output only. How the result value of the custom column should be
	// interpreted.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown.
	//   "NUMBER" - The custom column is a raw numerical value. See value_type
	// field to determine if it is an integer or a double.
	//   "PERCENT" - The custom column should be multiplied by 100 to retrieve the
	// percentage value.
	//   "MONEY" - The custom column value is a monetary value and is in micros.
	//   "STRING" - The custom column value is a string.
	//   "BOOLEAN" - The custom column value is a boolean.
	//   "DATE" - The custom column value is a date represented as an integer in
	// YYYYMMDD format.
	RenderType string `json:"renderType,omitempty"`
	// ResourceName: Immutable. The resource name of the custom column. Custom
	// column resource names have the form:
	// `customers/{customer_id}/customColumns/{custom_column_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ValueType: Output only. The type of the result value of the custom column.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown.
	//   "STRING" - The custom column value is a string.
	//   "INT64" - The custom column value is an int64 number.
	//   "DOUBLE" - The custom column value is a double number.
	//   "BOOLEAN" - The custom column value is a boolean.
	//   "DATE" - The custom column value is a date, in YYYYMMDD format.
	ValueType string `json:"valueType,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CustomColumn) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CustomColumn
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Customer: A customer.
type GoogleAdsSearchads360V0Resources__Customer struct {
	// AccountLevel: Output only. The account level of the customer: Manager,
	// Sub-manager, Associate manager, Service account.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLIENT_ACCOUNT_FACEBOOK" - Client account (Facebook)
	//   "CLIENT_ACCOUNT_GOOGLE_ADS" - Client account (Google Ads)
	//   "CLIENT_ACCOUNT_MICROSOFT" - Client account (Microsoft)
	//   "CLIENT_ACCOUNT_YAHOO_JAPAN" - Client account (Yahoo Japan)
	//   "CLIENT_ACCOUNT_ENGINE_TRACK" - Client account (Engine Track)
	//   "MANAGER" - Top-level manager.
	//   "SUB_MANAGER" - Sub manager.
	//   "ASSOCIATE_MANAGER" - Associate manager.
	AccountLevel string `json:"accountLevel,omitempty"`
	// AccountStatus: Output only. Account status, for example, Enabled, Paused,
	// Removed, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Default value.
	//   "UNKNOWN" - Unknown value.
	//   "ENABLED" - Account is able to serve ads.
	//   "PAUSED" - Account is deactivated by the user.
	//   "SUSPENDED" - Account is deactivated by an internal process.
	//   "REMOVED" - Account is irrevocably deactivated.
	//   "DRAFT" - Account is still in the process of setup, not ENABLED yet.
	AccountStatus string `json:"accountStatus,omitempty"`
	// AccountType: Output only. Engine account type, for example, Google Ads,
	// Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BAIDU" - Baidu account.
	//   "ENGINE_TRACK" - Engine track account.
	//   "FACEBOOK" - Facebook account.
	//   "FACEBOOK_GATEWAY" - Facebook account managed through gateway.
	//   "GOOGLE_ADS" - Google Ads account.
	//   "MICROSOFT" - Microsoft Advertising account.
	//   "SEARCH_ADS_360" - Search Ads 360 manager account.
	//   "YAHOO_JAPAN" - Yahoo Japan account.
	AccountType string `json:"accountType,omitempty"`
	// AssociateManagerDescriptiveName: Output only. The descriptive name of the
	// associate manager.
	AssociateManagerDescriptiveName string `json:"associateManagerDescriptiveName,omitempty"`
	// AssociateManagerId: Output only. The customer ID of the associate manager. A
	// 0 value indicates that the customer has no SA360 associate manager.
	AssociateManagerId int64 `json:"associateManagerId,omitempty,string"`
	// AutoTaggingEnabled: Whether auto-tagging is enabled for the customer.
	AutoTaggingEnabled bool `json:"autoTaggingEnabled,omitempty"`
	// ConversionTrackingSetting: Output only. Conversion tracking setting for a
	// customer.
	ConversionTrackingSetting *GoogleAdsSearchads360V0Resources__ConversionTrackingSetting `json:"conversionTrackingSetting,omitempty"`
	// CreationTime: Output only. The timestamp when this customer was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// CurrencyCode: Immutable. The currency in which the account operates. A
	// subset of the currency codes from the ISO 4217 standard is supported.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// DescriptiveName: Optional, non-unique descriptive name of the customer.
	DescriptiveName string `json:"descriptiveName,omitempty"`
	// DoubleClickCampaignManagerSetting: Output only. DoubleClick Campaign Manager
	// (DCM) setting for a manager customer.
	DoubleClickCampaignManagerSetting *GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting `json:"doubleClickCampaignManagerSetting,omitempty"`
	// EngineId: Output only. ID of the account in the external engine account.
	EngineId string `json:"engineId,omitempty"`
	// FinalUrlSuffix: The URL template for appending params to the final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// Id: Output only. The ID of the customer.
	Id int64 `json:"id,omitempty,string"`
	// LastModifiedTime: Output only. The datetime when this customer was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// Manager: Output only. Whether the customer is a manager.
	Manager bool `json:"manager,omitempty"`
	// ManagerDescriptiveName: Output only. The descriptive name of the manager.
	ManagerDescriptiveName string `json:"managerDescriptiveName,omitempty"`
	// ManagerId: Output only. The customer ID of the manager. A 0 value indicates
	// that the customer has no SA360 manager.
	ManagerId int64 `json:"managerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the customer. Customer
	// resource names have the form: `customers/{customer_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customer.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Indicates an active account able to serve ads.
	//   "CANCELED" - Indicates a canceled account unable to serve ads. Can be
	// reactivated by an admin user.
	//   "SUSPENDED" - Indicates a suspended account unable to serve ads. May only
	// be activated by Google support.
	//   "CLOSED" - Indicates a closed account unable to serve ads. Test account
	// will also have CLOSED status. Status is permanent and may not be reopened.
	Status string `json:"status,omitempty"`
	// SubManagerDescriptiveName: Output only. The descriptive name of the sub
	// manager.
	SubManagerDescriptiveName string `json:"subManagerDescriptiveName,omitempty"`
	// SubManagerId: Output only. The customer ID of the sub manager. A 0 value
	// indicates that the customer has no sub SA360 manager.
	SubManagerId int64 `json:"subManagerId,omitempty,string"`
	// TimeZone: Immutable. The local timezone ID of the customer.
	TimeZone string `json:"timeZone,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL out of
	// parameters.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountLevel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountLevel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Customer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Customer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CustomerAsset: A link between a customer
// and an asset.
type GoogleAdsSearchads360V0Resources__CustomerAsset struct {
	// Asset: Required. Immutable. The asset which is linked to the customer.
	Asset string `json:"asset,omitempty"`
	// ResourceName: Immutable. The resource name of the customer asset.
	// CustomerAsset resource names have the form:
	// `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Status of the customer asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CustomerAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CustomerAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CustomerAssetSet: CustomerAssetSet is the
// linkage between a customer and an asset set. Adding a CustomerAssetSet links
// an asset set with a customer.
type GoogleAdsSearchads360V0Resources__CustomerAssetSet struct {
	// AssetSet: Immutable. The asset set which is linked to the customer.
	AssetSet string `json:"assetSet,omitempty"`
	// Customer: Immutable. The customer to which this asset set is linked.
	Customer string `json:"customer,omitempty"`
	// ResourceName: Immutable. The resource name of the customer asset set. Asset
	// set asset resource names have the form:
	// `customers/{customer_id}/customerAssetSets/{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customer asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CustomerAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CustomerAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CustomerClient: A link between the given
// customer and a client customer. CustomerClients only exist for manager
// customers. All direct and indirect client customers are included, as well as
// the manager itself.
type GoogleAdsSearchads360V0Resources__CustomerClient struct {
	// AppliedLabels: Output only. The resource names of the labels owned by the
	// requesting customer that are applied to the client customer. Label resource
	// names have the form: `customers/{customer_id}/labels/{label_id}`
	AppliedLabels []string `json:"appliedLabels,omitempty"`
	// ClientCustomer: Output only. The resource name of the client-customer which
	// is linked to the given customer. Read only.
	ClientCustomer string `json:"clientCustomer,omitempty"`
	// CurrencyCode: Output only. Currency code (for example, 'USD', 'EUR') for the
	// client. Read only.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// DescriptiveName: Output only. Descriptive name for the client. Read only.
	DescriptiveName string `json:"descriptiveName,omitempty"`
	// Hidden: Output only. Specifies whether this is a hidden account. Read only.
	Hidden bool `json:"hidden,omitempty"`
	// Id: Output only. The ID of the client customer. Read only.
	Id int64 `json:"id,omitempty,string"`
	// Level: Output only. Distance between given customer and client. For self
	// link, the level value will be 0. Read only.
	Level int64 `json:"level,omitempty,string"`
	// Manager: Output only. Identifies if the client is a manager. Read only.
	Manager bool `json:"manager,omitempty"`
	// ResourceName: Output only. The resource name of the customer client.
	// CustomerClient resource names have the form:
	// `customers/{customer_id}/customerClients/{client_customer_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the client customer. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Indicates an active account able to serve ads.
	//   "CANCELED" - Indicates a canceled account unable to serve ads. Can be
	// reactivated by an admin user.
	//   "SUSPENDED" - Indicates a suspended account unable to serve ads. May only
	// be activated by Google support.
	//   "CLOSED" - Indicates a closed account unable to serve ads. Test account
	// will also have CLOSED status. Status is permanent and may not be reopened.
	Status string `json:"status,omitempty"`
	// TestAccount: Output only. Identifies if the client is a test account. Read
	// only.
	TestAccount bool `json:"testAccount,omitempty"`
	// TimeZone: Output only. Common Locale Data Repository (CLDR) string
	// representation of the time zone of the client, for example,
	// America/Los_Angeles. Read only.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppliedLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppliedLabels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CustomerClient) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CustomerClient
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__CustomerManagerLink: Represents
// customer-manager link relationship.
type GoogleAdsSearchads360V0Resources__CustomerManagerLink struct {
	// ManagerCustomer: Output only. The manager customer linked to the customer.
	ManagerCustomer string `json:"managerCustomer,omitempty"`
	// ManagerLinkId: Output only. ID of the customer-manager link. This field is
	// read only.
	ManagerLinkId int64 `json:"managerLinkId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. CustomerManagerLink resource
	// names have the form:
	// `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_
	// link_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartTime: Output only. The timestamp when the CustomerManagerLink was
	// created. The timestamp is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss" format.
	StartTime string `json:"startTime,omitempty"`
	// Status: Status of the link between the customer and the manager.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVE" - Indicates current in-effect relationship
	//   "INACTIVE" - Indicates terminated relationship
	//   "PENDING" - Indicates relationship has been requested by manager, but the
	// client hasn't accepted yet.
	//   "REFUSED" - Relationship was requested by the manager, but the client has
	// refused.
	//   "CANCELED" - Indicates relationship has been requested by manager, but
	// manager canceled it.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManagerCustomer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagerCustomer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__CustomerManagerLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__CustomerManagerLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting:
// DoubleClick Campaign Manager (DCM) setting for a manager customer.
type GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting struct {
	// AdvertiserId: Output only. ID of the Campaign Manager advertiser associated
	// with this customer.
	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
	// NetworkId: Output only. ID of the Campaign Manager network associated with
	// this customer.
	NetworkId int64 `json:"networkId,omitempty,string"`
	// TimeZone: Output only. Time zone of the Campaign Manager network associated
	// with this customer in IANA Time Zone Database format, such as
	// America/New_York.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	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. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView: A dynamic
// search ads search term view.
type GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView struct {
	// LandingPage: Output only. The dynamically selected landing page URL of the
	// impression. This field is read-only.
	LandingPage string `json:"landingPage,omitempty"`
	// ResourceName: Output only. The resource name of the dynamic search ads
	// search term view. Dynamic search ads search term view resource names have
	// the form:
	// `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{searc
	// h_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_u
	// rl_fingerprint}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LandingPage") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LandingPage") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__GenderView: A gender view. The gender_view
// resource reflects the effective serving state, rather than what criteria
// were added. An ad group without gender criteria by default shows to all
// genders, so all genders appear in gender_view with stats.
type GoogleAdsSearchads360V0Resources__GenderView struct {
	// ResourceName: Output only. The resource name of the gender view. Gender view
	// resource names have the form:
	// `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__GenderView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__GenderView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__GeoTargetConstant: A geo target constant.
type GoogleAdsSearchads360V0Resources__GeoTargetConstant struct {
	// CanonicalName: Output only. The fully qualified English name, consisting of
	// the target's name and that of its parent and country.
	CanonicalName string `json:"canonicalName,omitempty"`
	// CountryCode: Output only. The ISO-3166-1 alpha-2 country code that is
	// associated with the target.
	CountryCode string `json:"countryCode,omitempty"`
	// Id: Output only. The ID of the geo target constant.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. Geo target constant English name.
	Name string `json:"name,omitempty"`
	// ParentGeoTarget: Output only. The resource name of the parent geo target
	// constant. Geo target constant resource names have the form:
	// `geoTargetConstants/{parent_geo_target_constant_id}`
	ParentGeoTarget string `json:"parentGeoTarget,omitempty"`
	// ResourceName: Output only. The resource name of the geo target constant. Geo
	// target constant resource names have the form:
	// `geoTargetConstants/{geo_target_constant_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Geo target constant status.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The geo target constant is valid.
	//   "REMOVAL_PLANNED" - The geo target constant is obsolete and will be
	// removed.
	Status string `json:"status,omitempty"`
	// TargetType: Output only. Geo target constant target type.
	TargetType string `json:"targetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__GeoTargetConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__GeoTargetConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__KeywordView: A keyword view.
type GoogleAdsSearchads360V0Resources__KeywordView struct {
	// ResourceName: Output only. The resource name of the keyword view. Keyword
	// view resource names have the form:
	// `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__KeywordView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__KeywordView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Label: A label.
type GoogleAdsSearchads360V0Resources__Label struct {
	// Id: Output only. ID of the label. Read only.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the label. This field is required and should not be empty
	// when creating a new label. The length of this string should be between 1 and
	// 80, inclusive.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. Name of the resource. Label resource names have the
	// form: `customers/{owner_customer_id}/labels/{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the label. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Label is enabled.
	//   "REMOVED" - Label is removed.
	Status string `json:"status,omitempty"`
	// TextLabel: A type of label displaying text on a colored background.
	TextLabel *GoogleAdsSearchads360V0Common__TextLabel `json:"textLabel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Label) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Label
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__LanguageConstant: A language.
type GoogleAdsSearchads360V0Resources__LanguageConstant struct {
	// Code: Output only. The language code, for example, "en_US", "en_AU", "es",
	// "fr", etc.
	Code string `json:"code,omitempty"`
	// Id: Output only. The ID of the language constant.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. The full name of the language in English, for example,
	// "English (US)", "Spanish", etc.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the language constant.
	// Language constant resource names have the form:
	// `languageConstants/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Targetable: Output only. Whether the language is targetable.
	Targetable bool `json:"targetable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__LanguageConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__LanguageConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension: Listing
// dimensions for the asset group listing group filter.
type GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension struct {
	// ProductBiddingCategory: Bidding category of a product offer.
	ProductBiddingCategory *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBiddingCategory `json:"productBiddingCategory,omitempty"`
	// ProductBrand: Brand of a product offer.
	ProductBrand *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductBrand `json:"productBrand,omitempty"`
	// ProductChannel: Locality of a product offer.
	ProductChannel *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductChannel `json:"productChannel,omitempty"`
	// ProductCondition: Condition of a product offer.
	ProductCondition *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCondition `json:"productCondition,omitempty"`
	// ProductCustomAttribute: Custom attribute of a product offer.
	ProductCustomAttribute *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductCustomAttribute `json:"productCustomAttribute,omitempty"`
	// ProductItemId: Item id of a product offer.
	ProductItemId *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductItemId `json:"productItemId,omitempty"`
	// ProductType: Type of a product offer.
	ProductType *GoogleAdsSearchads360V0ResourcesListingGroupFilterDimensionProductType `json:"productType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductBiddingCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductBiddingCategory") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath: The path
// defining of dimensions defining a listing group filter.
type GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath struct {
	// Dimensions: Output only. The complete path of dimensions through the listing
	// group filter hierarchy (excluding the root node) to this listing group
	// filter.
	Dimensions []*GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension `json:"dimensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__LocationView: A location view summarizes
// the performance of campaigns by a Location criterion.
type GoogleAdsSearchads360V0Resources__LocationView struct {
	// ResourceName: Output only. The resource name of the location view. Location
	// view resource names have the form:
	// `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__LocationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__LocationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant: A Product
// Bidding Category.
type GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant struct {
	// CountryCode: Output only. Two-letter upper-case country code of the product
	// bidding category.
	CountryCode string `json:"countryCode,omitempty"`
	// Id: Output only. ID of the product bidding category. This ID is equivalent
	// to the google_product_category ID as described in this article:
	// https://support.google.com/merchants/answer/6324436.
	Id int64 `json:"id,omitempty,string"`
	// LanguageCode: Output only. Language code of the product bidding category.
	LanguageCode string `json:"languageCode,omitempty"`
	// Level: Output only. Level of the product bidding category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// LocalizedName: Output only. Display value of the product bidding category
	// localized according to language_code.
	LocalizedName string `json:"localizedName,omitempty"`
	// ProductBiddingCategoryConstantParent: Output only. Resource name of the
	// parent product bidding category.
	ProductBiddingCategoryConstantParent string `json:"productBiddingCategoryConstantParent,omitempty"`
	// ResourceName: Output only. The resource name of the product bidding
	// category. Product bidding category resource names have the form:
	// `productBiddingCategoryConstants/{country_code}~{level}~{id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the product bidding category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVE" - The category is active and can be used for bidding.
	//   "OBSOLETE" - The category is obsolete. Used only for reporting purposes.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ProductGroupView: A product group view.
type GoogleAdsSearchads360V0Resources__ProductGroupView struct {
	// ResourceName: Output only. The resource name of the product group view.
	// Product group view resource names have the form:
	// `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ProductGroupView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ProductGroupView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__SearchAds360Field: A field or resource
// (artifact) used by SearchAds360Service.
type GoogleAdsSearchads360V0Resources__SearchAds360Field struct {
	// AttributeResources: Output only. The names of all resources that are
	// selectable with the described artifact. Fields from these resources do not
	// segment metrics when included in search queries. This field is only set for
	// artifacts whose category is RESOURCE.
	AttributeResources []string `json:"attributeResources,omitempty"`
	// Category: Output only. The category of the artifact.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified
	//   "UNKNOWN" - Unknown
	//   "RESOURCE" - The described artifact is a resource.
	//   "ATTRIBUTE" - The described artifact is a field and is an attribute of a
	// resource. Including a resource attribute field in a query may segment the
	// query if the resource to which it is attributed segments the resource found
	// in the FROM clause.
	//   "SEGMENT" - The described artifact is a field and always segments search
	// queries.
	//   "METRIC" - The described artifact is a field and is a metric. It never
	// segments search queries.
	Category string `json:"category,omitempty"`
	// DataType: Output only. This field determines the operators that can be used
	// with the artifact in WHERE clauses.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified
	//   "UNKNOWN" - Unknown
	//   "BOOLEAN" - Maps to google.protobuf.BoolValue Applicable operators: =, !=
	//   "DATE" - Maps to google.protobuf.StringValue. It can be compared using the
	// set of operators specific to dates however. Applicable operators: =, <, >,
	// <=, >=, BETWEEN, DURING, and IN
	//   "DOUBLE" - Maps to google.protobuf.DoubleValue Applicable operators: =,
	// !=, <, >, IN, NOT IN
	//   "ENUM" - Maps to an enum. It's specific definition can be found at
	// type_url. Applicable operators: =, !=, IN, NOT IN
	//   "FLOAT" - Maps to google.protobuf.FloatValue Applicable operators: =, !=,
	// <, >, IN, NOT IN
	//   "INT32" - Maps to google.protobuf.Int32Value Applicable operators: =, !=,
	// <, >, <=, >=, BETWEEN, IN, NOT IN
	//   "INT64" - Maps to google.protobuf.Int64Value Applicable operators: =, !=,
	// <, >, <=, >=, BETWEEN, IN, NOT IN
	//   "MESSAGE" - Maps to a protocol buffer message type. The data type's
	// details can be found in type_url. No operators work with MESSAGE fields.
	//   "RESOURCE_NAME" - Maps to google.protobuf.StringValue. Represents the
	// resource name (unique id) of a resource or one of its foreign keys. No
	// operators work with RESOURCE_NAME fields.
	//   "STRING" - Maps to google.protobuf.StringValue. Applicable operators: =,
	// !=, LIKE, NOT LIKE, IN, NOT IN
	//   "UINT64" - Maps to google.protobuf.UInt64Value Applicable operators: =,
	// !=, <, >, <=, >=, BETWEEN, IN, NOT IN
	DataType string `json:"dataType,omitempty"`
	// EnumValues: Output only. Values the artifact can assume if it is a field of
	// type ENUM. This field is only set for artifacts of category SEGMENT or
	// ATTRIBUTE.
	EnumValues []string `json:"enumValues,omitempty"`
	// Filterable: Output only. Whether the artifact can be used in a WHERE clause
	// in search queries.
	Filterable bool `json:"filterable,omitempty"`
	// IsRepeated: Output only. Whether the field artifact is repeated.
	IsRepeated bool `json:"isRepeated,omitempty"`
	// Metrics: Output only. This field lists the names of all metrics that are
	// selectable with the described artifact when it is used in the FROM clause.
	// It is only set for artifacts whose category is RESOURCE.
	Metrics []string `json:"metrics,omitempty"`
	// Name: Output only. The name of the artifact.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the artifact. Artifact
	// resource names have the form: `SearchAds360Fields/{name}`
	ResourceName string `json:"resourceName,omitempty"`
	// Segments: Output only. This field lists the names of all artifacts, whether
	// a segment or another resource, that segment metrics when included in search
	// queries and when the described artifact is used in the FROM clause. It is
	// only set for artifacts whose category is RESOURCE.
	Segments []string `json:"segments,omitempty"`
	// Selectable: Output only. Whether the artifact can be used in a SELECT clause
	// in search queries.
	Selectable bool `json:"selectable,omitempty"`
	// SelectableWith: Output only. The names of all resources, segments, and
	// metrics that are selectable with the described artifact.
	SelectableWith []string `json:"selectableWith,omitempty"`
	// Sortable: Output only. Whether the artifact can be used in a ORDER BY clause
	// in search queries.
	Sortable bool `json:"sortable,omitempty"`
	// TypeUrl: Output only. The URL of proto describing the artifact's data type.
	TypeUrl string `json:"typeUrl,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AttributeResources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeResources") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__SearchAds360Field) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__SearchAds360Field
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__ShoppingPerformanceView: Shopping
// performance view. Provides Shopping campaign and Performance Max campaign
// statistics aggregated at several product dimension levels. Product dimension
// values from Merchant Center such as brand, category, custom attributes,
// product condition, and product type will reflect the state of each dimension
// as of the date and time when the corresponding event was recorded. The
// number of impressions and clicks that `shopping_performance_view` returns
// stats for may be different from campaign reports.
// `shopping_performance_view` shows impressions and clicks on products
// appearing in ads, while campaign reports show impressions and clicks on the
// ads themselves. Depending on the format, an ad can show from zero to several
// products, so the numbers may not match. In Search Ads 360 UI, you can query
// impressions and clicks of products appearing in ads by selecting a column
// from "Product attributes" in the report editor. For example, selecting the
// "Brand" column is equivalent to selecting `segments.product_brand`.
type GoogleAdsSearchads360V0Resources__ShoppingPerformanceView struct {
	// ResourceName: Output only. The resource name of the Shopping performance
	// view. Shopping performance view resource names have the form:
	// `customers/{customer_id}/shoppingPerformanceView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__ShoppingPerformanceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__ShoppingPerformanceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__UserList: A user list. This is a list of
// users a customer may target. The unique key of a user list consists of the
// following fields: `id`. Note that the `name` must also be unique for user
// lists owned by a given customer, except in some cases where `access_reason`
// is set to `SHARED`. Violating the unique name constraint produces error:
// `UserListError.INVALID_NAME`.
type GoogleAdsSearchads360V0Resources__UserList struct {
	// Id: Output only. Id of the user list.
	Id int64 `json:"id,omitempty,string"`
	// Name: Name of this user list. Unique per user list, except in some cases
	// where a user list of the same name has `access_reason` set to `SHARED`.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the user list. User list
	// resource names have the form:
	// `customers/{customer_id}/userLists/{user_list_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Output only. Type of this list. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "REMARKETING" - UserList represented as a collection of conversion types.
	//   "LOGICAL" - UserList represented as a combination of other user
	// lists/interests.
	//   "EXTERNAL_REMARKETING" - UserList created in the Google Ad Manager
	// platform.
	//   "RULE_BASED" - UserList associated with a rule.
	//   "SIMILAR" - UserList with users similar to users of another UserList.
	//   "CRM_BASED" - UserList of first-party CRM data provided by advertiser in
	// the form of emails or other formats.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__UserList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__UserList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__UserLocationView: A user location view.
// User Location View includes all metrics aggregated at the country level, one
// row per country. It reports metrics at the actual physical location of the
// user by targeted or not targeted location. If other segment fields are used,
// you may get more than one row per country.
type GoogleAdsSearchads360V0Resources__UserLocationView struct {
	// CountryCriterionId: Output only. Criterion Id for the country.
	CountryCriterionId int64 `json:"countryCriterionId,omitempty,string"`
	// ResourceName: Output only. The resource name of the user location view.
	// UserLocation view resource names have the form:
	// `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_
	// location}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetingLocation: Output only. Indicates whether location was targeted or
	// not.
	TargetingLocation bool `json:"targetingLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCriterionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCriterionId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__UserLocationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__UserLocationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__Visit: A visit.
type GoogleAdsSearchads360V0Resources__Visit struct {
	// AdId: Output only. Ad ID. A value of 0 indicates that the ad is
	// unattributed.
	AdId int64 `json:"adId,omitempty,string"`
	// AssetFieldType: Output only. Asset field type of the visit event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DISCOVERY_CAROUSEL_CARD" - The asset is linked for use as a discovery
	// carousel card.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// AssetId: Output only. ID of the asset which was interacted with during the
	// visit event.
	AssetId int64 `json:"assetId,omitempty,string"`
	// ClickId: Output only. A unique string for each visit that is passed to the
	// landing page as the click id URL parameter.
	ClickId string `json:"clickId,omitempty"`
	// CriterionId: Output only. Search Ads 360 keyword ID. A value of 0 indicates
	// that the keyword is unattributed.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Id: Output only. The ID of the visit.
	Id int64 `json:"id,omitempty,string"`
	// MerchantId: Output only. The Search Ads 360 inventory account ID containing
	// the product that was clicked on. Search Ads 360 generates this ID when you
	// link an inventory account in Search Ads 360.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// ProductChannel: Output only. The sales channel of the product that was
	// clicked on: Online or Local.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductCountryCode: Output only. The country (ISO-3166 format) registered
	// for the inventory feed that contains the product clicked on.
	ProductCountryCode string `json:"productCountryCode,omitempty"`
	// ProductId: Output only. The ID of the product clicked on.
	ProductId string `json:"productId,omitempty"`
	// ProductLanguageCode: Output only. The language (ISO-639-1) that has been set
	// for the Merchant Center feed containing data about the product.
	ProductLanguageCode string `json:"productLanguageCode,omitempty"`
	// ProductStoreId: Output only. The store in the Local Inventory Ad that was
	// clicked on. This should match the store IDs used in your local products
	// feed.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ResourceName: Output only. The resource name of the visit. Visit resource
	// names have the form:
	// `customers/{customer_id}/visits/{ad_group_id}~{criterion_id}~{ds_visit_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// VisitDateTime: Output only. The timestamp of the visit event. The timestamp
	// is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" format.
	VisitDateTime string `json:"visitDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdId") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__Visit) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__Visit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Resources__WebpageView: A webpage view.
type GoogleAdsSearchads360V0Resources__WebpageView struct {
	// ResourceName: Output only. The resource name of the webpage view. Webpage
	// view resource names have the form:
	// `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Resources__WebpageView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Resources__WebpageView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader: Message
// for conversion custom dimension header.
type GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader struct {
	// Id: The conversion custom dimension ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the conversion custom dimension.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader: Message for
// conversion custom metric header.
type GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader struct {
	// Id: The conversion custom metric ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the conversion custom metric.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__CustomColumnHeader: Message for custom
// column header.
type GoogleAdsSearchads360V0Services__CustomColumnHeader struct {
	// Id: The custom column ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the custom column.
	Name string `json:"name,omitempty"`
	// ReferencesMetrics: True when the custom column references metrics.
	ReferencesMetrics bool `json:"referencesMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__CustomColumnHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__CustomColumnHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse: Response
// message for CustomerService.ListAccessibleCustomers.
type GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse struct {
	// ResourceNames: Resource name of customers directly accessible by the user
	// authenticating the call.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceNames") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__ListCustomColumnsResponse: Response message
// for fetching all custom columns associated with a customer.
type GoogleAdsSearchads360V0Services__ListCustomColumnsResponse struct {
	// CustomColumns: The CustomColumns owned by the provided customer.
	CustomColumns []*GoogleAdsSearchads360V0Resources__CustomColumn `json:"customColumns,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CustomColumns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomColumns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__ListCustomColumnsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__ListCustomColumnsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader: Message
// for raw event conversion dimension header.
type GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader struct {
	// Id: The conversion custom variable ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the raw event dimension.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader: Message for
// raw event conversion metric header.
type GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader struct {
	// Id: The conversion custom variable ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the raw event metric.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__SearchAds360Row: A returned row from the
// query.
type GoogleAdsSearchads360V0Services__SearchAds360Row struct {
	// AccessibleBiddingStrategy: The accessible bidding strategy referenced in the
	// query.
	AccessibleBiddingStrategy *GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy `json:"accessibleBiddingStrategy,omitempty"`
	// AdGroup: The ad group referenced in the query.
	AdGroup *GoogleAdsSearchads360V0Resources__AdGroup `json:"adGroup,omitempty"`
	// AdGroupAd: The ad referenced in the query.
	AdGroupAd *GoogleAdsSearchads360V0Resources__AdGroupAd `json:"adGroupAd,omitempty"`
	// AdGroupAdEffectiveLabel: The ad group ad effective label referenced in the
	// query.
	AdGroupAdEffectiveLabel *GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel `json:"adGroupAdEffectiveLabel,omitempty"`
	// AdGroupAdLabel: The ad group ad label referenced in the query.
	AdGroupAdLabel *GoogleAdsSearchads360V0Resources__AdGroupAdLabel `json:"adGroupAdLabel,omitempty"`
	// AdGroupAsset: The ad group asset referenced in the query.
	AdGroupAsset *GoogleAdsSearchads360V0Resources__AdGroupAsset `json:"adGroupAsset,omitempty"`
	// AdGroupAssetSet: The ad group asset set referenced in the query.
	AdGroupAssetSet *GoogleAdsSearchads360V0Resources__AdGroupAssetSet `json:"adGroupAssetSet,omitempty"`
	// AdGroupAudienceView: The ad group audience view referenced in the query.
	AdGroupAudienceView *GoogleAdsSearchads360V0Resources__AdGroupAudienceView `json:"adGroupAudienceView,omitempty"`
	// AdGroupBidModifier: The bid modifier referenced in the query.
	AdGroupBidModifier *GoogleAdsSearchads360V0Resources__AdGroupBidModifier `json:"adGroupBidModifier,omitempty"`
	// AdGroupCriterion: The criterion referenced in the query.
	AdGroupCriterion *GoogleAdsSearchads360V0Resources__AdGroupCriterion `json:"adGroupCriterion,omitempty"`
	// AdGroupCriterionEffectiveLabel: The ad group criterion effective label
	// referenced in the query.
	AdGroupCriterionEffectiveLabel *GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel `json:"adGroupCriterionEffectiveLabel,omitempty"`
	// AdGroupCriterionLabel: The ad group criterion label referenced in the query.
	AdGroupCriterionLabel *GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel `json:"adGroupCriterionLabel,omitempty"`
	// AdGroupEffectiveLabel: The ad group effective label referenced in the query.
	AdGroupEffectiveLabel *GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel `json:"adGroupEffectiveLabel,omitempty"`
	// AdGroupLabel: The ad group label referenced in the query.
	AdGroupLabel *GoogleAdsSearchads360V0Resources__AdGroupLabel `json:"adGroupLabel,omitempty"`
	// AgeRangeView: The age range view referenced in the query.
	AgeRangeView *GoogleAdsSearchads360V0Resources__AgeRangeView `json:"ageRangeView,omitempty"`
	// Asset: The asset referenced in the query.
	Asset *GoogleAdsSearchads360V0Resources__Asset `json:"asset,omitempty"`
	// AssetGroup: The asset group referenced in the query.
	AssetGroup *GoogleAdsSearchads360V0Resources__AssetGroup `json:"assetGroup,omitempty"`
	// AssetGroupAsset: The asset group asset referenced in the query.
	AssetGroupAsset *GoogleAdsSearchads360V0Resources__AssetGroupAsset `json:"assetGroupAsset,omitempty"`
	// AssetGroupListingGroupFilter: The asset group listing group filter
	// referenced in the query.
	AssetGroupListingGroupFilter *GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter `json:"assetGroupListingGroupFilter,omitempty"`
	// AssetGroupSignal: The asset group signal referenced in the query.
	AssetGroupSignal *GoogleAdsSearchads360V0Resources__AssetGroupSignal `json:"assetGroupSignal,omitempty"`
	// AssetGroupTopCombinationView: The asset group top combination view
	// referenced in the query.
	AssetGroupTopCombinationView *GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView `json:"assetGroupTopCombinationView,omitempty"`
	// AssetSet: The asset set referenced in the query.
	AssetSet *GoogleAdsSearchads360V0Resources__AssetSet `json:"assetSet,omitempty"`
	// AssetSetAsset: The asset set asset referenced in the query.
	AssetSetAsset *GoogleAdsSearchads360V0Resources__AssetSetAsset `json:"assetSetAsset,omitempty"`
	// Audience: The Audience referenced in the query.
	Audience *GoogleAdsSearchads360V0Resources__Audience `json:"audience,omitempty"`
	// BiddingStrategy: The bidding strategy referenced in the query.
	BiddingStrategy *GoogleAdsSearchads360V0Resources__BiddingStrategy `json:"biddingStrategy,omitempty"`
	// Campaign: The campaign referenced in the query.
	Campaign *GoogleAdsSearchads360V0Resources__Campaign `json:"campaign,omitempty"`
	// CampaignAsset: The campaign asset referenced in the query.
	CampaignAsset *GoogleAdsSearchads360V0Resources__CampaignAsset `json:"campaignAsset,omitempty"`
	// CampaignAssetSet: The campaign asset set referenced in the query.
	CampaignAssetSet *GoogleAdsSearchads360V0Resources__CampaignAssetSet `json:"campaignAssetSet,omitempty"`
	// CampaignAudienceView: The campaign audience view referenced in the query.
	CampaignAudienceView *GoogleAdsSearchads360V0Resources__CampaignAudienceView `json:"campaignAudienceView,omitempty"`
	// CampaignBudget: The campaign budget referenced in the query.
	CampaignBudget *GoogleAdsSearchads360V0Resources__CampaignBudget `json:"campaignBudget,omitempty"`
	// CampaignCriterion: The campaign criterion referenced in the query.
	CampaignCriterion *GoogleAdsSearchads360V0Resources__CampaignCriterion `json:"campaignCriterion,omitempty"`
	// CampaignEffectiveLabel: The campaign effective label referenced in the
	// query.
	CampaignEffectiveLabel *GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel `json:"campaignEffectiveLabel,omitempty"`
	// CampaignLabel: The campaign label referenced in the query.
	CampaignLabel *GoogleAdsSearchads360V0Resources__CampaignLabel `json:"campaignLabel,omitempty"`
	// CartDataSalesView: The cart data sales view referenced in the query.
	CartDataSalesView *GoogleAdsSearchads360V0Resources__CartDataSalesView `json:"cartDataSalesView,omitempty"`
	// Conversion: The event level conversion referenced in the query.
	Conversion *GoogleAdsSearchads360V0Resources__Conversion `json:"conversion,omitempty"`
	// ConversionAction: The conversion action referenced in the query.
	ConversionAction *GoogleAdsSearchads360V0Resources__ConversionAction `json:"conversionAction,omitempty"`
	// ConversionCustomVariable: The conversion custom variable referenced in the
	// query.
	ConversionCustomVariable *GoogleAdsSearchads360V0Resources__ConversionCustomVariable `json:"conversionCustomVariable,omitempty"`
	// CustomColumns: The custom columns.
	CustomColumns []*GoogleAdsSearchads360V0Common__Value `json:"customColumns,omitempty"`
	// Customer: The customer referenced in the query.
	Customer *GoogleAdsSearchads360V0Resources__Customer `json:"customer,omitempty"`
	// CustomerAsset: The customer asset referenced in the query.
	CustomerAsset *GoogleAdsSearchads360V0Resources__CustomerAsset `json:"customerAsset,omitempty"`
	// CustomerAssetSet: The customer asset set referenced in the query.
	CustomerAssetSet *GoogleAdsSearchads360V0Resources__CustomerAssetSet `json:"customerAssetSet,omitempty"`
	// CustomerClient: The CustomerClient referenced in the query.
	CustomerClient *GoogleAdsSearchads360V0Resources__CustomerClient `json:"customerClient,omitempty"`
	// CustomerManagerLink: The CustomerManagerLink referenced in the query.
	CustomerManagerLink *GoogleAdsSearchads360V0Resources__CustomerManagerLink `json:"customerManagerLink,omitempty"`
	// DynamicSearchAdsSearchTermView: The dynamic search ads search term view
	// referenced in the query.
	DynamicSearchAdsSearchTermView *GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView `json:"dynamicSearchAdsSearchTermView,omitempty"`
	// GenderView: The gender view referenced in the query.
	GenderView *GoogleAdsSearchads360V0Resources__GenderView `json:"genderView,omitempty"`
	// GeoTargetConstant: The geo target constant referenced in the query.
	GeoTargetConstant *GoogleAdsSearchads360V0Resources__GeoTargetConstant `json:"geoTargetConstant,omitempty"`
	// KeywordView: The keyword view referenced in the query.
	KeywordView *GoogleAdsSearchads360V0Resources__KeywordView `json:"keywordView,omitempty"`
	// Label: The label referenced in the query.
	Label *GoogleAdsSearchads360V0Resources__Label `json:"label,omitempty"`
	// LanguageConstant: The language constant referenced in the query.
	LanguageConstant *GoogleAdsSearchads360V0Resources__LanguageConstant `json:"languageConstant,omitempty"`
	// LocationView: The location view referenced in the query.
	LocationView *GoogleAdsSearchads360V0Resources__LocationView `json:"locationView,omitempty"`
	// Metrics: The metrics.
	Metrics *GoogleAdsSearchads360V0Common__Metrics `json:"metrics,omitempty"`
	// ProductBiddingCategoryConstant: The Product Bidding Category referenced in
	// the query.
	ProductBiddingCategoryConstant *GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant `json:"productBiddingCategoryConstant,omitempty"`
	// ProductGroupView: The product group view referenced in the query.
	ProductGroupView *GoogleAdsSearchads360V0Resources__ProductGroupView `json:"productGroupView,omitempty"`
	// Segments: The segments.
	Segments *GoogleAdsSearchads360V0Common__Segments `json:"segments,omitempty"`
	// ShoppingPerformanceView: The shopping performance view referenced in the
	// query.
	ShoppingPerformanceView *GoogleAdsSearchads360V0Resources__ShoppingPerformanceView `json:"shoppingPerformanceView,omitempty"`
	// UserList: The user list referenced in the query.
	UserList *GoogleAdsSearchads360V0Resources__UserList `json:"userList,omitempty"`
	// UserLocationView: The user location view referenced in the query.
	UserLocationView *GoogleAdsSearchads360V0Resources__UserLocationView `json:"userLocationView,omitempty"`
	// Visit: The event level visit referenced in the query.
	Visit *GoogleAdsSearchads360V0Resources__Visit `json:"visit,omitempty"`
	// WebpageView: The webpage view referenced in the query.
	WebpageView *GoogleAdsSearchads360V0Resources__WebpageView `json:"webpageView,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessibleBiddingStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessibleBiddingStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__SearchAds360Row) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__SearchAds360Row
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest: Request
// message for SearchAds360FieldService.SearchSearchAds360Fields.
type GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest struct {
	// PageSize: Number of elements to retrieve in a single page. When too large a
	// page is requested, the server may decide to further limit the number of
	// returned resources.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: Token of the page to retrieve. If not specified, the first page
	// of results will be returned. Use the value obtained from `next_page_token`
	// in the previous response in order to request the next page of results.
	PageToken string `json:"pageToken,omitempty"`
	// Query: Required. The query string.
	Query string `json:"query,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse: Response
// message for SearchAds360FieldService.SearchSearchAds360Fields.
type GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse struct {
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Results: The list of fields that matched the query.
	Results []*GoogleAdsSearchads360V0Resources__SearchAds360Field `json:"results,omitempty"`
	// TotalResultsCount: Total number of results that match the query ignoring the
	// LIMIT clause.
	TotalResultsCount int64 `json:"totalResultsCount,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. "NextPageToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__SearchSearchAds360Request: Request message
// for SearchAds360Service.Search.
type GoogleAdsSearchads360V0Services__SearchSearchAds360Request struct {
	// PageSize: Number of elements to retrieve in a single page. When too large a
	// page is requested, the server may decide to further limit the number of
	// returned resources.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: Token of the page to retrieve. If not specified, the first page
	// of results will be returned. Use the value obtained from `next_page_token`
	// in the previous response in order to request the next page of results.
	PageToken string `json:"pageToken,omitempty"`
	// Query: Required. The query string.
	Query string `json:"query,omitempty"`
	// ReturnTotalResultsCount: If true, the total number of results that match the
	// query ignoring the LIMIT clause will be included in the response. Default is
	// false.
	ReturnTotalResultsCount bool `json:"returnTotalResultsCount,omitempty"`
	// SummaryRowSetting: Determines whether a summary row will be returned. By
	// default, summary row is not returned. If requested, the summary row will be
	// sent in a response by itself after all other query results are returned.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Represent unknown values of return summary row.
	//   "NO_SUMMARY_ROW" - Do not return summary row.
	//   "SUMMARY_ROW_WITH_RESULTS" - Return summary row along with results. The
	// summary row will be returned in the last batch alone (last batch will
	// contain no results).
	//   "SUMMARY_ROW_ONLY" - Return summary row only and return no results.
	SummaryRowSetting string `json:"summaryRowSetting,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__SearchSearchAds360Request) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360Request
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Services__SearchSearchAds360Response: Response
// message for SearchAds360Service.Search.
type GoogleAdsSearchads360V0Services__SearchSearchAds360Response struct {
	// ConversionCustomDimensionHeaders: The headers of the conversion custom
	// dimensions in the results.
	ConversionCustomDimensionHeaders []*GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader `json:"conversionCustomDimensionHeaders,omitempty"`
	// ConversionCustomMetricHeaders: The headers of the conversion custom metrics
	// in the results.
	ConversionCustomMetricHeaders []*GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader `json:"conversionCustomMetricHeaders,omitempty"`
	// CustomColumnHeaders: The headers of the custom columns in the results.
	CustomColumnHeaders []*GoogleAdsSearchads360V0Services__CustomColumnHeader `json:"customColumnHeaders,omitempty"`
	// FieldMask: FieldMask that represents what fields were requested by the user.
	FieldMask string `json:"fieldMask,omitempty"`
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// RawEventConversionDimensionHeaders: The headers of the raw event conversion
	// dimensions in the results.
	RawEventConversionDimensionHeaders []*GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader `json:"rawEventConversionDimensionHeaders,omitempty"`
	// RawEventConversionMetricHeaders: The headers of the raw event conversion
	// metrics in the results.
	RawEventConversionMetricHeaders []*GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader `json:"rawEventConversionMetricHeaders,omitempty"`
	// Results: The list of rows that matched the query.
	Results []*GoogleAdsSearchads360V0Services__SearchAds360Row `json:"results,omitempty"`
	// SummaryRow: Summary row that contains summary of metrics in results. Summary
	// of metrics means aggregation of metrics across all results, here aggregation
	// could be sum, average, rate, etc.
	SummaryRow *GoogleAdsSearchads360V0Services__SearchAds360Row `json:"summaryRow,omitempty"`
	// TotalResultsCount: Total number of results that match the query ignoring the
	// LIMIT clause.
	TotalResultsCount int64 `json:"totalResultsCount,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.
	// "ConversionCustomDimensionHeaders") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ConversionCustomDimensionHeaders") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Services__SearchSearchAds360Response) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Services__SearchSearchAds360Response
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint:
// Indicates that a resource's ability to serve in a particular country is
// constrained.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint struct {
	// CountryCriterion: Geo target constant resource name of the country in which
	// serving is constrained.
	CountryCriterion string `json:"countryCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A
// list of countries where a resource's serving is constrained.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList struct {
	// Countries: Countries in which serving is restricted.
	Countries []*GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint `json:"countries,omitempty"`
	// TotalTargetedCountries: Total number of countries targeted by the resource.
	TotalTargetedCountries int64 `json:"totalTargetedCountries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Countries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Countries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint:
// Indicates that a policy topic was constrained due to disapproval of the
// website for reseller purposes.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint struct {
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch:
// Evidence of mismatches between the URLs of a resource.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch struct {
	// UrlTypes: The set of URLs that did not match each other.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISPLAY_URL" - The display url.
	//   "FINAL_URL" - The final url.
	//   "FINAL_MOBILE_URL" - The final mobile url.
	//   "TRACKING_URL" - The tracking url template, with substituted desktop url.
	//   "MOBILE_TRACKING_URL" - The tracking url template, with substituted mobile
	// url.
	UrlTypes []string `json:"urlTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UrlTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UrlTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking:
// Evidence details when the destination is returning an HTTP error code or
// isn't functional in all locations for commonly used devices.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking struct {
	// Device: The type of device that failed to load the URL.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DESKTOP" - Landing page doesn't work on desktop device.
	//   "ANDROID" - Landing page doesn't work on Android device.
	//   "IOS" - Landing page doesn't work on iOS device.
	Device string `json:"device,omitempty"`
	// DnsErrorType: The type of DNS error.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HOSTNAME_NOT_FOUND" - Host name not found in DNS when fetching landing
	// page.
	//   "GOOGLE_CRAWLER_DNS_ISSUE" - Google internal crawler issue when
	// communicating with DNS. This error doesn't mean the landing page doesn't
	// work. Google will recrawl the landing page.
	DnsErrorType string `json:"dnsErrorType,omitempty"`
	// ExpandedUrl: The full URL that didn't work.
	ExpandedUrl string `json:"expandedUrl,omitempty"`
	// HttpErrorCode: The HTTP error code.
	HttpErrorCode int64 `json:"httpErrorCode,omitempty,string"`
	// LastCheckedDateTime: The time the URL was last checked. The format is
	// "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 09:15:00" or "2018-02-01
	// 14:34:30"
	LastCheckedDateTime string `json:"lastCheckedDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Device") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Device") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList: A list
// of strings found in a destination page that caused a policy finding.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList struct {
	// DestinationTexts: List of text found in the resource's destination page.
	DestinationTexts []string `json:"destinationTexts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationTexts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationTexts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList: A list of
// fragments of text that violated a policy.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList struct {
	// Texts: The fragments of text from the resource that caused the policy
	// finding.
	Texts []string `json:"texts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Texts") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Texts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList: A list of
// websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP
// policy topic, for example. In case there are more than five websites, only
// the top five (those that appear in resources the most) will be listed here.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList struct {
	// Websites: Websites that caused the policy finding.
	Websites []string `json:"websites,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Websites") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Websites") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicConstraint: Describes the effect
// on serving that a policy topic entry will have.
type GoogleAdsSearchads360V23Common__PolicyTopicConstraint struct {
	// CertificateDomainMismatchInCountryList: Countries where the resource's
	// domain is not covered by the certificates associated with it.
	CertificateDomainMismatchInCountryList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"certificateDomainMismatchInCountryList,omitempty"`
	// CertificateMissingInCountryList: Countries where a certificate is required
	// for serving.
	CertificateMissingInCountryList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"certificateMissingInCountryList,omitempty"`
	// CountryConstraintList: Countries where the resource cannot serve.
	CountryConstraintList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"countryConstraintList,omitempty"`
	// ResellerConstraint: Reseller constraint.
	ResellerConstraint *GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint `json:"resellerConstraint,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CertificateDomainMismatchInCountryList") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "CertificateDomainMismatchInCountryList") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted from
	// API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields
	// for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicEntry: Policy finding attached to
// a resource (for example, alcohol policy associated with a site that sells
// alcohol). Each PolicyTopicEntry has a topic that indicates the specific ads
// policy the entry is about and a type to indicate the effect that the entry
// will have on serving. It may optionally have one or more evidences that
// indicate the reason for the finding. It may also optionally have one or more
// constraints that provide details about how serving may be restricted.
type GoogleAdsSearchads360V23Common__PolicyTopicEntry struct {
	// Constraints: Indicates how serving of this resource may be affected (for
	// example, not serving in a country).
	Constraints []*GoogleAdsSearchads360V23Common__PolicyTopicConstraint `json:"constraints,omitempty"`
	// Evidences: Additional information that explains policy finding (for example,
	// the brand name for a trademark finding).
	Evidences []*GoogleAdsSearchads360V23Common__PolicyTopicEvidence `json:"evidences,omitempty"`
	// Topic: Policy topic this finding refers to. For example, "ALCOHOL",
	// "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible
	// policy topics is not fixed for a particular API version and may change at
	// any time.
	Topic string `json:"topic,omitempty"`
	// Type: Describes the negative or positive effect this policy will have on
	// serving.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "PROHIBITED" - The resource will not be served.
	//   "LIMITED" - The resource will not be served under some circumstances.
	//   "FULLY_LIMITED" - The resource cannot serve at all because of the current
	// targeting criteria.
	//   "DESCRIPTIVE" - May be of interest, but does not limit how the resource is
	// served.
	//   "BROADENING" - Could increase coverage beyond normal.
	//   "AREA_OF_INTEREST_ONLY" - Constrained for all targeted countries, but may
	// serve in other countries through area of interest.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Constraints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Constraints") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicEntry) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicEvidence: Additional information
// that explains a policy finding.
type GoogleAdsSearchads360V23Common__PolicyTopicEvidence struct {
	// DestinationMismatch: Mismatch between the destinations of a resource's URLs.
	DestinationMismatch *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch `json:"destinationMismatch,omitempty"`
	// DestinationNotWorking: Details when the destination is returning an HTTP
	// error code or isn't functional in all locations for commonly used devices.
	DestinationNotWorking *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking `json:"destinationNotWorking,omitempty"`
	// DestinationTextList: The text in the destination of the resource that is
	// causing a policy finding.
	DestinationTextList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList `json:"destinationTextList,omitempty"`
	// LanguageCode: The language the resource was detected to be written in. This
	// is an IETF language tag such as "en-US".
	LanguageCode string `json:"languageCode,omitempty"`
	// TextList: List of evidence found in the text of a resource.
	TextList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList `json:"textList,omitempty"`
	// WebsiteList: List of websites linked with this resource.
	WebsiteList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList `json:"websiteList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationMismatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationMismatch") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicEvidence) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicEvidence
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyViolationKey: Key of the violation.
// The key is used for referring to a violation when filing an exemption
// request.
type GoogleAdsSearchads360V23Common__PolicyViolationKey struct {
	// PolicyName: Unique ID of the violated policy.
	PolicyName string `json:"policyName,omitempty"`
	// ViolatingText: The text that violates the policy if specified. Otherwise,
	// refers to the policy in general (for example, when requesting to be exempt
	// from the whole policy). If not specified for criterion exemptions, the whole
	// policy is implied. Must be specified for ad exemptions.
	ViolatingText string `json:"violatingText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyViolationKey) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyViolationKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Value: A generic data container.
type GoogleAdsSearchads360V23Common__Value struct {
	// BooleanValue: A boolean.
	BooleanValue bool `json:"booleanValue,omitempty"`
	// DoubleValue: A double.
	DoubleValue float64 `json:"doubleValue,omitempty"`
	// FloatValue: A float.
	FloatValue float64 `json:"floatValue,omitempty"`
	// Int64Value: An int64.
	Int64Value int64 `json:"int64Value,omitempty,string"`
	// StringValue: A string.
	StringValue string `json:"stringValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BooleanValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BooleanValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Value) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Value
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__Value) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__Value
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		FloatValue  gensupport.JSONFloat64 `json:"floatValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	s.FloatValue = float64(s1.FloatValue)
	return nil
}

// GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement: A part of a
// field path.
type GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement struct {
	// FieldName: The name of a field or a oneof
	FieldName string `json:"fieldName,omitempty"`
	// Index: If field_name is a repeated field, this is the element that failed
	Index int64 `json:"index,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails: Error
// details for a budget below per-day minimum error.
type GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails struct {
	// BudgetPerDayMinimumMicros: The minimum budget required by the campaign per
	// day, in micros of the advertiser currency. Applies to both daily and custom
	// budgets.
	BudgetPerDayMinimumMicros int64 `json:"budgetPerDayMinimumMicros,omitempty,string"`
	// CurrencyCode: The advertiser's currency, represented as a three-letter ISO
	// 4217 currency code (such as "USD").
	CurrencyCode string `json:"currencyCode,omitempty"`
	// FailedBudgetAmountMicros: The budget amount value that was rejected as too
	// low, in micros of the advertiser currency. Only set if this error is caused
	// by the amount field value.
	FailedBudgetAmountMicros int64 `json:"failedBudgetAmountMicros,omitempty,string"`
	// FailedBudgetTotalAmountMicros: The budget total_amount value that was
	// rejected as too low, in micros of the advertiser currency. Only set if this
	// error is caused by the total_amount field value.
	FailedBudgetTotalAmountMicros int64 `json:"failedBudgetTotalAmountMicros,omitempty,string"`
	// MinimumBudgetAmountMicros: The minimum value for the budget's amount field
	// required by the campaign, in micros of the advertiser currency. Only set if
	// this error is caused by the amount field value.
	MinimumBudgetAmountMicros int64 `json:"minimumBudgetAmountMicros,omitempty,string"`
	// MinimumBudgetTotalAmountMicros: The minimum value for the budget's
	// total_amount field required by the campaign given its configured start and
	// end time, in micros of the advertiser currency. Only set if this error is
	// caused by the total_amount field value.
	MinimumBudgetTotalAmountMicros int64 `json:"minimumBudgetTotalAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BudgetPerDayMinimumMicros")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetPerDayMinimumMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorCode: The error reason represented by
// type and enum.
type GoogleAdsSearchads360V23Errors__ErrorCode struct {
	// AccessInvitationError: The reasons for the access invitation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_EMAIL_ADDRESS" - The email address is invalid for sending an
	// invitation.
	//   "EMAIL_ADDRESS_ALREADY_HAS_ACCESS" - Email address already has access to
	// this customer.
	//   "INVALID_INVITATION_STATUS" - Invalid invitation status for the operation.
	//   "GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED" - Email address cannot be like
	// abc+foo@google.com.
	//   "INVALID_INVITATION_ID" - Invalid invitation ID.
	//   "EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION" - Email address already has
	// a pending invitation.
	//   "PENDING_INVITATIONS_LIMIT_EXCEEDED" - Pending invitation limit exceeded
	// for the customer.
	//   "EMAIL_DOMAIN_POLICY_VIOLATED" - Email address doesn't conform to the
	// email domain policy. See
	// https://support.google.com/google-ads/answer/2375456
	AccessInvitationError string `json:"accessInvitationError,omitempty"`
	// AccountBudgetProposalError: The reasons for account budget proposal errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FIELD_MASK_NOT_ALLOWED" - The field mask must be empty for
	// create/end/remove proposals.
	//   "IMMUTABLE_FIELD" - The field cannot be set because of the proposal type.
	//   "REQUIRED_FIELD_MISSING" - The field is required because of the proposal
	// type.
	//   "CANNOT_CANCEL_APPROVED_PROPOSAL" - Proposals that have been approved
	// cannot be cancelled.
	//   "CANNOT_REMOVE_UNAPPROVED_BUDGET" - Budgets that haven't been approved
	// cannot be removed.
	//   "CANNOT_REMOVE_RUNNING_BUDGET" - Budgets that are currently running cannot
	// be removed.
	//   "CANNOT_END_UNAPPROVED_BUDGET" - Budgets that haven't been approved cannot
	// be truncated.
	//   "CANNOT_END_INACTIVE_BUDGET" - Only budgets that are currently running can
	// be truncated.
	//   "BUDGET_NAME_REQUIRED" - All budgets must have names.
	//   "CANNOT_UPDATE_OLD_BUDGET" - Expired budgets cannot be edited after a
	// sufficient amount of time has passed.
	//   "CANNOT_END_IN_PAST" - It is not permissible a propose a new budget that
	// ends in the past.
	//   "CANNOT_EXTEND_END_TIME" - An expired budget cannot be extended to overlap
	// with the running budget.
	//   "PURCHASE_ORDER_NUMBER_REQUIRED" - A purchase order number is required.
	//   "PENDING_UPDATE_PROPOSAL_EXISTS" - Budgets that have a pending update
	// cannot be updated.
	//   "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP" - Cannot
	// propose more than one budget when the corresponding billing setup hasn't
	// been approved.
	//   "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET" - Cannot update the start
	// time of a budget that has already started.
	//   "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED" - Cannot update the
	// spending limit of a budget with an amount lower than what has already been
	// spent.
	//   "UPDATE_IS_NO_OP" - Cannot propose a budget update without actually
	// changing any fields.
	//   "END_TIME_MUST_FOLLOW_START_TIME" - The end time must come after the start
	// time.
	//   "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP" - The budget's date
	// range must fall within the date range of its billing setup.
	//   "NOT_AUTHORIZED" - The user is not authorized to mutate budgets for the
	// given billing setup.
	//   "INVALID_BILLING_SETUP" - Mutates are not allowed for the given billing
	// setup.
	//   "OVERLAPS_EXISTING_BUDGET" - Budget creation failed as it overlaps with a
	// pending budget proposal or an approved budget.
	//   "CANNOT_CREATE_BUDGET_THROUGH_API" - The control setting in user's
	// payments profile doesn't allow budget creation through API. Log in to Google
	// Ads to create budget.
	//   "INVALID_MASTER_SERVICE_AGREEMENT" - Master service agreement has not been
	// signed yet for the Payments Profile.
	//   "CANCELED_BILLING_SETUP" - Budget mutates are not allowed because the
	// given billing setup is canceled.
	AccountBudgetProposalError string `json:"accountBudgetProposalError,omitempty"`
	// AccountLinkError: The reasons for the account link status change error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_STATUS" - The new link status is invalid.
	//   "PERMISSION_DENIED" - The authenticated user doesn't have the permission
	// to do the change.
	AccountLinkError string `json:"accountLinkError,omitempty"`
	// AdCustomizerError: The reasons for the ad customizer error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "COUNTDOWN_INVALID_DATE_FORMAT" - Invalid date argument in countdown
	// function.
	//   "COUNTDOWN_DATE_IN_PAST" - Countdown end date is in the past.
	//   "COUNTDOWN_INVALID_LOCALE" - Invalid locale string in countdown function.
	//   "COUNTDOWN_INVALID_START_DAYS_BEFORE" - Days-before argument to countdown
	// function is not positive.
	//   "UNKNOWN_USER_LIST" - A user list referenced in an IF function does not
	// exist.
	AdCustomizerError string `json:"adCustomizerError,omitempty"`
	// AdError: An error with an Ad Group Ad mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE" - Ad customizers are not
	// supported for ad type.
	//   "APPROXIMATELY_TOO_LONG" - Estimating character sizes the string is too
	// long.
	//   "APPROXIMATELY_TOO_SHORT" - Estimating character sizes the string is too
	// short.
	//   "BAD_SNIPPET" - There is a problem with the snippet.
	//   "CANNOT_MODIFY_AD" - Cannot modify an ad.
	//   "CANNOT_SET_BUSINESS_NAME_IF_URL_SET" - business name and url cannot be
	// set at the same time
	//   "CANNOT_SET_FIELD" - The specified field is incompatible with this ad's
	// type or settings.
	//   "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET" - Cannot set field when
	// originAdId is set.
	//   "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING" - Cannot set field when an
	// existing ad id is set for sharing.
	//   "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE" - Cannot set allowFlexibleColor
	// false if no color is provided by user.
	//   "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING" - When user select
	// native, no color control is allowed because we will always respect publisher
	// color for native format serving.
	//   "CANNOT_SET_URL" - Cannot specify a url for the ad type
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Cannot specify a tracking or mobile url
	// without also setting final urls
	//   "CANNOT_SET_WITH_FINAL_URLS" - Cannot specify a legacy url and a final url
	// simultaneously
	//   "CANNOT_SET_WITH_URL_DATA" - Cannot specify a urls in UrlData and in
	// template fields simultaneously.
	//   "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR" - This operator cannot be used with
	// a subclass of Ad.
	//   "CUSTOMER_NOT_APPROVED_MOBILEADS" - Customer is not approved for mobile
	// ads.
	//   "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS" - Customer is not approved for 3PAS
	// richmedia ads.
	//   "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS" - Customer is not approved
	// for 3PAS redirect richmedia (Ad Exchange) ads.
	//   "CUSTOMER_NOT_ELIGIBLE" - Not an eligible customer
	//   "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL" - Customer is not eligible
	// for updating beacon url
	//   "DIMENSION_ALREADY_IN_UNION" - There already exists an ad with the same
	// dimensions in the union.
	//   "DIMENSION_MUST_BE_SET" - Ad's dimension must be set before setting union
	// dimension.
	//   "DIMENSION_NOT_IN_UNION" - Ad's dimension must be included in the union
	// dimensions.
	//   "DISPLAY_URL_CANNOT_BE_SPECIFIED" - Display Url cannot be specified
	// (applies to Ad Exchange Ads)
	//   "DOMESTIC_PHONE_NUMBER_FORMAT" - Telephone number contains invalid
	// characters or invalid format. Re-enter your number using digits (0-9),
	// dashes (-), and parentheses only.
	//   "EMERGENCY_PHONE_NUMBER" - Emergency telephone numbers are not allowed.
	// Enter a valid domestic phone number to connect customers to your business.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID" - A feed attribute
	// referenced in an ad customizer tag is not in the ad customizer mapping for
	// the feed.
	//   "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH" - The ad customizer field mapping
	// for the feed attribute does not match the expected field type.
	//   "ILLEGAL_AD_CUSTOMIZER_TAG_USE" - The use of ad customizer tags in the ad
	// text is disallowed. Details in trigger.
	//   "ILLEGAL_TAG_USE" - Tags of the form {PH_x}, where x is a number, are
	// disallowed in ad text.
	//   "INCONSISTENT_DIMENSIONS" - The dimensions of the ad are specified or
	// derived in multiple ways and are not consistent.
	//   "INCONSISTENT_STATUS_IN_TEMPLATE_UNION" - The status cannot differ among
	// template ads of the same union.
	//   "INCORRECT_LENGTH" - The length of the string is not valid.
	//   "INELIGIBLE_FOR_UPGRADE" - The ad is ineligible for upgrade.
	//   "INVALID_AD_ADDRESS_CAMPAIGN_TARGET" - User cannot create mobile ad for
	// countries targeted in specified campaign.
	//   "INVALID_AD_TYPE" - Invalid Ad type. A specific type of Ad is required.
	//   "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE" - Headline, description or phone
	// cannot be present when creating mobile image ad.
	//   "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT" - Image cannot be present when
	// creating mobile text ad.
	//   "INVALID_CALL_TO_ACTION_TEXT" - Invalid call to action text.
	//   "INVALID_CHARACTER_FOR_URL" - Invalid character in URL.
	//   "INVALID_COUNTRY_CODE" - Creative's country code is not valid.
	//   "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG" - Invalid use of Expanded Dynamic
	// Search Ads tags ({lpurl} etc.)
	//   "INVALID_INPUT" - An input error whose real reason was not properly mapped
	// (should not happen).
	//   "INVALID_MARKUP_LANGUAGE" - An invalid markup language was entered.
	//   "INVALID_MOBILE_CARRIER" - An invalid mobile carrier was entered.
	//   "INVALID_MOBILE_CARRIER_TARGET" - Specified mobile carriers target a
	// country not targeted by the campaign.
	//   "INVALID_NUMBER_OF_ELEMENTS" - Wrong number of elements for given element
	// type
	//   "INVALID_PHONE_NUMBER_FORMAT" - The format of the telephone number is
	// incorrect. Re-enter the number using the correct format.
	//   "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID" - The certified vendor
	// format id is incorrect.
	//   "INVALID_TEMPLATE_DATA" - The template ad data contains validation errors.
	//   "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE" - The template field doesn't have
	// have the correct type.
	//   "INVALID_TEMPLATE_ID" - Invalid template id.
	//   "LINE_TOO_WIDE" - After substituting replacement strings, the line is too
	// wide.
	//   "MISSING_AD_CUSTOMIZER_MAPPING" - The feed referenced must have ad
	// customizer mapping to be used in a customizer tag.
	//   "MISSING_ADDRESS_COMPONENT" - Missing address component in template
	// element address field.
	//   "MISSING_ADVERTISEMENT_NAME" - An ad name must be entered.
	//   "MISSING_BUSINESS_NAME" - Business name must be entered.
	//   "MISSING_DESCRIPTION1" - Description (line 2) must be entered.
	//   "MISSING_DESCRIPTION2" - Description (line 3) must be entered.
	//   "MISSING_DESTINATION_URL_TAG" - The destination url must contain at least
	// one tag (for example, {lpurl})
	//   "MISSING_LANDING_PAGE_URL_TAG" - The tracking url template of
	// ExpandedDynamicSearchAd must contain at least one tag. (for example,
	// {lpurl})
	//   "MISSING_DIMENSION" - A valid dimension must be specified for this ad.
	//   "MISSING_DISPLAY_URL" - A display URL must be entered.
	//   "MISSING_HEADLINE" - Headline must be entered.
	//   "MISSING_HEIGHT" - A height must be entered.
	//   "MISSING_IMAGE" - An image must be entered.
	//   "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS" - Marketing image or product
	// videos are required.
	//   "MISSING_MARKUP_LANGUAGES" - The markup language in which your site is
	// written must be entered.
	//   "MISSING_MOBILE_CARRIER" - A mobile carrier must be entered.
	//   "MISSING_PHONE" - Phone number must be entered.
	//   "MISSING_REQUIRED_TEMPLATE_FIELDS" - Missing required template fields
	//   "MISSING_TEMPLATE_FIELD_VALUE" - Missing a required field value
	//   "MISSING_TEXT" - The ad must have text.
	//   "MISSING_VISIBLE_URL" - A visible URL must be entered.
	//   "MISSING_WIDTH" - A width must be entered.
	//   "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED" - Only 1 feed can be used as the
	// source of ad customizer substitutions in a single ad.
	//   "MUST_USE_TEMP_AD_UNION_ID_ON_ADD" - TempAdUnionId must be use when adding
	// template ads.
	//   "TOO_LONG" - The string has too many characters.
	//   "TOO_SHORT" - The string has too few characters.
	//   "UNION_DIMENSIONS_CANNOT_CHANGE" - Ad union dimensions cannot change for
	// saved ads.
	//   "UNKNOWN_ADDRESS_COMPONENT" - Address component is not {country, lat,
	// lng}.
	//   "UNKNOWN_FIELD_NAME" - Unknown unique field name
	//   "UNKNOWN_UNIQUE_NAME" - Unknown unique name (template element type
	// specifier)
	//   "UNSUPPORTED_DIMENSIONS" - Unsupported ad dimension
	//   "URL_INVALID_SCHEME" - URL starts with an invalid scheme.
	//   "URL_INVALID_TOP_LEVEL_DOMAIN" - URL ends with an invalid top-level domain
	// name.
	//   "URL_MALFORMED" - URL contains illegal characters.
	//   "URL_NO_HOST" - URL must contain a host name.
	//   "URL_NOT_EQUIVALENT" - URL not equivalent during upgrade.
	//   "URL_HOST_NAME_TOO_LONG" - URL host name too long to be stored as visible
	// URL (applies to Ad Exchange ads)
	//   "URL_NO_SCHEME" - URL must start with a scheme.
	//   "URL_NO_TOP_LEVEL_DOMAIN" - URL should end in a valid domain extension,
	// such as .com or .net.
	//   "URL_PATH_NOT_ALLOWED" - URL must not end with a path.
	//   "URL_PORT_NOT_ALLOWED" - URL must not specify a port.
	//   "URL_QUERY_NOT_ALLOWED" - URL must not contain a query.
	//   "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG" - A url scheme is not
	// allowed in front of tag in tracking url template (for example,
	// http://{lpurl})
	//   "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE" - The user does not have
	// permissions to create a template ad for the given template.
	//   "INCONSISTENT_EXPANDABLE_SETTINGS" - Expandable setting is
	// inconsistent/wrong. For example, an AdX ad is invalid if it has a expandable
	// vendor format but no expanding directions specified, or expanding directions
	// is specified, but the vendor format is not expandable.
	//   "INVALID_FORMAT" - Format is invalid
	//   "INVALID_FIELD_TEXT" - The text of this field did not match a pattern of
	// allowed values.
	//   "ELEMENT_NOT_PRESENT" - Template element is mising
	//   "IMAGE_ERROR" - Error occurred during image processing
	//   "VALUE_NOT_IN_RANGE" - The value is not within the valid range
	//   "FIELD_NOT_PRESENT" - Template element field is not present
	//   "ADDRESS_NOT_COMPLETE" - Address is incomplete
	//   "ADDRESS_INVALID" - Invalid address
	//   "VIDEO_RETRIEVAL_ERROR" - Error retrieving specified video
	//   "AUDIO_ERROR" - Error processing audio
	//   "INVALID_YOUTUBE_DISPLAY_URL" - Display URL is incorrect for YouTube PYV
	// ads
	//   "TOO_MANY_PRODUCT_IMAGES" - Too many product Images in GmailAd
	//   "TOO_MANY_PRODUCT_VIDEOS" - Too many product Videos in GmailAd
	//   "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE" - The device preference is
	// not compatible with the ad type
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for specified country.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Carrier specific short
	// number is not allowed.
	//   "DISALLOWED_NUMBER_TYPE" - Specified phone number type is disallowed.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number not supported for
	// country.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// not supported with call tracking enabled for country.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate phone number is not
	// allowed.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone number is not allowed.
	//   "INVALID_CALL_CONVERSION_TYPE_ID" - Invalid call conversion type id.
	//   "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID" - Cannot
	// disable call conversion and set conversion type id.
	//   "CANNOT_SET_PATH2_WITHOUT_PATH1" - Cannot set path2 without path1.
	//   "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME" - Missing domain name in
	// campaign setting when adding expanded dynamic search ad.
	//   "INCOMPATIBLE_WITH_RESTRICTION_TYPE" - The associated ad is not compatible
	// with restriction type.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Consent for call
	// recording is required for creating/updating call only ads. See
	// https://support.google.com/google-ads/answer/7412639.
	//   "MISSING_IMAGE_OR_MEDIA_BUNDLE" - Either an image or a media bundle is
	// required in a display upload ad.
	//   "PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN" - The display upload product
	// type is not supported in this campaign.
	//   "PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE" - The default value of an ad
	// placeholder can not be the empty string.
	//   "PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE" - Ad
	// placeholders with countdown functions must not have a default value.
	//   "PLACEHOLDER_DEFAULT_VALUE_MISSING" - A previous ad placeholder that had a
	// default value was found which means that all (non-countdown) placeholders
	// must have a default value. This ad placeholder does not have a default
	// value.
	//   "UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE" - A previous ad placeholder that
	// did not have a default value was found which means that no placeholders may
	// have a default value. This ad placeholder does have a default value.
	//   "AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT" - Two ad customizers may not be
	// directly adjacent in an ad text. They must be separated by at least one
	// character.
	//   "UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION" - The ad is not associated with
	// any enabled AdGroupAd, and cannot be updated.
	//   "CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN" - Call Ad
	// verification url and final url don't have same domain.
	//   "CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY" - Final url
	// and verification url cannot both be empty for call ads.
	//   "TOO_MANY_AD_CUSTOMIZERS" - Too many ad customizers in one asset.
	//   "INVALID_AD_CUSTOMIZER_FORMAT" - The ad customizer tag is recognized, but
	// the format is invalid.
	//   "NESTED_AD_CUSTOMIZER_SYNTAX" - Customizer tags cannot be nested.
	//   "UNSUPPORTED_AD_CUSTOMIZER_SYNTAX" - The ad customizer syntax used in the
	// ad is not supported.
	//   "UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG" - There exists unpaired brace in the
	// ad customizer tag.
	//   "MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS" - More than one type of
	// countdown tag exists among all text lines.
	//   "DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID" - Date time in the countdown tag
	// is invalid.
	//   "DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST" - Date time in the countdown tag is
	// in the past.
	//   "UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND" - Cannot recognize the ad
	// customizer tag.
	//   "CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD" - Customizer type forbidden for this
	// field.
	//   "INVALID_CUSTOMIZER_ATTRIBUTE_NAME" - Customizer attribute name is
	// invalid.
	//   "STORE_MISMATCH" - App store value does not match the value of the app
	// store in the app specified in the campaign.
	//   "MISSING_REQUIRED_IMAGE_ASPECT_RATIO" - Missing required image aspect
	// ratio.
	//   "MISMATCHED_ASPECT_RATIOS" - Aspect ratios mismatch between different
	// assets.
	//   "DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS" - Images must be unique between
	// different carousel card assets.
	//   "INVALID_YOUTUBE_VIDEO_ASSET_ID_FOR_VIDEO_ADS_SEQUENCING" - For video ads
	// sequencing, YouTube video asset ID has to be defined in
	// `campaign.video_campaign_settings.video_ad_sequence.steps.asset_id`.
	AdError string `json:"adError,omitempty"`
	// AdGroupAdError: The reasons for the ad group ad error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_AD_LABEL_DOES_NOT_EXIST" - No link found between the adgroup ad
	// and the label.
	//   "AD_GROUP_AD_LABEL_ALREADY_EXISTS" - The label has already been attached
	// to the adgroup ad.
	//   "AD_NOT_UNDER_ADGROUP" - The specified ad was not found in the adgroup
	//   "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD" - Removed ads may not be modified
	//   "CANNOT_CREATE_DEPRECATED_ADS" - An ad of this type is deprecated and
	// cannot be created. Only deletions are permitted.
	//   "CANNOT_CREATE_TEXT_ADS" - Text ads are deprecated and cannot be created.
	// Use expanded text ads instead.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "RESOURCE_REFERENCED_IN_MULTIPLE_OPS" - An ad may only be modified once
	// per call
	//   "AD_TYPE_CANNOT_BE_PAUSED" - AdGroupAds with the given ad type cannot be
	// paused.
	//   "AD_TYPE_CANNOT_BE_REMOVED" - AdGroupAds with the given ad type cannot be
	// removed.
	//   "CANNOT_UPDATE_DEPRECATED_ADS" - An ad of this type is deprecated and
	// cannot be updated. Only removals are permitted.
	//   "AD_SHARING_NOT_ALLOWED" - Ad sharing is not allowed.
	AdGroupAdError string `json:"adGroupAdError,omitempty"`
	// AdGroupBidModifierError: The reasons for the ad group bid modifier error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_ID_NOT_SUPPORTED" - The criterion ID does not support bid
	// modification.
	//   "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER" - Cannot
	// override the bid modifier for the given criterion ID if the parent campaign
	// is opted out of the same criterion.
	AdGroupBidModifierError string `json:"adGroupBidModifierError,omitempty"`
	// AdGroupCriterionCustomizerError: The reasons for the ad group criterion
	// customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_IS_NOT_KEYWORD" - Only keyword type criterion is allowed to
	// link customizer attribute.
	AdGroupCriterionCustomizerError string `json:"adGroupCriterionCustomizerError,omitempty"`
	// AdGroupCriterionError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST" - No link found between the
	// AdGroupCriterion and the label.
	//   "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS" - The label has already been
	// attached to the AdGroupCriterion.
	//   "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION" - Negative AdGroupCriterion
	// cannot have labels.
	//   "TOO_MANY_OPERATIONS" - Too many operations for a single call.
	//   "CANT_UPDATE_NEGATIVE" - Negative ad group criteria are not updateable.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion (keyword v.s.
	// placement) is required for ADD and SET operations.
	//   "BID_INCOMPATIBLE_WITH_ADGROUP" - Bid is incompatible with ad group's
	// bidding settings.
	//   "CANNOT_TARGET_AND_EXCLUDE" - Cannot target and exclude the same criterion
	// at once.
	//   "ILLEGAL_URL" - The URL of a placement is invalid.
	//   "INVALID_KEYWORD_TEXT" - Keyword text was invalid.
	//   "INVALID_DESTINATION_URL" - Destination URL was invalid.
	//   "MISSING_DESTINATION_URL_TAG" - The destination url must contain at least
	// one tag (for example, {lpurl})
	//   "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM" - Keyword-level cpm bid is
	// not supported
	//   "INVALID_USER_STATUS" - For example, cannot add a biddable ad group
	// criterion that had been removed.
	//   "CANNOT_ADD_CRITERIA_TYPE" - Criteria type cannot be targeted for the ad
	// group. Either the account is restricted to keywords only, the criteria type
	// is incompatible with the campaign's bidding strategy, or the criteria type
	// can only be applied to campaigns.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type cannot be excluded for the
	// ad group. Refer to the documentation for a specific criterion to check if it
	// is excludable.
	//   "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE" - Partial failure is
	// not supported for shopping campaign mutate operations.
	//   "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS" - Operations in the mutate
	// request changes too many shopping ad groups. Split requests for multiple
	// shopping ad groups across multiple requests.
	//   "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS" - Not allowed to modify
	// url fields of an ad group criterion if there are duplicate elements for that
	// ad group criterion in the request.
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Cannot set url fields without also
	// setting final urls.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST" - Cannot clear final
	// urls if final mobile urls exist.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST" - Cannot clear final
	// urls if final app urls exist.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS" - Cannot clear
	// final urls if tracking url template exists.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST" - Cannot clear
	// final urls if url custom parameters exist.
	//   "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS" - Cannot set both
	// destination url and final urls.
	//   "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE" - Cannot set
	// both destination url and tracking url template.
	//   "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE" - Final urls are not
	// supported for this criterion type.
	//   "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE" - Final mobile urls
	// are not supported for this criterion type.
	AdGroupCriterionError string `json:"adGroupCriterionError,omitempty"`
	// AdGroupCustomizerError: The reasons for the ad group customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	AdGroupCustomizerError string `json:"adGroupCustomizerError,omitempty"`
	// AdGroupError: An error with an Ad Group mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ADGROUP_NAME" - AdGroup with the same name already exists for
	// the campaign.
	//   "INVALID_ADGROUP_NAME" - AdGroup name is not valid.
	//   "ADVERTISER_NOT_ON_CONTENT_NETWORK" - Advertiser is not allowed to target
	// sites or set site bids that are not on the Google Search Network.
	//   "BID_TOO_BIG" - Bid amount is too big.
	//   "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH" - AdGroup bid does not match the
	// campaign's bidding strategy.
	//   "MISSING_ADGROUP_NAME" - AdGroup name is required for Add.
	//   "ADGROUP_LABEL_DOES_NOT_EXIST" - No link found between the ad group and
	// the label.
	//   "ADGROUP_LABEL_ALREADY_EXISTS" - The label has already been attached to
	// the ad group.
	//   "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP" - The CriterionTypeGroup is not
	// supported for the content bid dimension.
	//   "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE" - The ad group type
	// is not compatible with the campaign channel type.
	//   "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY" - The ad group
	// type is not supported in the country of sale of the campaign.
	//   "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING" - Ad
	// groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to campaigns that
	// have DynamicSearchAdsSetting attached.
	//   "PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER" - Promoted hotels ad
	// groups are only available to customers on the allow-list.
	//   "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE" - The field type cannot be
	// excluded because an active ad group-asset link of this type exists.
	//   "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE" - The asset set type is invalid
	// for setting the excluded_parent_asset_set_types field.
	//   "CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE" - Cannot add ad groups for the
	// campaign type.
	//   "INVALID_STATUS" - Invalid status for the ad group.
	//   "INVALID_STEP_ID_FOR_VIDEO_ADS_SEQUENCING" - For video ads sequencing,
	// AdGroup `step_id` has to use a `step_id` defined in
	// `campaign.video_campaign_settings.video_ad_sequence`.
	//   "INVALID_AD_GROUP_TYPE_FOR_VIDEO_ADS_SEQUENCING" - For video ads
	// sequencing, AdGroup type has to use a type defined in
	// `campaign.video_campaign_settings.video_ad_sequence`.
	//   "DUPLICATE_STEP_ID" - Only one AdGroup is allowed for each step ID in
	// video ads sequencing.
	//   "INVALID_VERTICAL_ADS_FORMAT_SETTING" - At least one Vertical Ads format
	// must be enabled for a campaign under Travel Ads in Search Campaigns.
	//   "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX" -
	// AI max setting must be enabled to enable Vertical Ads formats for a campaign
	// under Travel Ads in Search Campaigns.
	//
	// "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAV
	// EL_FEED" - An enabled travel feed must be linked to enable Vertical Ads
	// formats for a campaign under Travel Ads in Search Campaigns.
	AdGroupError string `json:"adGroupError,omitempty"`
	// AdGroupFeedError: The reasons for the ad group feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this ad group and place holder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "ADGROUP_FEED_ALREADY_EXISTS" - The AdGroupFeed already exists. UPDATE
	// operation should be used to modify the existing AdGroupFeed.
	//   "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED" - Cannot operate on removed
	// AdGroupFeed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "NO_EXISTING_LOCATION_CUSTOMER_FEED" - Location AdGroupFeeds cannot be
	// created unless there is a location CustomerFeed for the specified feed.
	AdGroupFeedError string `json:"adGroupFeedError,omitempty"`
	// AdParameterError: The reasons for the ad parameter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_CRITERION_MUST_BE_KEYWORD" - The ad group criterion must be a
	// keyword criterion.
	//   "INVALID_INSERTION_TEXT_FORMAT" - The insertion text is invalid.
	AdParameterError string `json:"adParameterError,omitempty"`
	// AdSharingError: The reasons for the ad sharing error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_ALREADY_CONTAINS_AD" - Error resulting in attempting to add an
	// Ad to an AdGroup that already contains the Ad.
	//   "INCOMPATIBLE_AD_UNDER_AD_GROUP" - Ad is not compatible with the AdGroup
	// it is being shared with.
	//   "CANNOT_SHARE_INACTIVE_AD" - Cannot add AdGroupAd on inactive Ad.
	AdSharingError string `json:"adSharingError,omitempty"`
	// AdxError: The reasons for the adx error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED_FEATURE" - Attempt to use non-AdX feature by AdX customer.
	AdxError string `json:"adxError,omitempty"`
	// AssetError: The reasons for the asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE" - The customer is not on the
	// allow-list for this asset type.
	//   "DUPLICATE_ASSET" - Assets are duplicated across operations.
	//   "DUPLICATE_ASSET_NAME" - The asset name is duplicated, either across
	// operations or with an existing asset.
	//   "ASSET_DATA_IS_MISSING" - The `Asset.asset_data` oneof is empty.
	//   "CANNOT_MODIFY_ASSET_NAME" - The asset has a name which is different from
	// an existing duplicate that represents the same content.
	//   "FIELD_INCOMPATIBLE_WITH_ASSET_TYPE" - The field cannot be set for this
	// asset type.
	//   "INVALID_CALL_TO_ACTION_TEXT" - Call to action must come from the list of
	// supported values.
	//   "LEAD_FORM_INVALID_FIELDS_COMBINATION" - A lead form asset is created with
	// an invalid combination of input fields.
	//   "LEAD_FORM_MISSING_AGREEMENT" - Lead forms require that the Terms of
	// Service have been agreed to before mutates can be executed.
	//   "INVALID_ASSET_STATUS" - Asset status is invalid in this operation.
	//   "FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE" - The field cannot be modified
	// by this asset type.
	//   "SCHEDULES_CANNOT_OVERLAP" - Ad schedules for the same asset cannot
	// overlap.
	//   "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF" - Cannot set both
	// percent off and money amount off fields of promotion asset.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Cannot set
	// both promotion code and orders over amount fields of promotion asset.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - The field has too many decimal
	// places specified.
	//   "DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE" - Duplicate assets across
	// operations, which have identical `Asset.asset_data` oneof, cannot have
	// different asset level fields for asset types which are deduped.
	//   "CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Carrier-specific short
	// number is not allowed.
	//   "CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer consent
	// required for call recording Terms of Service.
	//   "CALL_DISALLOWED_NUMBER_TYPE" - The type of the specified phone number is
	// not allowed.
	//   "CALL_INVALID_CONVERSION_ACTION" - If the default `call_conversion_action`
	// is not used, the customer must have a `ConversionAction` with the same id
	// and the `ConversionAction` must be call conversion type.
	//   "CALL_INVALID_COUNTRY_CODE" - The country code of the phone number is
	// invalid.
	//   "CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - The format of the phone
	// number is incorrect.
	//   "CALL_INVALID_PHONE_NUMBER" - The input phone number is not a valid phone
	// number.
	//   "CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - The phone number is not
	// supported for this country.
	//   "CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate phone number is not
	// allowed.
	//   "CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone number is not
	// allowed.
	//   "PRICE_HEADER_SAME_AS_DESCRIPTION" - `PriceOffering` cannot have the same
	// value for header and description.
	//   "MOBILE_APP_INVALID_APP_ID" - `AppId` is invalid.
	//   "MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL" - Invalid App download
	// URL in final URLs.
	//   "NAME_REQUIRED_FOR_ASSET_TYPE" - Asset name is required for the asset
	// type.
	//   "LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED" - Legacy qualifying
	// questions cannot be in the same Lead Form as custom questions.
	//   "NAME_CONFLICT_FOR_ASSET_TYPE" - Unique name is required for this asset
	// type.
	//   "CANNOT_MODIFY_ASSET_SOURCE" - Cannot modify asset source.
	//   "CANNOT_MODIFY_AUTOMATICALLY_CREATED_ASSET" - User can not modify the
	// automatically created asset.
	//   "LEAD_FORM_LOCATION_ANSWER_TYPE_DISALLOWED" - Lead Form is disallowed to
	// use `LOCATION` answer type.
	//   "PAGE_FEED_INVALID_LABEL_TEXT" - Page Feed label text contains invalid
	// characters.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_WHATSAPP_MESSAGE_ASSETS" - The customer is
	// not in the allow-list for whatsapp message asset type.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_APP_DEEP_LINK_ASSETS" - Only customers on
	// the allowlist can create `AppDeepLinkAsset`.
	//   "PROMOTION_BARCODE_CANNOT_CONTAIN_LINKS" - Promotion barcode cannot
	// contain links.
	//   "PROMOTION_BARCODE_INVALID_FORMAT" - Failed to encode promotion barcode:
	// Invalid format.
	//   "UNSUPPORTED_BARCODE_TYPE" - Barcode type is not supported.
	//   "PROMOTION_QR_CODE_CANNOT_CONTAIN_LINKS" - Promotion QR code cannot
	// contain links.
	//   "PROMOTION_QR_CODE_INVALID_FORMAT" - Failed to encode promotion QR code:
	// Invalid format.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_MESSAGE_ASSETS" - The customer is not in
	// the allow-list for Business message asset type.
	AssetError string `json:"assetError,omitempty"`
	// AssetGenerationError: The reasons for the GenAI asset generation error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_ASSETS_GENERATED" - No assets were generated for the given request.
	//   "FINAL_URL_REQUIRED" - A final URL is required but was not provided, and
	// could not be sourced from the existing generation context because no
	// existing generation context was provided.
	//   "GENERATION_CONTEXT_MISSING_FINAL_URL" - A final URL is required but was
	// not provided, and could not be sourced from the provided existing generation
	// context.
	//   "FINAL_URL_SENSITIVE" - The provided final URL is considered sensitive,
	// and assets cannot be generated.
	//   "FINAL_URL_UNSUPPORTED_LANGUAGE" - The language of the provided final URL
	// is not supported.
	//   "FINAL_URL_UNAVAILABLE" - The provided final URL was not indexed or could
	// otherwise not be processed.
	//   "CAMPAIGN_TYPE_REQUIRED" - Campaign type is required but was not provided,
	// and could not be sourced from the existing generation context because no
	// existing generation context was provided.
	//   "UNSUPPORTED_CAMPAIGN_TYPE" - The provided campaign type is not supported
	// for this asset generation operation.
	//   "UNSUPPORTED_FIELD_TYPE" - The provided field type is not supported for
	// this asset generation operation.
	//   "UNSUPPORTED_FIELD_TYPE_FOR_CAMPAIGN_TYPE" - The provided field type is
	// not supported for the given campaign type.
	//   "FREEFORM_PROMPT_UNSUPPORTED_LANGUAGE" - The language of the provided
	// freeform prompt is not supported.
	//   "FREEFORM_PROMPT_SENSITIVE" - The provided freeform prompt is considered
	// sensitive, and assets cannot be generated.
	//   "INPUT_IMAGE_FILE_SIZE_TOO_LARGE" - The provided image file size exceeds
	// the limit.
	//   "INPUT_IMAGE_EMPTY" - The provided image is empty.
	//   "GENERATION_TYPE_REQUIRED" - Exactly one generation type must be provided.
	//   "TOO_MANY_KEYWORDS" - Too many keywords provided in request.
	//   "KEYWORD_INVALID_LENGTH" - A provided keyword does not have a valid
	// length.
	//   "NO_VALID_KEYWORDS" - All keywords were filtered out.
	//   "FREEFORM_PROMPT_INVALID_LENGTH" - The provided freeform prompt does not
	// have a valid length.
	//   "FREEFORM_PROMPT_REFERENCES_CHILDREN" - The provided freeform prompt
	// references children.
	//   "FREEFORM_PROMPT_REFERENCES_SPECIFIC_PEOPLE" - The provided freeform
	// prompt references specific people.
	//   "FREEFORM_PROMPT_VIOLATES_ADS_POLICY" - The provided freeform prompt
	// violates Ads Policy.
	//   "FREEFORM_PROMPT_BRAND_CONTENT" - The provided freeform prompt contains
	// brand content.
	//   "INPUT_IMAGE_DEPICTS_CHILDREN" - The provided image depicts children.
	//   "INPUT_IMAGE_CONTAINS_BRAND_CONTENT" - The provided image contains brand
	// content.
	//   "INPUT_IMAGE_SENSITIVE" - The provided image contains sensitive subject
	// matter.
	//   "INPUT_IMAGE_VIOLATES_POLICY" - The provided image may violate Google Ads
	// policies.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT_CHILDREN_DEPICTION" - All output images
	// were filtered out because they included depictions of children.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT_SPECIFIC_PEOPLE" - All output images were
	// filtered out because they included depictions of specific people.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT" - All output images were filtered out for
	// a reason not covered by a more specific error code.
	//   "INPUT_IMAGE_REQUIRED" - At least one input image is required for certain
	// requests.
	//   "INPUT_IMAGE_UNSUPPORTED_IMAGE_TYPE" - The provided image is of an
	// unsupported type.
	//   "CONTEXT_ASSET_GROUP_NOT_FOUND" - Asset Group could not be found with the
	// provided ID.
	//   "CONTEXT_AD_GROUP_AD_NOT_FOUND" - Ad Group Ad could not be found with the
	// provided ID combination.
	//   "CONTEXT_CAMPAIGN_NOT_FOUND" - Could not find Campaign associated with the
	// provided generation context.
	AssetGenerationError string `json:"assetGenerationError,omitempty"`
	// AssetGroupAssetError: The reasons for the asset group asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_RESOURCE" - Cannot add duplicated asset group asset.
	//   "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION" - Expandable tags are not
	// allowed in description assets.
	//   "AD_CUSTOMIZER_NOT_SUPPORTED" - Ad customizers are not supported in
	// assetgroup's text assets.
	//   "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN" - Cannot add a
	// HotelPropertyAsset to an AssetGroup that isn't linked to the parent
	// campaign's hotel_property_asset_set field.
	AssetGroupAssetError string `json:"assetGroupAssetError,omitempty"`
	// AssetGroupError: The reasons for the asset group error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - Each asset group in a single campaign must have a
	// unique name.
	//   "CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE" - Cannot add asset group for
	// the campaign type.
	//   "NOT_ENOUGH_HEADLINE_ASSET" - Not enough headline asset for a valid asset
	// group.
	//   "NOT_ENOUGH_LONG_HEADLINE_ASSET" - Not enough long headline asset for a
	// valid asset group.
	//   "NOT_ENOUGH_DESCRIPTION_ASSET" - Not enough description headline asset for
	// a valid asset group.
	//   "NOT_ENOUGH_BUSINESS_NAME_ASSET" - Not enough business name asset for a
	// valid asset group.
	//   "NOT_ENOUGH_MARKETING_IMAGE_ASSET" - Not enough marketing image asset for
	// a valid asset group.
	//   "NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET" - Not enough square marketing
	// image asset for a valid asset group.
	//   "NOT_ENOUGH_LOGO_ASSET" - Not enough logo asset for a valid asset group.
	//   "FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER" - Final url and
	// shopping merchant url does not have the same domain.
	//   "PATH1_REQUIRED_WHEN_PATH2_IS_SET" - Path1 required when path2 is set.
	//   "SHORT_DESCRIPTION_REQUIRED" - At least one short description asset is
	// required for a valid asset group.
	//   "FINAL_URL_REQUIRED" - Final url field is required for asset group.
	//   "FINAL_URL_CONTAINS_INVALID_DOMAIN_NAME" - Final url contains invalid
	// domain name.
	//   "AD_CUSTOMIZER_NOT_SUPPORTED" - Ad customizers are not supported in asset
	// group's text field.
	//   "CANNOT_MUTATE_ASSET_GROUP_FOR_REMOVED_CAMPAIGN" - Cannot mutate asset
	// group for campaign with removed status.
	AssetGroupError string `json:"assetGroupError,omitempty"`
	// AssetGroupListingGroupFilterError: The reasons for the asset group listing
	// group filter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TREE_TOO_DEEP" - Listing group tree is too deep.
	//   "UNIT_CANNOT_HAVE_CHILDREN" - Listing Group UNIT node cannot have
	// children.
	//   "SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD" - Listing Group SUBDIVISION
	// node must have everything else child.
	//   "DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS" - Dimension type of Listing
	// Group must be the same as that of its siblings.
	//   "SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS" - The sibling Listing Groups
	// target exactly the same dimension value.
	//   "SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS" - The dimension type is the same
	// as one of the ancestor Listing Groups.
	//   "MULTIPLE_ROOTS" - Each Listing Group tree must have a single root.
	//   "INVALID_DIMENSION_VALUE" - Invalid Listing Group dimension value.
	//   "MUST_REFINE_HIERARCHICAL_PARENT_TYPE" - Hierarchical dimension must
	// refine a dimension of the same type.
	//   "INVALID_PRODUCT_BIDDING_CATEGORY" - Invalid Product Bidding Category.
	//   "CHANGING_CASE_VALUE_WITH_CHILDREN" - Modifying case value is allowed only
	// while updating the entire subtree at the same time.
	//   "SUBDIVISION_HAS_CHILDREN" - Subdivision node has children which must be
	// removed first.
	//   "CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE" - Dimension can't subdivide
	// everything-else node in its own hierarchy.
	//   "DIMENSION_TYPE_NOT_ALLOWED" - This dimension type is not allowed in this
	// context.
	//   "DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP" - All the webpage filters
	// under an AssetGroup should be distinct.
	//   "LISTING_SOURCE_NOT_ALLOWED" - Filter of the listing source type is not
	// allowed in the context.
	//   "FILTER_EXCLUSION_NOT_ALLOWED" - Exclusion filters are not allowed in the
	// context.
	//   "MULTIPLE_LISTING_SOURCES" - All the filters under an AssetGroup should
	// have the same listing source.
	//   "MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED" - All the conditions in a
	// webpage needs to be of same type.
	//   "MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP" - All the webpage types of the
	// filters under an AssetGroup should be of same type. Example: All the webpage
	// types can be of type custom_label or url_contains but not both.
	//   "PAGE_FEED_FILTER_HAS_PARENT" - All page feed filter nodes are root nodes
	// and they can't have a parent.
	//   "MULTIPLE_OPERATIONS_ON_ONE_NODE" - There cannot be more than one mutate
	// operation per request that targets a single asset group listing group
	// filter.
	//   "TREE_WAS_INVALID_BEFORE_MUTATION" - The tree is in an invalid state in
	// the database. Any changes that don't fix its issues will fail validation.
	AssetGroupListingGroupFilterError string `json:"assetGroupListingGroupFilterError,omitempty"`
	// AssetGroupSignalError: The reasons for the asset group hint error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_MANY_WORDS" - The number of words in the Search Theme signal exceed
	// the allowed maximum. You can add up to 10 words in a keyword. See
	// https://support.google.com/google-ads/answer/7476658 for details.
	//   "SEARCH_THEME_POLICY_VIOLATION" - The search theme requested to be added
	// violates certain policy. See
	// https://support.google.com/adspolicy/answer/6008942.
	//   "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID" - The asset group referenced by the
	// asset group signal does not match the asset group referenced by the audience
	// being used in the asset group signal.
	AssetGroupSignalError string `json:"assetGroupSignalError,omitempty"`
	// AssetLinkError: The reasons for the asset link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "PINNING_UNSUPPORTED" - Pinning is not supported for the given asset link
	// field.
	//   "UNSUPPORTED_FIELD_TYPE" - The given field type is not supported to be
	// added directly through asset links.
	//   "FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE" - The given asset's type and the
	// specified field type are incompatible.
	//   "FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE" - The specified field type is
	// incompatible with the given campaign type.
	//   "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE" - The campaign advertising channel
	// type cannot be associated with the given asset due to channel-based
	// restrictions on the asset's fields.
	//   "IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE" - The image asset provided is
	// not within the dimension constraints specified for the submitted asset
	// field.
	//   "INVALID_PINNED_FIELD" - The pinned field is not valid for the submitted
	// asset field.
	//   "MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE" - The media bundle asset provided
	// is too large for the submitted asset field.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION" - Not enough
	// assets are available for use with other fields since other assets are pinned
	// to specific fields.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK" - Not enough assets with
	// fallback are available. When validating the minimum number of assets, assets
	// without fallback (for example, assets that contain location tag without
	// default value "{LOCATION(City)}") will not be counted.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION" -
	// This is a combination of the
	// NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and
	// NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets
	// with fallback are available since some assets are pinned.
	//   "YOUTUBE_VIDEO_REMOVED" - The YouTube video referenced in the provided
	// asset has been removed.
	//   "YOUTUBE_VIDEO_TOO_LONG" - The YouTube video referenced in the provided
	// asset is too long for the field submitted.
	//   "YOUTUBE_VIDEO_TOO_SHORT" - The YouTube video referenced in the provided
	// asset is too short for the field submitted.
	//   "EXCLUDED_PARENT_FIELD_TYPE" - The specified field type is excluded for
	// given campaign or ad group.
	//   "INVALID_STATUS" - The status is invalid for the operation specified.
	//   "YOUTUBE_VIDEO_DURATION_NOT_DEFINED" - The YouTube video referenced in the
	// provided asset has unknown duration. This might be the case for a livestream
	// video or a video being currently uploaded to YouTube. In both cases, the
	// video duration should eventually get resolved.
	//   "CANNOT_CREATE_AUTOMATICALLY_CREATED_LINKS" - User cannot create
	// automatically created links.
	//   "CANNOT_LINK_TO_AUTOMATICALLY_CREATED_ASSET" - Advertiser links cannot
	// link to automatically created asset.
	//   "CANNOT_MODIFY_ASSET_LINK_SOURCE" - Automatically created links cannot be
	// changed into advertiser links or the reverse.
	//   "CANNOT_LINK_LOCATION_LEAD_FORM_WITHOUT_LOCATION_ASSET" - Lead Form asset
	// with Location answer type can't be linked to the Customer/Campaign because
	// there are no Location assets.
	//   "CUSTOMER_NOT_VERIFIED" - Customer is not verified.
	//   "UNSUPPORTED_CALL_TO_ACTION" - Call to action value is not supported.
	//   "BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL" - For Performance Max
	// campaigns where brand_guidelines_enabled is false, business name and logo
	// assets must be linked as AssetGroupAssets.
	//   "BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL" - For Performance Max
	// campaigns where brand_guidelines_enabled is true, business name and logo
	// assets must be linked as CampaignAssets.
	AssetLinkError string `json:"assetLinkError,omitempty"`
	// AssetSetAssetError: The reasons for the asset set asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_ASSET_TYPE" - The asset type is not eligible to be linked to the
	// specific type of asset set.
	//   "INVALID_ASSET_SET_TYPE" - The asset set type is not eligible to contain
	// the specified type of assets.
	//   "DUPLICATE_EXTERNAL_KEY" - The asset contains duplicate external key with
	// another asset in the asset set.
	//   "PARENT_LINKAGE_DOES_NOT_EXIST" - When attaching a Location typed Asset to
	// a LocationGroup typed AssetSet, the AssetSetAsset linkage between the parent
	// LocationSync AssetSet and the Asset doesn't exist.
	AssetSetAssetError string `json:"assetSetAssetError,omitempty"`
	// AssetSetError: The reasons for the asset set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ASSET_SET_NAME" - The asset set name matches that of another
	// enabled asset set.
	//   "INVALID_PARENT_ASSET_SET_TYPE" - The type of AssetSet.asset_set_source
	// does not match the type of AssetSet.location_set.source in its parent
	// AssetSet.
	//   "ASSET_SET_SOURCE_INCOMPATIBLE_WITH_PARENT_ASSET_SET" - The asset set
	// source doesn't match its parent AssetSet's data.
	//   "ASSET_SET_TYPE_CANNOT_BE_LINKED_TO_CUSTOMER" - This AssetSet type cannot
	// be linked to CustomerAssetSet.
	//   "INVALID_CHAIN_IDS" - The chain id(s) in ChainSet of a LOCATION_SYNC typed
	// AssetSet is invalid.
	//   "LOCATION_SYNC_ASSET_SET_DOES_NOT_SUPPORT_RELATIONSHIP_TYPE" - The
	// relationship type in ChainSet of a LOCATION_SYNC typed AssetSet is not
	// supported.
	//   "NOT_UNIQUE_ENABLED_LOCATION_SYNC_TYPED_ASSET_SET" - There is more than
	// one enabled LocationSync typed AssetSet under one customer.
	//   "INVALID_PLACE_IDS" - The place id(s) in a LocationSync typed AssetSet is
	// invalid and can't be decoded.
	//   "OAUTH_INFO_INVALID" - The Google Business Profile OAuth info is invalid.
	//   "OAUTH_INFO_MISSING" - The Google Business Profile OAuth info is missing.
	//   "CANNOT_DELETE_AS_ENABLED_LINKAGES_EXIST" - Can't delete an AssetSet if it
	// has any enabled linkages (e.g. CustomerAssetSet), or AssetSet is a parent
	// AssetSet and has enabled child AssetSet associated.
	AssetSetError string `json:"assetSetError,omitempty"`
	// AssetSetLinkError: The reasons for the asset set link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE" - Advertising channel type cannot
	// be attached to the asset set due to channel-based restrictions.
	//   "DUPLICATE_FEED_LINK" - For this asset set type, only one campaign to feed
	// linkage is allowed.
	//   "INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE" - The asset set type and
	// campaign type are incompatible.
	//   "DUPLICATE_ASSET_SET_LINK" - Cannot link duplicate asset sets to the same
	// campaign.
	//   "ASSET_SET_LINK_CANNOT_BE_REMOVED" - Cannot remove the asset set link. If
	// a campaign is linked with only one asset set and you attempt to unlink them,
	// this error will be triggered.
	AssetSetLinkError string `json:"assetSetLinkError,omitempty"`
	// AudienceError: The reasons for the audience error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_IN_USE" - An audience with this name already exists.
	//   "DIMENSION_INVALID" - A dimension within the audience definition is not
	// valid.
	//   "AUDIENCE_SEGMENT_NOT_FOUND" - One of the audience segment added is not
	// found.
	//   "AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED" - One of the audience segment type
	// is not supported.
	//   "DUPLICATE_AUDIENCE_SEGMENT" - The same segment already exists in this
	// audience.
	//   "TOO_MANY_SEGMENTS" - Audience can't have more than allowed number
	// segments.
	//   "TOO_MANY_DIMENSIONS_OF_SAME_TYPE" - Audience can't have multiple
	// dimensions of same type.
	//   "IN_USE" - The audience cannot be removed, because it is currently used in
	// an ad group criterion or asset group signal in an (enabled or paused) ad
	// group or campaign.
	//   "MISSING_ASSET_GROUP_ID" - Asset Group scoped audience requires an asset
	// group ID.
	//   "CANNOT_CHANGE_FROM_CUSTOMER_TO_ASSET_GROUP_SCOPE" - Audience scope may
	// not be changed from Customer to AssetGroup.
	AudienceError string `json:"audienceError,omitempty"`
	// AudienceInsightsError: The reasons for the Audience Insights error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS" - The dimensions
	// cannot be used with topic audience combinations.
	AudienceInsightsError string `json:"audienceInsightsError,omitempty"`
	// AuthenticationError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AUTHENTICATION_ERROR" - Authentication of the request failed.
	//   "CLIENT_CUSTOMER_ID_INVALID" - Client customer ID is not a number.
	//   "CUSTOMER_NOT_FOUND" - No customer found for the provided customer ID.
	//   "GOOGLE_ACCOUNT_DELETED" - Client's Google account is deleted.
	//   "GOOGLE_ACCOUNT_COOKIE_INVALID" - Account login token in the cookie is
	// invalid.
	//   "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED" - A problem occurred during Google
	// account authentication.
	//   "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH" - The user in the Google
	// account login token does not match the user ID in the cookie.
	//   "LOGIN_COOKIE_REQUIRED" - Login cookie is required for authentication.
	//   "NOT_ADS_USER" - The Google account that generated the OAuth access token
	// is not associated with a Search Ads 360 account. Create a new account, or
	// add the Google account to an existing Search Ads 360 account.
	//   "OAUTH_TOKEN_INVALID" - OAuth token in the header is not valid.
	//   "OAUTH_TOKEN_EXPIRED" - OAuth token in the header has expired.
	//   "OAUTH_TOKEN_DISABLED" - OAuth token in the header has been disabled.
	//   "OAUTH_TOKEN_REVOKED" - OAuth token in the header has been revoked.
	//   "OAUTH_TOKEN_HEADER_INVALID" - OAuth token HTTP header is malformed.
	//   "LOGIN_COOKIE_INVALID" - Login cookie is not valid.
	//   "INVALID_EMAIL_ADDRESS" - The email address provided is invalid or does
	// not exist.
	//   "USER_ID_INVALID" - User ID in the header is not a valid ID.
	//   "TWO_STEP_VERIFICATION_NOT_ENROLLED" - An account administrator changed
	// this account's authentication settings. To access this account, enable
	// 2-Step Verification in your Google account at
	// https://www.google.com/landing/2step.
	//   "ADVANCED_PROTECTION_NOT_ENROLLED" - An account administrator changed this
	// account's authentication settings. To access this account, enable Advanced
	// Protection in your Google account at
	// https://landing.google.com/advancedprotection.
	//   "ORGANIZATION_NOT_RECOGNIZED" - The Cloud organization associated with the
	// project is not recognized.
	//   "ORGANIZATION_NOT_APPROVED" - The Cloud organization associated with the
	// project is not approved for prod access.
	//   "ORGANIZATION_NOT_ASSOCIATED_WITH_DEVELOPER_TOKEN" - The Cloud
	// organization associated with the project is not associated with the
	// developer token.
	//   "DEVELOPER_TOKEN_INVALID" - The developer token is not valid.
	AuthenticationError string `json:"authenticationError,omitempty"`
	// AuthorizationError: An error encountered when trying to authorize a user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "USER_PERMISSION_DENIED" - User doesn't have permission to access
	// customer. Note: If you're accessing a client customer, the manager's
	// customer ID must be set in the `login-customer-id` header. Learn more at
	// https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header
	//   "DEVELOPER_TOKEN_NOT_ON_ALLOWLIST" - The developer token is not on the
	// allow-list.
	//   "DEVELOPER_TOKEN_PROHIBITED" - The developer token is not allowed with the
	// project sent in the request.
	//   "PROJECT_DISABLED" - The Google Cloud project sent in the request does not
	// have permission to access the api.
	//   "AUTHORIZATION_ERROR" - Authorization of the client failed.
	//   "ACTION_NOT_PERMITTED" - The user does not have permission to perform this
	// action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.
	//   "INCOMPLETE_SIGNUP" - Signup not complete.
	//   "CUSTOMER_NOT_ENABLED" - The customer account can't be accessed because it
	// is not yet enabled or has been deactivated.
	//   "MISSING_TOS" - The developer must sign the terms of service. They can be
	// found here: https://developers.google.com/terms
	//   "DEVELOPER_TOKEN_NOT_APPROVED" - The developer token is only approved for
	// use with test accounts. To access non-test accounts, apply for Basic or
	// Standard access.
	//   "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION" - The login
	// customer specified does not have access to the account specified, so the
	// request is invalid.
	//   "SERVICE_ACCESS_DENIED" - The developer specified does not have access to
	// the service.
	//   "ACCESS_DENIED_FOR_ACCOUNT_TYPE" - The customer (or login customer) isn't
	// allowed in Search Ads 360 API. It belongs to another ads system.
	//   "METRIC_ACCESS_DENIED" - The developer does not have access to the metrics
	// queried.
	//   "CLOUD_PROJECT_NOT_UNDER_ORGANIZATION" - The Google Cloud project is not
	// under the required organization.
	//   "ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT" - The user does not have
	// permission to perform this action on the resource or method because the
	// Google Ads account is suspended.
	AuthorizationError string `json:"authorizationError,omitempty"`
	// AutomaticallyCreatedAssetRemovalError: The reasons for error in
	// automatically created asset removal action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_DOES_NOT_EXIST" - The ad does not exist.
	//   "INVALID_AD_TYPE" - Ad type is not supported. Only Responsive Search Ad
	// type is supported.
	//   "ASSET_DOES_NOT_EXIST" - The asset does not exist.
	//   "ASSET_FIELD_TYPE_DOES_NOT_MATCH" - The asset field type does not match.
	//   "NOT_AN_AUTOMATICALLY_CREATED_ASSET" - Not an automatically created asset.
	AutomaticallyCreatedAssetRemovalError string `json:"automaticallyCreatedAssetRemovalError,omitempty"`
	// BatchJobError: The reasons for the batch job error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING" - The batch job cannot add
	// more operations or run after it has started running.
	//   "EMPTY_OPERATIONS" - The operations for an AddBatchJobOperations request
	// were empty.
	//   "INVALID_SEQUENCE_TOKEN" - The sequence token for an AddBatchJobOperations
	// request was invalid.
	//   "RESULTS_NOT_READY" - Batch job results can only be retrieved once the job
	// is finished.
	//   "INVALID_PAGE_SIZE" - The page size for ListBatchJobResults was invalid.
	//   "CAN_ONLY_REMOVE_PENDING_JOB" - The batch job cannot be removed because it
	// has started running.
	//   "CANNOT_LIST_RESULTS" - The batch job cannot be listed due to unexpected
	// errors such as duplicate checkpoints.
	//   "ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE" - The request
	// contains interdependent AssetGroup and AssetGroupAsset operations that are
	// treated atomically as a single transaction, and one or more of the
	// operations in that transaction failed, which caused the entire transaction,
	// and therefore this mutate operation, to fail. The operations that caused the
	// transaction to fail can be found in the consecutive AssetGroup or
	// AssetGroupAsset results with the same asset group id. The mutate operation
	// will be successful once the remaining errors in the transaction are fixed.
	//   "ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE" - The request
	// contains interdependent AssetGroupListingGroupFilter operations that are
	// treated atomically as a single transaction, and one or more of the
	// operations in that transaction failed, which caused the entire transaction,
	// and therefore this mutate operation, to fail. The operations that caused the
	// transaction to fail can be found in the consecutive
	// AssetGroupListingGroupFilter results with the same asset group id. The
	// mutate operation will be successful once the remaining errors in the
	// transaction are fixed.
	//   "REQUEST_TOO_LARGE" - The AddBatchJobOperationsRequest is too large. Split
	// the request into smaller requests. The maximum allowed request size is
	// 10484504 bytes.
	//   "CAMPAIGN_AND_CAMPAIGN_ASSET_TRANSACTION_FAILURE" - This error indicates a
	// failed transaction involving interdependent Campaign and CampaignAsset
	// operations that are treated atomically as a single transaction. Because some
	// operations within the transaction failed, the entire set of changes was
	// rejected. Related error details are found in the results for the Campaign
	// and CampaignAssets sharing the same Campaign ID. The transaction will
	// succeed after all associated errors are resolved.
	BatchJobError string `json:"batchJobError,omitempty"`
	// BenchmarksError: The reasons for the Benchmarks error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MAX_QUERY_COMPLEXITY_EXCEEDED" - The combination of inputs to generate
	// benchmarks is too complex. To reduce complexity, try selecting a more
	// granular benchmarks source, a smaller date range, or a smaller set of
	// products.
	BenchmarksError string `json:"benchmarksError,omitempty"`
	// BiddingError: The reasons for the bidding errors
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED" - Cannot transition to new
	// bidding strategy.
	//   "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN" - Cannot attach bidding
	// strategy to campaign.
	//   "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE" - Bidding strategy is not
	// supported or cannot be used as anonymous.
	//   "INVALID_BIDDING_STRATEGY_TYPE" - The type does not match the named
	// strategy's type.
	//   "INVALID_BID" - The bid is invalid.
	//   "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE" - Bidding strategy is
	// not available for the account type.
	//   "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY" - Campaign can not be
	// created with given bidding strategy. It can be transitioned to the strategy,
	// once eligible.
	//
	// "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY"
	//  - Cannot target content network only as campaign uses Page One Promoted
	// bidding strategy.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE" - Budget Optimizer and
	// Target Spend bidding strategies are not supported for campaigns with
	// AdSchedule targeting.
	//   "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER" - Pay per conversion is
	// not available to all the customer, only few customers on the allow-list can
	// use this.
	//   "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA" - Pay per conversion is
	// not allowed with Target CPA.
	//   "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS" - Cannot set
	// bidding strategy to Manual CPM for search network only campaigns.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS" - The bidding
	// strategy is not supported for use in drafts or experiments.
	//   "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION" -
	// Bidding strategy type does not support product type ad group criterion.
	//   "BID_TOO_SMALL" - Bid amount is too small.
	//   "BID_TOO_BIG" - Bid amount is too big.
	//   "BID_TOO_MANY_FRACTIONAL_DIGITS" - Bid has too many fractional digit
	// precision.
	//   "INVALID_DOMAIN_NAME" - Invalid domain name specified.
	//   "NOT_COMPATIBLE_WITH_PAYMENT_MODE" - The field is not compatible with the
	// payment mode.
	//   "BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET" - Bidding strategy
	// type is incompatible with shared budget.
	//   "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED" - The attached bidding
	// strategy and budget must be aligned with each other if alignment is
	// specified on either entity.
	//
	// "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN"
	//  - The attached bidding strategy and budget must be attached to the same
	// campaigns to become aligned.
	//   "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER" - The aligned
	// bidding strategy and budget must be removed at the same time.
	//   "CPC_BID_FLOOR_MICROS_GREATER_THAN_CPC_BID_CEILING_MICROS" -
	// cpc_bid_floor_micros is greater than cpc_bid_ceiling_micros.
	//   "TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_MUST_BE_INTEGER" -
	// target_roas_tolerance_percent_millis must be integer.
	BiddingError string `json:"biddingError,omitempty"`
	// BiddingStrategyError: An error with a Bidding Strategy mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - Each bidding strategy must have a unique name.
	//   "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE" - Bidding strategy type is
	// immutable.
	//   "CANNOT_REMOVE_ASSOCIATED_STRATEGY" - Only bidding strategies not linked
	// to campaigns, adgroups or adgroup criteria can be removed.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED" - The specified bidding strategy is not
	// supported.
	//   "INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE" - The
	// bidding strategy is incompatible with the campaign's bidding strategy goal
	// type.
	BiddingStrategyError string `json:"biddingStrategyError,omitempty"`
	// BillingSetupError: The reasons for the billing setup error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT" - Cannot specify both an existing
	// payments account and a new payments account when setting up billing.
	//   "CANNOT_REMOVE_STARTED_BILLING_SETUP" - Cannot cancel an approved billing
	// setup whose start time has passed.
	//   "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT" - Cannot perform a Change
	// of Bill-To (CBT) to the same payments account.
	//   "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS" - Billing setups can
	// only be used by customers with ENABLED or DRAFT status.
	//   "INVALID_PAYMENTS_ACCOUNT" - Billing setups must either include a
	// correctly formatted existing payments account id, or a non-empty new
	// payments account name.
	//   "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY" - Only billable and
	// third-party customers can create billing setups.
	//   "INVALID_START_TIME_TYPE" - Billing setup creations can only use NOW for
	// start time type.
	//   "THIRD_PARTY_ALREADY_HAS_BILLING" - Billing setups can only be created for
	// a third-party customer if they do not already have a setup.
	//   "BILLING_SETUP_IN_PROGRESS" - Billing setups cannot be created if there is
	// already a pending billing in progress.
	//   "NO_SIGNUP_PERMISSION" - Billing setups can only be created by customers
	// who have permission to setup billings. Users can contact a representative
	// for help setting up permissions.
	//   "CHANGE_OF_BILL_TO_IN_PROGRESS" - Billing setups cannot be created if
	// there is already a future-approved billing.
	//   "PAYMENTS_PROFILE_NOT_FOUND" - Requested payments profile not found.
	//   "PAYMENTS_ACCOUNT_NOT_FOUND" - Requested payments account not found.
	//   "PAYMENTS_PROFILE_INELIGIBLE" - Billing setup creation failed because the
	// payments profile is ineligible.
	//   "PAYMENTS_ACCOUNT_INELIGIBLE" - Billing setup creation failed because the
	// payments account is ineligible.
	//   "CUSTOMER_NEEDS_INTERNAL_APPROVAL" - Billing setup creation failed because
	// the payments profile needs internal approval.
	//   "PAYMENTS_PROFILE_NEEDS_SERVICE_AGREEMENT_ACCEPTANCE" - Billing setup
	// creation failed because the user needs to accept master service agreement on
	// the payments profile.
	//   "PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH" - Payments account
	// has different currency code than the current customer and hence cannot be
	// used to setup billing.
	//   "FUTURE_START_TIME_PROHIBITED" - A start time in the future cannot be used
	// because there is currently no active billing setup for this customer.
	//   "TOO_MANY_BILLING_SETUPS_FOR_PAYMENTS_ACCOUNT" - The payments account has
	// maximum number of billing setups.
	BillingSetupError string `json:"billingSetupError,omitempty"`
	// BrandGuidelinesMigrationError: The reasons for the brand guidelines
	// migration error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BRAND_GUIDELINES_ALREADY_ENABLED" - This campaign is already enabled for
	// Brand Guidelines.
	//   "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_REMOVED_CAMPAIGN" - Brand Guidelines
	// can only be enabled for active or suspended campaigns.
	//   "BRAND_GUIDELINES_LOGO_LIMIT_EXCEEDED" - Maximum of 5 square and landscape
	// logos can be specified for Brand Guidelines.
	//   "CANNOT_AUTO_POPULATE_BRAND_ASSETS_WHEN_BRAND_ASSETS_PROVIDED" - Either
	// auto_populate_brand_assets must be true or brand_assets must be provided,
	// but not both.
	//   "AUTO_POPULATE_BRAND_ASSETS_REQUIRED_WHEN_BRAND_ASSETS_OMITTED" - Either
	// auto_populate_brand_assets can be false or brand_assets can be omitted, but
	// not both.
	//   "TOO_MANY_ENABLE_OPERATIONS" - A maximum of 10 enable operations can be
	// executed in a request.
	BrandGuidelinesMigrationError string `json:"brandGuidelinesMigrationError,omitempty"`
	// CampaignBudgetError: An error with a Campaign Budget mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_BUDGET_CANNOT_BE_SHARED" - The campaign budget cannot be shared.
	//   "CAMPAIGN_BUDGET_REMOVED" - The requested campaign budget no longer
	// exists.
	//   "CAMPAIGN_BUDGET_IN_USE" - The campaign budget is associated with at least
	// one campaign, and so the campaign budget cannot be removed.
	//   "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE" - Customer is not on the allow-list
	// for this campaign budget period.
	//   "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET" - This field is
	// not mutable on implicitly shared campaign budgets
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED" - Cannot change
	// explicitly shared campaign budgets back to implicitly shared ones.
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME" - An
	// implicit campaign budget without a name cannot be changed to explicitly
	// shared campaign budget.
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED" - Cannot change an
	// implicitly shared campaign budget to an explicitly shared one.
	//   "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS" -
	// Only explicitly shared campaign budgets can be used with multiple campaigns.
	//   "DUPLICATE_NAME" - A campaign budget with this name already exists.
	//   "MONEY_AMOUNT_IN_WRONG_CURRENCY" - A money amount was not in the expected
	// currency.
	//   "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC" - A money amount was less
	// than the minimum CPC for currency.
	//   "MONEY_AMOUNT_TOO_LARGE" - A money amount was greater than the maximum
	// allowed.
	//   "NEGATIVE_MONEY_AMOUNT" - A money amount was negative.
	//   "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT" - A money amount was not a
	// multiple of a minimum unit.
	//   "TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY" - Total budget
	// amount must be unset when BudgetPeriod is DAILY.
	//   "INVALID_PERIOD" - The period of the budget is not allowed.
	//   "CANNOT_USE_ACCELERATED_DELIVERY_MODE" - Cannot use accelerated delivery
	// method on this budget.
	//   "BUDGET_AMOUNT_MUST_BE_UNSET_FOR_CUSTOM_BUDGET_PERIOD" - Budget amount
	// must be unset when BudgetPeriod is CUSTOM.
	//   "BUDGET_BELOW_PER_DAY_MINIMUM" - Budget amount or total amount must be
	// above this campaign's per-day minimum. See the error's
	// details.budget_per_day_minimum_error_details field for more information.
	CampaignBudgetError string `json:"campaignBudgetError,omitempty"`
	// CampaignConversionGoalError: The reasons for the campaign conversion goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN" - Campaign
	// is managed by Search Ads 360 but uses Unified Goal.
	//   "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN" - Performance
	// Max campaign cannot use an included store sale campaign goal.
	CampaignConversionGoalError string `json:"campaignConversionGoalError,omitempty"`
	// CampaignCriterionError: The reasons for the campaign criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion (keyword v.s.
	// placement) is required for CREATE and UPDATE operations.
	//   "INVALID_PLACEMENT_URL" - Invalid placement URL.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type can not be excluded for the
	// campaign by the customer. like AOL account type cannot target site type
	// criteria
	//   "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE" - Cannot set the campaign criterion
	// status for this criteria type.
	//   "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA" - Cannot set the campaign
	// criterion status for an excluded criteria.
	//   "CANNOT_TARGET_AND_EXCLUDE" - Cannot target and exclude the same
	// criterion.
	//   "TOO_MANY_OPERATIONS" - The mutate contained too many operations.
	//   "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE" - This operator cannot be
	// applied to a criterion of this type.
	//   "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL" - The
	// Shopping campaign sales country is not supported for ProductSalesChannel
	// targeting.
	//   "CANNOT_ADD_EXISTING_FIELD" - The existing field can't be updated with
	// CREATE operation. It can be updated with UPDATE operation only.
	//   "CANNOT_UPDATE_NEGATIVE_CRITERION" - Negative criteria are immutable, so
	// updates are not allowed.
	//   "CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION" - Only free form
	// names are allowed for negative Smart campaign keyword theme.
	//   "INVALID_KEYWORD_THEME_CONSTANT" - Invalid Smart campaign keyword theme
	// constant criterion.
	//   "MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME" - A Smart
	// campaign keyword theme constant or free-form Smart campaign keyword theme is
	// required.
	//   "CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN" -
	// A Smart campaign may not target proximity and location criteria
	// simultaneously.
	//   "CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN" - A Smart
	// campaign may not target multiple proximity criteria.
	//   "LOCATION_NOT_LAUNCHED_FOR_LOCAL_SERVICES_CAMPAIGN" - Location is not
	// launched for Local Services Campaigns.
	//   "LOCATION_INVALID_FOR_LOCAL_SERVICES_CAMPAIGN" - A Local Services campaign
	// may not target certain criteria types.
	//   "CANNOT_TARGET_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN" - Country locations
	// are not supported for Local Services campaign.
	//   "LOCATION_NOT_IN_HOME_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN" - Location is
	// not within the home country of Local Services campaign.
	//   "CANNOT_ADD_OR_REMOVE_LOCATION_FOR_LOCAL_SERVICES_CAMPAIGN" - Local
	// Services profile does not exist for a particular Local Services campaign.
	//   "AT_LEAST_ONE_POSITIVE_LOCATION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN" -
	// Local Services campaign must have at least one target location.
	//
	// "AT_LEAST_ONE_LOCAL_SERVICE_ID_CRITERION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN
	// " - At least one positive local service ID criterion is required for a Local
	// Services campaign.
	//   "LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY" - Local service ID is not found
	// under selected categories in local services campaign setting.
	//   "CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN" - For search
	// advertising channel, brand lists can only be applied to exclusive targeting,
	// broad match campaigns for inclusive targeting or PMax generated campaigns.
	//   "CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS" -
	// Campaigns that target all countries and territories are limited to a certain
	// number of top-level location exclusions. If removing a criterion causes the
	// campaign to target all countries and territories and the campaign has more
	// top-level location exclusions than the limit allows, then this error is
	// returned.
	//   "INVALID_VIDEO_LINEUP_ID" - Video lineup ID does not exist.
	CampaignCriterionError string `json:"campaignCriterionError,omitempty"`
	// CampaignCustomizerError: The reasons for the campaign customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	CampaignCustomizerError string `json:"campaignCustomizerError,omitempty"`
	// CampaignDraftError: The reasons for the campaign draft error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_DRAFT_NAME" - A draft with this name already exists for this
	// campaign.
	//   "INVALID_STATUS_TRANSITION_FROM_REMOVED" - The draft is removed and cannot
	// be transitioned to another status.
	//   "INVALID_STATUS_TRANSITION_FROM_PROMOTED" - The draft has been promoted
	// and cannot be transitioned to the specified status.
	//   "INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED" - The draft has failed to
	// be promoted and cannot be transitioned to the specified status.
	//   "CUSTOMER_CANNOT_CREATE_DRAFT" - This customer is not allowed to create
	// drafts.
	//   "CAMPAIGN_CANNOT_CREATE_DRAFT" - This campaign is not allowed to create
	// drafts.
	//   "INVALID_DRAFT_CHANGE" - This modification cannot be made on a draft.
	//   "INVALID_STATUS_TRANSITION" - The draft cannot be transitioned to the
	// specified status from its current status.
	//   "MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED" - The campaign has reached the
	// maximum number of drafts that can be created for a campaign throughout its
	// lifetime. No additional drafts can be created for this campaign. Removed
	// drafts also count towards this limit.
	//   "LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY" - ListAsyncErrors was called without
	// first promoting the draft.
	CampaignDraftError string `json:"campaignDraftError,omitempty"`
	// CampaignError: An error with a Campaign mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_TARGET_CONTENT_NETWORK" - Cannot target content network.
	//   "CANNOT_TARGET_SEARCH_NETWORK" - Cannot target search network.
	//   "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH" - Cannot cover search
	// network without google search network.
	//   "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN" - Cannot target Google
	// Search network for a CPM campaign.
	//   "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK" - Must target at least one
	// network.
	//   "CANNOT_TARGET_PARTNER_SEARCH_NETWORK" - Only some Google partners are
	// allowed to target partner search network.
	//   "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY"
	// - Cannot target content network only as campaign has criteria-level bidding
	// strategy.
	//   "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS" - Cannot modify the
	// start or end date such that the campaign duration would not contain the
	// durations of all runnable trials.
	//   "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN" - Cannot modify dates, budget or status
	// of a trial campaign.
	//   "DUPLICATE_CAMPAIGN_NAME" - Trying to modify the name of an active or
	// paused campaign, where the name is already assigned to another active or
	// paused campaign.
	//   "INCOMPATIBLE_CAMPAIGN_FIELD" - Two fields are in conflicting modes.
	//   "INVALID_CAMPAIGN_NAME" - Campaign name cannot be used.
	//   "INVALID_AD_SERVING_OPTIMIZATION_STATUS" - Given status is invalid.
	//   "INVALID_TRACKING_URL" - Error in the campaign level tracking URL.
	//   "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING" - Cannot set
	// both tracking URL template and tracking setting. A user has to clear legacy
	// tracking setting in order to add tracking URL template.
	//   "MAX_IMPRESSIONS_NOT_IN_RANGE" - The maximum number of impressions for
	// Frequency Cap should be an integer greater than 0.
	//   "TIME_UNIT_NOT_SUPPORTED" - Only the Day, Week and Month time units are
	// supported.
	//   "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED" - Operation not allowed on
	// a campaign whose serving status has ended
	//   "BUDGET_CANNOT_BE_SHARED" - This budget is exclusively linked to a
	// Campaign that is using experiments so it cannot be shared.
	//   "CAMPAIGN_CANNOT_USE_SHARED_BUDGET" - Campaigns using experiments cannot
	// use a shared budget.
	//   "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS" - A different budget cannot
	// be assigned to a campaign when there are running or scheduled trials.
	//   "CAMPAIGN_LABEL_DOES_NOT_EXIST" - No link found between the campaign and
	// the label.
	//   "CAMPAIGN_LABEL_ALREADY_EXISTS" - The label has already been attached to
	// the campaign.
	//   "MISSING_SHOPPING_SETTING" - A ShoppingSetting was not found when creating
	// a shopping campaign.
	//   "INVALID_SHOPPING_SALES_COUNTRY" - The country in shopping setting is not
	// an allowed country.
	//   "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE" - The requested
	// channel type is not available according to the customer's account setting.
	//   "INVALID_ADVERTISING_CHANNEL_SUB_TYPE" - The AdvertisingChannelSubType is
	// not a valid subtype of the primary channel type.
	//   "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED" - At least one conversion must
	// be selected.
	//   "CANNOT_SET_AD_ROTATION_MODE" - Setting ad rotation mode for a campaign is
	// not allowed. Ad rotation mode at campaign is deprecated.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a campaign that has started.
	//   "CANNOT_SET_DATE_TO_PAST" - Trying to modify a date into the past.
	//   "MISSING_HOTEL_CUSTOMER_LINK" - Hotel center id in the hotel setting does
	// not match any customer links.
	//   "INVALID_HOTEL_CUSTOMER_LINK" - Hotel center id in the hotel setting must
	// match an active customer link.
	//   "MISSING_HOTEL_SETTING" - Hotel setting was not found when creating a
	// hotel ads campaign.
	//   "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP" - A
	// Campaign cannot use shared campaign budgets and be part of a campaign group.
	//   "APP_NOT_FOUND" - The app ID was not found.
	//   "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" -
	// Campaign.shopping_setting.enable_local is not supported for the specified
	// campaign type.
	//   "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS" - The merchant does not
	// support the creation of campaigns for Shopping Comparison Listing Ads.
	//   "INSUFFICIENT_APP_INSTALLS_COUNT" - The App campaign for engagement cannot
	// be created because there aren't enough installs.
	//   "SENSITIVE_CATEGORY_APP" - The App campaign for engagement cannot be
	// created because the app is sensitive.
	//   "HEC_AGREEMENT_REQUIRED" - Customers with Housing, Employment, or Credit
	// ads must accept updated personalized ads policy to continue creating
	// campaigns.
	//   "NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION" - The field is
	// not compatible with view through conversion optimization.
	//   "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE" - The field type cannot be
	// excluded because an active campaign-asset link of this type exists.
	//   "CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP" - The app
	// pre-registration campaign cannot be created for non-Android applications.
	//   "APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN" - The campaign
	// cannot be created since the app is not available for pre-registration in any
	// country.
	//   "INCOMPATIBLE_BUDGET_TYPE" - The type of the Budget is not compatible with
	// this Campaign.
	//   "LOCAL_SERVICES_DUPLICATE_CATEGORY_BID" - Category bid list in the local
	// services campaign setting contains multiple bids for the same category ID.
	//   "LOCAL_SERVICES_INVALID_CATEGORY_BID" - Category bid list in the local
	// services campaign setting contains a bid for an invalid category ID.
	//   "LOCAL_SERVICES_MISSING_CATEGORY_BID" - Category bid list in the local
	// services campaign setting is missing a bid for a category ID that must be
	// present.
	//   "INVALID_STATUS_CHANGE" - The requested change in status is not supported.
	//   "MISSING_TRAVEL_CUSTOMER_LINK" - Travel Campaign's travel_account_id does
	// not match any customer links.
	//   "INVALID_TRAVEL_CUSTOMER_LINK" - Travel Campaign's travel_account_id
	// matches an existing customer link but the customer link is not active.
	//   "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE" - The asset set type is invalid
	// to be set in excluded_parent_asset_set_types field.
	//   "ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET" -
	// Campaign.hotel_property_asset_set must point to an asset set of type
	// HOTEL_PROPERTY.
	//   "HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS" - The
	// hotel property asset set can only be set on Performance Max for travel goals
	// campaigns.
	//   "AVERAGE_DAILY_SPEND_TOO_HIGH" - Customer's average daily spend is too
	// high to enable this feature.
	//   "CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP" - Cannot attach the campaign to
	// a deleted campaign group.
	//   "CANNOT_ATTACH_TO_BIDDING_STRATEGY" - Cannot attach the campaign to this
	// bidding strategy.
	//   "CANNOT_CHANGE_BUDGET_PERIOD" - A budget with a different period cannot be
	// assigned to the campaign.
	//   "NOT_ENOUGH_CONVERSIONS" - Customer does not have enough conversions to
	// enable this feature.
	//   "CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION" - This campaign type can only
	// have one conversion action.
	//   "NOT_COMPATIBLE_WITH_BUDGET_TYPE" - The field is not compatible with the
	// budget type.
	//   "NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION" - The feature is
	// incompatible with ConversionActionType.UPLOAD_CLICKS.
	//   "APP_ID_MUST_MATCH_CONVERSION_ACTION_APP_ID" - App campaign setting app ID
	// must match selective optimization conversion action app ID.
	//   "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_NOT_ALLOWED" - Selective
	// optimization conversion action with Download category is not allowed.
	//   "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_REQUIRED" - One software
	// download for selective optimization conversion action is required for this
	// campaign conversion action.
	//   "CONVERSION_TRACKING_NOT_ENABLED" - Conversion tracking is not enabled and
	// is required for this feature.
	//   "NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE" - The field is not compatible
	// with the bidding strategy type.
	//   "NOT_COMPATIBLE_WITH_GOOGLE_ATTRIBUTION_CONVERSIONS" - Campaign is not
	// compatible with a conversion tracker that has Google attribution enabled.
	//   "CONVERSION_LAG_TOO_HIGH" - Customer level conversion lag is too high.
	//   "NOT_LINKED_ADVERTISING_PARTNER" - The advertiser set as an advertising
	// partner is not an actively linked advertiser to this customer.
	//   "INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS" - Invalid number of
	// advertising partner IDs.
	//   "CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE" - Cannot target the
	// display network without also targeting YouTube.
	//   "CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT" - This campaign type
	// cannot be linked to a Comparison Shopping Service account.
	//   "CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS" -
	// Standard Shopping campaigns that are linked to a Comparison Shopping Service
	// account cannot target this network.
	//   "CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL" - Text asset
	// automation settings can not be modified when there is an active Performance
	// Max optimization automatically created assets experiment. End the experiment
	// to modify these settings.
	//   "DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN" -
	// Dynamic text asset cannot be opted out when final URL expansion is opted in.
	//   "CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE" - Can not set a campaign level
	// match type.
	//   "CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS" - The
	// campaign level keyword match type cannot be switched to non-broad when
	// keyword conversion to broad match is in process.
	//   "CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS" - The campaign level
	// keyword match type cannot be switched to non-broad when the campaign has any
	// attached brand list or when a brand hint shared set is attached to the
	// campaign.
	//   "CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL" -
	// Cannot set campaign level keyword match type to BROAD if the campaign is a
	// base campaign with an associated trial that is currently promoting.
	//   "CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN" - Cannot set
	// campaign level keyword match type to BROAD if the campaign is a trial
	// currently promoting.
	//   "REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED" - Performance Max campaigns with
	// Brand Guidelines enabled require at least one business name to be linked as
	// a CampaignAsset. Performance Max campaigns for online sales with a product
	// feed must meet this requirement only when there are assets that are linked
	// to the campaign's asset groups.
	//   "REQUIRED_LOGO_ASSET_NOT_LINKED" - Performance Max campaigns with Brand
	// Guidelines enabled require at least one square logo to be linked as a
	// CampaignAsset. Performance Max campaigns for online sales with a product
	// feed must meet this requirement only when there are assets that are linked
	// to the campaign's asset groups.
	//   "BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED" - This campaign does not support
	// brand targeting overrides. Brand targeting overrides are only supported for
	// Performance Max campaigns that have a product feed.
	//   "BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN" - Brand Guideline fields can
	// only be set for campaigns that have Brand Guidelines enabled.
	//   "BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED" - When a Brand
	// Guidelines color field is set, both main color and accent color are
	// required.
	//   "BRAND_GUIDELINES_COLOR_INVALID_FORMAT" - Brand Guidelines colors must be
	// hex colors matching the regular expression '#[0-9a-fA-F]{6}', for example
	// '#abc123'
	//   "BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY" - Brand Guidelines font family
	// must be one of the supported Google Fonts. See
	// Campaign.brand_guidelines.predefined_font_family for the list of supported
	// fonts.
	//   "BRAND_GUIDELINES_UNSUPPORTED_CHANNEL" - Brand Guidelines cannot be set
	// for this channel type. Brand Guidelines supports Performance Max campaigns.
	//   "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS" - Brand Guidelines
	// cannot be enabled for Performance Max for travel goals campaigns.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES" - This customer is not
	// allowlisted for enabling Brand Guidelines.
	//   "THIRD_PARTY_INTEGRATION_PARTNER_NOT_ALLOWED" - Using campaign third-party
	// integration partners that are not set at the customer level is not allowed.
	//   "THIRD_PARTY_INTEGRATION_PARTNER_SHARE_COST_NOT_ALLOWED" - Campaign
	// third-party integration partners are not allowed to share cost if it is not
	// enabled at the customer level.
	//   "DUPLICATE_INTERACTION_TYPE" - Each `previous_step_interaction_type` can
	// be used at most once for the same `previous_step_id`
	//   "INVALID_INTERACTION_TYPE" - Previous step interaction type cannot happen
	// for previous step AdGroup type. For example, `SKIP` interaction type is not
	// valid for non-skippable formats.
	//   "VIDEO_SEQUENCE_ERROR_SEQUENCE_DEFINITION_REQUIRED" - Campaign video ads
	// sequence is required for `VIDEO_SEQUENCE` advertising channel sub type.
	//   "AI_MAX_MUST_BE_ENABLED" - This feature is only available for campaigns
	// with AI Max enabled.
	//   "DURATION_TOO_LONG_FOR_TOTAL_BUDGET" - Duration too long for total budget.
	//   "END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET" - Campaigns with total budgets
	// must have end date/time specified.
	CampaignError string `json:"campaignError,omitempty"`
	// CampaignExperimentError: The reasons for the campaign experiment error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - An active campaign or experiment with this name already
	// exists.
	//   "INVALID_TRANSITION" - Experiment cannot be updated from the current state
	// to the requested target state. For example, an experiment can only graduate
	// if its status is ENABLED.
	//   "CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET" - Cannot create an
	// experiment from a campaign using an explicitly shared budget.
	//   "CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN" - Cannot create an
	// experiment for a removed base campaign.
	//   "CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT" - Cannot create an
	// experiment from a draft, which has a status other than proposed.
	//   "CUSTOMER_CANNOT_CREATE_EXPERIMENT" - This customer is not allowed to
	// create an experiment.
	//   "CAMPAIGN_CANNOT_CREATE_EXPERIMENT" - This campaign is not allowed to
	// create an experiment.
	//   "EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP" - Trying to set an experiment
	// duration which overlaps with another experiment.
	//   "EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION" - All non-removed
	// experiments must start and end within their campaign's duration.
	//   "CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS" - The experiment cannot be
	// modified because its status is in a terminal state, such as REMOVED.
	CampaignExperimentError string `json:"campaignExperimentError,omitempty"`
	// CampaignFeedError: The reasons for the campaign feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this campaign and placeholder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED" - The CampaignFeed already
	// exists. UPDATE should be used to modify the existing CampaignFeed.
	//   "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED" - Cannot update removed campaign
	// feed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "NO_EXISTING_LOCATION_CUSTOMER_FEED" - Location CampaignFeeds cannot be
	// created unless there is a location CustomerFeed for the specified feed.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	CampaignFeedError string `json:"campaignFeedError,omitempty"`
	// CampaignGoalConfigError: The reasons for the campaign goal config error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "GOAL_NOT_FOUND" - Goal is either removed or does not exist for this
	// account.
	//   "CAMPAIGN_NOT_FOUND" - Campaign is either removed or does not exist.
	//   "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT" - If high lifetime value is
	// present then value should be present.
	//   "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE" - High lifetime value
	// should be greater than value.
	//   "CUSTOMER_LIFECYCLE_OPTIMIZATION_CAMPAIGN_TYPE_NOT_SUPPORTED" - When using
	// customer lifecycle optimization goal, campaign type should be supported.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_RETENTION_ONLY" - Customer must be
	// allowlisted to use retention only goal.
	CampaignGoalConfigError string `json:"campaignGoalConfigError,omitempty"`
	// CampaignLifecycleGoalError: The reasons for the campaign lifecycle goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_MISSING" - Campaign is not specified.
	//   "INVALID_CAMPAIGN" - Cannot find the specified campaign.
	//   "CUSTOMER_ACQUISITION_INVALID_OPTIMIZATION_MODE" - Optimization mode is
	// unspecified or invalid.
	//   "INCOMPATIBLE_BIDDING_STRATEGY" - The configured lifecycle goal setting is
	// not compatible with the bidding strategy the campaign is using.
	// Specifically, BID_HIGHER_FOR_NEW_CUSTOMER requires conversion-value based
	// bidding strategy type such as MAXIMIZE_CONVERSION_VALUE.
	//   "MISSING_PURCHASE_GOAL" - Lifecycle goals require the campaign to optimize
	// towards purchase conversion goal.
	//   "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE" -
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_
	// lifetime_value is invalid or not allowed, such as when the specified value
	// is smaller than 0.01, when the optimization mode is not
	// BID_HIGHER_FOR_NEW_CUSTOMER, or when
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_
	// lifetime_value is specified smaller than/without
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	// .
	//   "CUSTOMER_ACQUISITION_UNSUPPORTED_CAMPAIGN_TYPE" - Customer acquisition
	// goal is not supported on this campaign type.
	//   "CUSTOMER_ACQUISITION_INVALID_VALUE" -
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	//  is invalid or not allowed, such as when the specified value is smaller than
	// 0.01, or when the optimization mode is not BID_HIGHER_FOR_NEW_CUSTOMER.
	//   "CUSTOMER_ACQUISITION_VALUE_MISSING" - To use BID_HIGHER_FOR_NEW_CUSTOMER
	// mode, either
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	//  or CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value
	// must have been specified. If a manager account is managing your account's
	// conversion tracking, then only the CustomerLifecycleGoal of that manager
	// account is used.
	//   "CUSTOMER_ACQUISITION_MISSING_EXISTING_CUSTOMER_DEFINITION" - In order for
	// a campaign to adopt the customer acquisition goal,
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_us
	// er_lists must include active and accessible userlist with more than 1000
	// members in the Search/Youtube network. If a manager account is managing your
	// account's conversion tracking, then only the CustomerLifecycleGoal of that
	// manager account is used. Also make sure that the manager account shares
	// audience segments with sub-accounts with continuous audience sharing.
	//   "CUSTOMER_ACQUISITION_MISSING_HIGH_VALUE_CUSTOMER_DEFINITION" - In order
	// for a campaign to adopt the customer acquisition goal with high lifetime
	// value optimization,
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifeti
	// me_value_user_lists must include active and accessible userlist with more
	// than 1000 members in the Search/Youtube network. If a manager account is
	// managing your account's conversion tracking, then only the
	// CustomerLifecycleGoal of that manager account is used. Also make sure that
	// the manager account shares audience segments with sub-accounts using
	// continuous audience sharing.
	CampaignLifecycleGoalError string `json:"campaignLifecycleGoalError,omitempty"`
	// CampaignSharedSetError: The reasons for the campaign shared set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "SHARED_SET_ACCESS_DENIED" - The shared set belongs to another customer
	// and permission isn't granted.
	CampaignSharedSetError string `json:"campaignSharedSetError,omitempty"`
	// ChangeEventError: The reasons for the change event error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "START_DATE_TOO_OLD" - The requested start date is too old. It cannot be
	// older than 30 days.
	//   "CHANGE_DATE_RANGE_INFINITE" - The change_event search request must
	// specify a finite range filter on change_date_time.
	//   "CHANGE_DATE_RANGE_NEGATIVE" - The change event search request has
	// specified invalid date time filters that can never logically produce any
	// valid results (for example, start time after end time).
	//   "LIMIT_NOT_SPECIFIED" - The change_event search request must specify a
	// LIMIT.
	//   "INVALID_LIMIT_CLAUSE" - The LIMIT specified by change_event request
	// should be less than or equal to 10K.
	ChangeEventError string `json:"changeEventError,omitempty"`
	// ChangeStatusError: The reasons for the change status error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "START_DATE_TOO_OLD" - The requested start date is too old.
	//   "CHANGE_DATE_RANGE_INFINITE" - The change_status search request must
	// specify a finite range filter on last_change_date_time.
	//   "CHANGE_DATE_RANGE_NEGATIVE" - The change status search request has
	// specified invalid date time filters that can never logically produce any
	// valid results (for example, start time after end time).
	//   "LIMIT_NOT_SPECIFIED" - The change_status search request must specify a
	// LIMIT.
	//   "INVALID_LIMIT_CLAUSE" - The LIMIT specified by change_status request
	// should be less than or equal to 10K.
	ChangeStatusError string `json:"changeStatusError,omitempty"`
	// ClickViewError: The reasons for the click view error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXPECTED_FILTER_ON_A_SINGLE_DAY" - Missing filter on a single day.
	//   "DATE_TOO_OLD" - The requested date is too old.
	ClickViewError string `json:"clickViewError,omitempty"`
	// CollectionSizeError: The reasons for the collection size error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_FEW" - Too few.
	//   "TOO_MANY" - Too many.
	CollectionSizeError string `json:"collectionSizeError,omitempty"`
	// ContextError: The reasons for the context error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATION_NOT_PERMITTED_FOR_CONTEXT" - The operation is not allowed for
	// the given context.
	//   "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE" - The operation is not
	// allowed for removed resources.
	ContextError string `json:"contextError,omitempty"`
	// ConversionActionError: The reasons for the conversion action error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - The specified conversion action name already exists.
	//   "DUPLICATE_APP_ID" - Another conversion action with the specified app id
	// already exists.
	//   "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD" - Android first open
	// action conflicts with Google play codeless download action tracking the same
	// app.
	//   "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION" - Android first open
	// action conflicts with Google play codeless download action tracking the same
	// app.
	//   "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED" - The attribution model cannot be
	// set to DATA_DRIVEN because a data-driven model has never been generated.
	//   "DATA_DRIVEN_MODEL_EXPIRED" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is expired.
	//   "DATA_DRIVEN_MODEL_STALE" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is stale.
	//   "DATA_DRIVEN_MODEL_UNKNOWN" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is unavailable or the conversion
	// action was newly added.
	//   "CREATION_NOT_SUPPORTED" - Creation of this conversion action type isn't
	// supported by Google Ads API.
	//   "UPDATE_NOT_SUPPORTED" - Update of this conversion action isn't supported
	// by Google Ads API.
	//   "CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS" - Rule-based attribution models
	// are deprecated and not allowed to be set by conversion action.
	ConversionActionError string `json:"conversionActionError,omitempty"`
	// ConversionAdjustmentUploadError: The reasons for the conversion adjustment
	// upload error
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_ALREADY_RETRACTED" - The conversion was already retracted.
	// This adjustment was not processed.
	//   "CONVERSION_NOT_FOUND" - The conversion for this conversion action and
	// conversion identifier can't be found. Make sure your conversion identifiers
	// are associated with the correct conversion action and try again.
	//   "CONVERSION_EXPIRED" - Adjustment can't be made to a conversion that
	// occurred more than 54 days ago.
	//   "ADJUSTMENT_PRECEDES_CONVERSION" - Adjustment has an
	// `adjustment_date_time` that occurred before the associated conversion. Make
	// sure your `adjustment_date_time` is correct and try again.
	//   "MORE_RECENT_RESTATEMENT_FOUND" - More recent adjustment
	// `adjustment_date_time` has already been reported for the associated
	// conversion. Make sure your adjustment `adjustment_date_time` is correct and
	// try again.
	//   "TOO_RECENT_CONVERSION" - Adjustment can't be recorded because the
	// conversion occurred too recently. Try adjusting a conversion that occurred
	// at least 24 hours ago.
	//
	// "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE"
	// - Can't make an adjustment to a conversion that is set up to use the default
	// value. Check your conversion action value setting and try again.
	//   "TOO_MANY_ADJUSTMENTS_IN_REQUEST" - Try uploading fewer than 2001
	// adjustments in a single API request.
	//   "TOO_MANY_ADJUSTMENTS" - The conversion has already been adjusted the
	// maximum number of times. Make sure you're only making necessary adjustment
	// to existing conversion.
	//   "RESTATEMENT_ALREADY_EXISTS" - The conversion has prior a restatement with
	// the same `adjustment_date_time`. Make sure your adjustment has the correct
	// and unique `adjustment_date_time` and try again.
	//   "DUPLICATE_ADJUSTMENT_IN_REQUEST" - Imported adjustment has a duplicate
	// conversion adjustment with same `adjustment_date_time`. Make sure your
	// adjustment has the correct `adjustment_date_time` and try again.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again.
	//   "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT" - Can't use enhanced
	// conversions with the specified conversion action.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//   "UNSUPPORTED_USER_IDENTIFIER" - Use user provided data such as emails or
	// phone numbers hashed using SHA-256 and try again.
	//   "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET" - Cannot set both
	// gclid_date_time_pair and order_id. Use only 1 type and try again.
	//   "CONVERSION_ALREADY_ENHANCED" - Conversion already has enhancements with
	// the same Order ID and conversion action. Make sure your data is correctly
	// configured and try again.
	//   "DUPLICATE_ENHANCEMENT_IN_REQUEST" - Multiple enhancements have the same
	// conversion action and Order ID. Make sure your data is correctly configured
	// and try again.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT" - Enhanced conversions can't
	// be used for this account because of Google customer data policies. Contact
	// your Google representative.
	//   "MISSING_ORDER_ID_FOR_WEBPAGE" - Adjustment for website conversion
	// requires Order ID (ie, transaction ID). Make sure your website tags capture
	// Order IDs and you send the same Order IDs with your adjustment.
	//   "ORDER_ID_CONTAINS_PII" - Can't use adjustment with Order IDs containing
	// personally-identifiable information (PII).
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// adjustment request cannot be found. Make sure it's available in this
	// account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The type of the conversion action
	// specified in the adjustment request isn't supported for uploading
	// adjustments. A conversion adjustment of type `RETRACTION` or `RESTATEMENT`
	// is only permitted for conversion actions of type `SALESFORCE`,
	// `UPLOAD_CLICK` or `WEBPAGE`. A conversion adjustment of type `ENHANCEMENT`
	// is only permitted for conversion actions of type `WEBPAGE`.
	ConversionAdjustmentUploadError string `json:"conversionAdjustmentUploadError,omitempty"`
	// ConversionCustomVariableError: The reasons for the conversion custom
	// variable error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - A conversion custom variable with the specified name
	// already exists.
	//   "DUPLICATE_TAG" - A conversion custom variable with the specified tag
	// already exists.
	//   "RESERVED_TAG" - A conversion custom variable with the specified tag is
	// reserved for other uses.
	ConversionCustomVariableError string `json:"conversionCustomVariableError,omitempty"`
	// ConversionGoalCampaignConfigError: The reasons for the conversion goal
	// campaign config error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN" - Campaign
	// is managed by Search Ads 360 but uses Unified Goal.
	//   "CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER" - The
	// campaign is using a custom goal that does not belong to its Google Ads
	// conversion customer (conversion tracking customer).
	//   "CAMPAIGN_CANNOT_USE_UNIFIED_GOALS" - The campaign is not allowed to use
	// unified goals.
	//   "EMPTY_CONVERSION_GOALS" - The campaign is using campaign override goals
	// but has no goals configured.
	//   "STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED" - STORE_SALE and
	// STORE_VISIT conversion types cannot be both included in campaign level goal.
	//   "PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES" -
	// Performance Max campaign is not allowed to use custom goal with store sales
	// conversion type.
	ConversionGoalCampaignConfigError string `json:"conversionGoalCampaignConfigError,omitempty"`
	// ConversionUploadError: The reasons for the conversion upload error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_MANY_CONVERSIONS_IN_REQUEST" - Upload fewer than 2001 events in a
	// single request.
	//   "UNPARSEABLE_GCLID" - The imported gclid could not be decoded.
	//   "CONVERSION_PRECEDES_EVENT" - The imported event has a
	// `conversion_date_time` that precedes the click. Make sure your
	// `conversion_date_time` is correct and try again.
	//   "EXPIRED_EVENT" - The imported event can't be recorded because its click
	// occurred before this conversion's click-through window. Make sure you import
	// the most recent data.
	//   "TOO_RECENT_EVENT" - The click associated with the given identifier or iOS
	// URL parameter occurred less than 6 hours ago. Retry after 6 hours have
	// passed.
	//   "EVENT_NOT_FOUND" - The imported event could not be attributed to a click.
	// This may be because the event did not come from a Google Ads campaign.
	//   "UNAUTHORIZED_CUSTOMER" - The click ID or call is associated with an Ads
	// account you don't have access to. Make sure you import conversions for
	// accounts managed by your manager account.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME" - At the time of the
	// click, conversion tracking was not enabled in the effective conversion
	// account of the click's Google Ads account.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The imported event includes external attribution data, but the
	// conversion action isn't set up to use an external attribution model. Make
	// sure the conversion action is correctly configured and try again.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The conversion action is set up to use an external attribution model,
	// but the imported event is missing data. Make sure imported events include
	// the external attribution credit and all necessary fields.
	//   "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION" -
	// Order IDs can't be used for a conversion measured with an external
	// attribution model. Make sure the conversion is correctly configured and
	// imported events include only necessary data and try again.
	//   "ORDER_ID_ALREADY_IN_USE" - The imported event includes an order ID that
	// was previously recorded, so the event was not processed.
	//   "DUPLICATE_ORDER_ID" - Imported events include multiple conversions with
	// the same order ID and were not processed. Make sure order IDs are unique and
	// try again.
	//   "TOO_RECENT_CALL" - Can't import calls that occurred less than 6 hours
	// ago. Try uploading again in 6 hours.
	//   "EXPIRED_CALL" - The call can't be recorded because it occurred before
	// this conversion action's lookback window. Make sure your import is
	// configured to get the most recent data.
	//   "CALL_NOT_FOUND" - The call or click leading to the imported event can't
	// be found. Make sure your data source is set up to include correct
	// identifiers.
	//   "CONVERSION_PRECEDES_CALL" - The call has a `conversion_date_time` that
	// precedes the associated click. Make sure your `conversion_date_time` is
	// correct.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME" - At the time of the
	// imported call, conversion tracking was not enabled in the effective
	// conversion account of the click's Google Ads account.
	//   "UNPARSEABLE_CALLERS_PHONE_NUMBER" - Make sure phone numbers are formatted
	// as E.164 (+16502531234), International (+64 3-331 6005), or US national
	// number (6502531234).
	//   "CLICK_CONVERSION_ALREADY_EXISTS" - The imported event has the same click
	// and `conversion_date_time` as an existing conversion. Use a unique
	// `conversion_date_time` or order ID for each unique event and try again.
	//   "CALL_CONVERSION_ALREADY_EXISTS" - The imported call has the same
	// `conversion_date_time` as an existing conversion. Make sure your
	// `conversion_date_time` correctly configured and try again.
	//   "DUPLICATE_CLICK_CONVERSION_IN_REQUEST" - Multiple events have the same
	// click and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "DUPLICATE_CALL_CONVERSION_IN_REQUEST" - Multiple events have the same
	// call and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "CUSTOM_VARIABLE_NOT_ENABLED" - Enable the custom variable in your
	// conversion settings and try again.
	//   "CUSTOM_VARIABLE_VALUE_CONTAINS_PII" - Can't import events with custom
	// variables containing personally-identifiable information (PII). Remove these
	// variables and try again.
	//   "INVALID_CUSTOMER_FOR_CLICK" - The click from the imported event is
	// associated with a different Google Ads account. Make sure you're importing
	// to the correct account.
	//   "INVALID_CUSTOMER_FOR_CALL" - The click from the call is associated with a
	// different Google Ads account. Make sure you're importing to the correct
	// account. Query conversion_tracking_setting.google_ads_conversion_customer on
	// Customer to identify the correct account.
	//   "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY" - The connversion can't be
	// imported because the conversion source didn't comply with Apple App
	// Transparency Tracking (ATT) policies or because the customer didn't consent
	// to tracking.
	//   "CLICK_NOT_FOUND" - The email address or phone number for this event can't
	// be matched to a click. This may be because it didn't come from a Google Ads
	// campaign, and you can safely ignore this warning. If this includes more
	// imported events than is expected, you may need to check your setup.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//
	// "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER"
	// - User provided data can't be used with external attribution models. Use a
	// different attribution model or omit user identifiers and try again.
	//   "UNSUPPORTED_USER_IDENTIFIER" - The provided user identifiers are not
	// supported. Use only hashed email or phone number and try again.
	//   "GBRAID_WBRAID_BOTH_SET" - Can't use both gbraid and wbraid parameters.
	// Use only 1 and try again.
	//   "UNPARSEABLE_WBRAID" - Can't parse event import data. Check if your wbraid
	// parameter was not modified and try again.
	//   "UNPARSEABLE_GBRAID" - Can't parse event import data. Check if your gbraid
	// parameter was not modified and try again.
	//   "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID" - Conversion
	// actions that use one-per-click counting can't be used with gbraid or wbraid
	// parameters.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS" - Enhanced
	// conversions can't be used for this account because of Google customer data
	// policies. Contact your Google representative.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again. You can
	// check your setting by querying
	// conversion_tracking_setting.accepted_customer_data_terms on Customer.
	//   "ORDER_ID_CONTAINS_PII" - Can't import events with order IDs containing
	// personally-identifiable information (PII).
	//   "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS" - Make sure you've
	// turned on enhanced conversions for leads in conversion settings and try
	// again. You can check your setting by querying
	// conversion_tracking_setting.enhanced_conversions_for_leads_enabled on
	// Customer.
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// upload request cannot be found. Make sure it's available in this account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The conversion action specified in the
	// upload request isn't set up for uploading conversions.
	ConversionUploadError string `json:"conversionUploadError,omitempty"`
	// ConversionValueRuleError: The reasons for the conversion value rule error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_GEO_TARGET_CONSTANT" - The value rule's geo location condition
	// contains invalid geo target constant(s), for example, there's no matching
	// geo target.
	//   "CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET" - The value rule's geo
	// location condition contains conflicting included and excluded geo targets.
	// Specifically, some of the excluded geo target(s) are the same as or contain
	// some of the included geo target(s). For example, the geo location condition
	// includes California but excludes U.S.
	//   "CONFLICTING_CONDITIONS" - User specified conflicting conditions for two
	// value rules in the same value rule set.
	//   "CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET" - The value rule cannot be
	// removed because it's still included in some value rule set.
	//   "CONDITION_NOT_ALLOWED" - The value rule contains a condition that's not
	// allowed by the value rule set including this value rule.
	//   "FIELD_MUST_BE_UNSET" - The value rule contains a field that should be
	// unset.
	//   "CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED" - Pausing the value rule
	// requires pausing the value rule set because the value rule is (one of) the
	// last enabled in the value rule set.
	//   "UNTARGETABLE_GEO_TARGET" - The value rule's geo location condition
	// contains untargetable geo target constant(s).
	//   "INVALID_AUDIENCE_USER_LIST" - The value rule's audience condition
	// contains invalid user list(s). In another word, there's no matching user
	// list.
	//   "INACCESSIBLE_USER_LIST" - The value rule's audience condition contains
	// inaccessible user list(s).
	//   "INVALID_AUDIENCE_USER_INTEREST" - The value rule's audience condition
	// contains invalid user_interest(s). This might be because there is no
	// matching user interest, or the user interest is not visible.
	//   "CANNOT_ADD_RULE_WITH_STATUS_REMOVED" - When a value rule is created, it
	// shouldn't have REMOVED status.
	//   "NO_DAY_OF_WEEK_SELECTED" - The value rule's itinerary condition contains
	// invalid travel start day, it contains no day of week.
	ConversionValueRuleError string `json:"conversionValueRuleError,omitempty"`
	// ConversionValueRuleSetError: The reasons for the conversion value rule set
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONFLICTING_VALUE_RULE_CONDITIONS" - Two value rules in this value rule
	// set contain conflicting conditions.
	//   "INVALID_VALUE_RULE" - This value rule set includes a value rule that
	// cannot be found, has been permanently removed or belongs to a different
	// customer.
	//   "DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND" - An error that's thrown when a
	// mutate operation is trying to replace/remove some existing elements in the
	// dimensions field. In other words, ADD op is always fine and UPDATE op is
	// fine if it's only appending new elements into dimensions list.
	//   "CONDITION_TYPE_NOT_ALLOWED" - An error that's thrown when a mutate is
	// adding new value rule(s) into a value rule set and the added value rule(s)
	// include conditions that are not specified in the dimensions of the value
	// rule set.
	//   "DUPLICATE_DIMENSIONS" - The dimensions field contains duplicate elements.
	//   "INVALID_CAMPAIGN_ID" - This value rule set is attached to an invalid
	// campaign id. Either a campaign with this campaign id doesn't exist or it
	// belongs to a different customer.
	//   "CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED" - When a mutate request
	// tries to pause a value rule set, the enabled value rules in this set must be
	// paused in the same command, or this error will be thrown.
	//   "SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED" - When a mutate request
	// tries to pause all the value rules in a value rule set, the value rule set
	// must be paused, or this error will be thrown.
	//   "VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" - This value rule set is
	// attached to a campaign that does not support value rules. Currently,
	// campaign level value rule sets can only be created on Search, or Display
	// campaigns.
	//   "INELIGIBLE_CONVERSION_ACTION_CATEGORIES" - To add a value rule set that
	// applies on Store Visits/Store Sales conversion action categories, the
	// customer must have valid Store Visits/ Store Sales conversion actions.
	//   "DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS" - If NO_CONDITION is
	// used as a dimension of a value rule set, it must be the only dimension.
	//   "DIMENSION_NO_CONDITION_NOT_ALLOWED" - Dimension NO_CONDITION can only be
	// used by Store Visits/Store Sales value rule set.
	//   "UNSUPPORTED_CONVERSION_ACTION_CATEGORIES" - Value rule sets defined on
	// the specified conversion action categories are not supported. The list of
	// conversion action categories must be an empty list, only STORE_VISIT, or
	// only STORE_SALE.
	//   "DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" - Dimension ITINERARY can only
	// be used on campaigns with an advertising channel type of PERFORMANCE_MAX or
	// HOTEL.
	ConversionValueRuleSetError string `json:"conversionValueRuleSetError,omitempty"`
	// CountryCodeError: The reasons for the country code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	CountryCodeError string `json:"countryCodeError,omitempty"`
	// CriterionError: The reasons for the criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion is required for
	// CREATE and UPDATE operations.
	//   "INVALID_EXCLUDED_CATEGORY" - The category requested for exclusion is
	// invalid.
	//   "INVALID_KEYWORD_TEXT" - Invalid keyword criteria text.
	//   "KEYWORD_TEXT_TOO_LONG" - Keyword text should be less than 80 chars.
	//   "KEYWORD_HAS_TOO_MANY_WORDS" - Keyword text has too many words.
	//   "KEYWORD_HAS_INVALID_CHARS" - Keyword text has invalid characters or
	// symbols.
	//   "INVALID_PLACEMENT_URL" - Invalid placement URL.
	//   "INVALID_USER_LIST" - Invalid user list criterion.
	//   "INVALID_USER_INTEREST" - Invalid user interest criterion.
	//   "INVALID_FORMAT_FOR_PLACEMENT_URL" - Placement URL has wrong format.
	//   "PLACEMENT_URL_IS_TOO_LONG" - Placement URL is too long.
	//   "PLACEMENT_URL_HAS_ILLEGAL_CHAR" - Indicates the URL contains an illegal
	// character.
	//   "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE" - Indicates the URL contains
	// multiple comma separated URLs.
	//   "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION" - Indicates the
	// domain is blocked.
	//   "INVALID_TOPIC_PATH" - Invalid topic path.
	//   "INVALID_YOUTUBE_CHANNEL_ID" - The YouTube Channel Id is invalid.
	//   "INVALID_YOUTUBE_VIDEO_ID" - The YouTube Video Id is invalid.
	//   "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED" - Indicates the placement is a
	// YouTube vertical channel, which is no longer supported.
	//   "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED" - Indicates the placement is a
	// YouTube demographic channel, which is no longer supported.
	//   "YOUTUBE_URL_UNSUPPORTED" - YouTube urls are not supported in Placement
	// criterion. Use YouTubeChannel and YouTubeVideo criterion instead.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type can not be excluded by the
	// customer, like AOL account type cannot target site type criteria.
	//   "CANNOT_ADD_CRITERIA_TYPE" - Criteria type can not be targeted.
	//   "CANNOT_EXCLUDE_SIMILAR_USER_LIST" - Not allowed to exclude similar user
	// list.
	//   "CANNOT_ADD_CLOSED_USER_LIST" - Not allowed to target a closed user list.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS" - Not allowed to
	// add display only UserLists to search only campaigns.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS" - Not allowed to add
	// display only UserLists to search plus campaigns.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS" - Not allowed to add
	// display only UserLists to shopping campaigns.
	//   "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS" - Not allowed to add User
	// interests to search only campaigns.
	//   "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS" - Not allowed to
	// set bids for this criterion type in search campaigns
	//   "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE" - Final URLs, URL
	// Templates and CustomParameters cannot be set for the criterion types of
	// Gender, AgeRange, UserList, Placement, MobileApp, and MobileAppCategory in
	// search campaigns and shopping campaigns.
	//   "INVALID_COMBINED_AUDIENCE" - Invalid combined audience criterion.
	//   "INVALID_CUSTOM_AFFINITY" - Invalid custom affinity criterion.
	//   "INVALID_CUSTOM_INTENT" - Invalid custom intent criterion.
	//   "INVALID_CUSTOM_AUDIENCE" - Invalid custom audience criterion.
	//   "INVALID_IP_ADDRESS" - IP address is not valid.
	//   "INVALID_IP_FORMAT" - IP format is not valid.
	//   "INVALID_MOBILE_APP" - Mobile application is not valid.
	//   "INVALID_MOBILE_APP_CATEGORY" - Mobile application category is not valid.
	//   "INVALID_CRITERION_ID" - The CriterionId does not exist or is of the
	// incorrect type.
	//   "CANNOT_TARGET_CRITERION" - The Criterion is not allowed to be targeted.
	//   "CANNOT_TARGET_OBSOLETE_CRITERION" - The criterion is not allowed to be
	// targeted as it is deprecated.
	//   "CRITERION_ID_AND_TYPE_MISMATCH" - The CriterionId is not valid for the
	// type.
	//   "INVALID_PROXIMITY_RADIUS" - Distance for the radius for the proximity
	// criterion is invalid.
	//   "INVALID_PROXIMITY_RADIUS_UNITS" - Units for the distance for the radius
	// for the proximity criterion is invalid.
	//   "INVALID_STREETADDRESS_LENGTH" - Street address in the address is not
	// valid.
	//   "INVALID_CITYNAME_LENGTH" - City name in the address is not valid.
	//   "INVALID_REGIONCODE_LENGTH" - Region code in the address is not valid.
	//   "INVALID_REGIONNAME_LENGTH" - Region name in the address is not valid.
	//   "INVALID_POSTALCODE_LENGTH" - Postal code in the address is not valid.
	//   "INVALID_COUNTRY_CODE" - Country code in the address is not valid.
	//   "INVALID_LATITUDE" - Latitude for the GeoPoint is not valid.
	//   "INVALID_LONGITUDE" - Longitude for the GeoPoint is not valid.
	//   "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL" - The Proximity input
	// is not valid. Both address and geoPoint cannot be null.
	//   "INVALID_PROXIMITY_ADDRESS" - The Proximity address cannot be geocoded to
	// a valid lat/long.
	//   "INVALID_USER_DOMAIN_NAME" - User domain name is not valid.
	//   "CRITERION_PARAMETER_TOO_LONG" - Length of serialized criterion parameter
	// exceeded size limit.
	//   "AD_SCHEDULE_TIME_INTERVALS_OVERLAP" - Time interval in the AdSchedule
	// overlaps with another AdSchedule.
	//   "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS" - AdSchedule time
	// interval cannot span multiple days.
	//   "AD_SCHEDULE_INVALID_TIME_INTERVAL" - AdSchedule time interval specified
	// is invalid, endTime cannot be earlier than startTime.
	//   "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT" - The number of AdSchedule
	// entries in a day exceeds the limit.
	//   "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS" - CriteriaId does not match
	// the interval of the AdSchedule specified.
	//   "CANNOT_BID_MODIFY_CRITERION_TYPE" - Cannot set bid modifier for this
	// criterion type.
	//   "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT" - Cannot bid modify
	// criterion, since it is opted out of the campaign.
	//   "CANNOT_BID_MODIFY_NEGATIVE_CRITERION" - Cannot set bid modifier for a
	// negative criterion.
	//   "BID_MODIFIER_ALREADY_EXISTS" - Bid Modifier already exists. Use SET
	// operation to update.
	//   "FEED_ID_NOT_ALLOWED" - Feed Id is not allowed in these Location Groups.
	//   "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE" - The account may not use the
	// requested criteria type. For example, some accounts are restricted to
	// keywords only.
	//   "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY" - The requested criteria type
	// cannot be used with campaign or ad group bidding strategy.
	//   "CANNOT_EXCLUDE_CRITERION" - The Criterion is not allowed to be excluded.
	//   "CANNOT_REMOVE_CRITERION" - The criterion is not allowed to be removed.
	// For example, we cannot remove any of the device criterion.
	//   "INVALID_PRODUCT_BIDDING_CATEGORY" - Bidding categories do not form a
	// valid path in the Shopping bidding category taxonomy.
	//   "MISSING_SHOPPING_SETTING" - ShoppingSetting must be added to the campaign
	// before ProductScope criteria can be added.
	//   "INVALID_MATCHING_FUNCTION" - Matching function is invalid.
	//   "LOCATION_FILTER_NOT_ALLOWED" - Filter parameters not allowed for location
	// groups targeting.
	//   "INVALID_FEED_FOR_LOCATION_FILTER" - Feed not found, or the feed is not an
	// enabled location feed.
	//   "LOCATION_FILTER_INVALID" - Given location filter parameter is invalid for
	// location groups targeting.
	//   "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS" - Cannot set geo
	// target constants and feed item sets at the same time.
	//   "CANNOT_SET_BOTH_ASSET_SET_AND_FEED" - Cannot set both assetset and feed
	// at the same time.
	//   "CANNOT_SET_FEED_OR_FEED_ITEM_SETS_FOR_CUSTOMER" - Cannot set feed or feed
	// item sets for Customer.
	//   "CANNOT_SET_ASSET_SET_FIELD_FOR_CUSTOMER" - Cannot set AssetSet criteria
	// for customer.
	//   "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_ASSET_SETS" - Cannot set geo target
	// constants and asset sets at the same time.
	//   "CANNOT_SET_ASSET_SETS_WITH_FEED_ITEM_SETS" - Cannot set asset sets and
	// feed item sets at the same time.
	//   "INVALID_LOCATION_GROUP_ASSET_SET" - The location group asset set id is
	// invalid
	//   "INVALID_LOCATION_GROUP_RADIUS" - The location group radius is in the
	// range but not at the valid increment.
	//   "INVALID_LOCATION_GROUP_RADIUS_UNIT" - The location group radius unit is
	// invalid.
	//   "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP" - Criteria type cannot be
	// associated with a campaign and its ad group(s) simultaneously.
	//   "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel length of stay's min nights and max nights overlaps
	// with an existing criterion.
	//   "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel advance booking window's min days and max days overlaps
	// with an existing criterion.
	//   "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING" - The field is not allowed to
	// be set when the negative field is set to true, for example, we don't allow
	// bids in negative ad group or campaign criteria.
	//   "INVALID_WEBPAGE_CONDITION" - The combination of operand and operator in
	// webpage condition is invalid.
	//   "INVALID_WEBPAGE_CONDITION_URL" - The URL of webpage condition is invalid.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY" - The URL of webpage condition
	// cannot be empty or contain white space.
	//   "WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL" - The URL of webpage
	// condition contains an unsupported protocol.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS" - The URL of webpage
	// condition cannot be an IP address.
	//   "WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING" - The
	// domain of the URL is not consistent with the domain in campaign setting.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX" - The URL of webpage
	// condition cannot be a public suffix itself.
	//   "WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX" - The URL of webpage
	// condition has an invalid public suffix.
	//   "WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED" - Value track
	// parameter is not supported in webpage condition URL.
	//   "WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION" - Only one
	// URL-EQUALS webpage condition is allowed in a webpage criterion and it cannot
	// be combined with other conditions.
	//   "WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP" - A webpage
	// criterion cannot be added to a non-DSA ad group.
	//   "CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS" - Cannot add
	// positive user list criteria in Smart Display campaigns.
	//   "CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS" - Cannot add positive
	// placement criterion types in search campaigns.
	//   "LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES" - Listing scope contains too many
	// dimension types.
	//   "LISTING_SCOPE_TOO_MANY_IN_OPERATORS" - Listing scope has too many IN
	// operators.
	//   "LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED" - Listing scope contains IN
	// operator on an unsupported dimension type.
	//   "DUPLICATE_LISTING_DIMENSION_TYPE" - There are dimensions with duplicate
	// dimension type.
	//   "DUPLICATE_LISTING_DIMENSION_VALUE" - There are dimensions with duplicate
	// dimension value.
	//   "CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION" - Listing group SUBDIVISION
	// nodes cannot have bids.
	//   "LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION" - Product group operation is
	// invalid because another operation targeting the same AdGroupId is failing.
	//   "INVALID_LISTING_GROUP_HIERARCHY" - Ad group is invalid due to the listing
	// groups it contains.
	//   "LISTING_GROUP_TREE_WAS_INVALID_BEFORE_MUTATION" - Tree was invalid before
	// the mutation.
	//   "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN" - Listing group unit cannot have
	// children.
	//   "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE" - Subdivided listing
	// groups must have an "others" case.
	//   "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS" - Dimension type
	// of listing group must be the same as that of its siblings.
	//   "LISTING_GROUP_ALREADY_EXISTS" - Listing group cannot be added to the ad
	// group because it already exists.
	//   "LISTING_GROUP_DOES_NOT_EXIST" - Listing group referenced in the operation
	// was not found in the ad group.
	//   "LISTING_GROUP_CANNOT_BE_REMOVED" - Recursive removal failed because
	// listing group subdivision is being created or modified in this request.
	//   "INVALID_LISTING_GROUP_TYPE" - Listing group type is not allowed for
	// specified ad group criterion type.
	//   "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID" - Listing group in an ADD
	// operation specifies a non temporary criterion id.
	//   "LISTING_SCOPE_TOO_LONG" - The combined length of dimension values of the
	// Listing scope criterion is too long.
	//   "LISTING_SCOPE_TOO_MANY_DIMENSIONS" - Listing scope contains too many
	// dimensions.
	//   "LISTING_GROUP_TOO_LONG" - The combined length of dimension values of the
	// Listing group criterion is too long.
	//   "LISTING_GROUP_TREE_TOO_DEEP" - Listing group tree is too deep.
	//   "INVALID_LISTING_DIMENSION" - Listing dimension is invalid (for example,
	// dimension contains illegal value, dimension type is represented with wrong
	// class, etc). Listing dimension value can not contain "==" or "&+".
	//   "INVALID_LISTING_DIMENSION_TYPE" - Listing dimension type is either
	// invalid for campaigns of this type or cannot be used in the current context.
	// BIDDING_CATEGORY_Lx and PRODUCT_TYPE_Lx dimensions must be used in ascending
	// order of their levels: L1, L2, L3, L4, L5... The levels must be specified
	// sequentially and start from L1. Furthermore, an "others" Listing group
	// cannot be subdivided with a dimension of the same type but of a higher level
	// ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with
	// BIDDING_CATEGORY_L4).
	//   "ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY" - Customer
	// is not on allowlist for composite audience in display campaigns.
	//   "CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE" - Cannot target on a removed
	// combined audience.
	//   "INVALID_COMBINED_AUDIENCE_ID" - Combined audience ID is invalid.
	//   "CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE" - Can not target removed combined
	// audience.
	//   "HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel check-in date's start date and end date overlaps with
	// an existing criterion.
	//   "HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY" - Start date is earlier
	// than earliest allowed value of yesterday UTC.
	//   "HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE" - End date later is than
	// latest allowed day of 330 days in the future UTC.
	//   "HOTEL_CHECK_IN_DATE_RANGE_REVERSED" - Start date is after end date.
	//   "BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED" - Broad match modifier (BMM)
	// keywords can no longer be created. See
	// https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html.
	//   "ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP" - Only one audience is allowed in
	// an asset group.
	//   "AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE" - Audience is not supported for
	// the specified campaign type.
	//   "AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE" -
	// Audience is not allowed to attach when use_audience_grouped bit is set to
	// false.
	//   "CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST" - Targeting is not allowed for
	// Customer Match lists as per Customer Match policy. See
	// https://support.google.com/google-ads/answer/6299717.
	//   "NEGATIVE_KEYWORD_SHARED_SET_DOES_NOT_EXIST" - Cannot create a negative
	// keyword list criterion with a shared set that does not exist.
	//   "CANNOT_ADD_REMOVED_NEGATIVE_KEYWORD_SHARED_SET" - Cannot create a
	// negative keyword list with deleted shared set.
	//   "CANNOT_HAVE_MULTIPLE_NEGATIVE_KEYWORD_LIST_PER_ACCOUNT" - Can only have
	// one Negative Keyword List per account.
	//   "CUSTOMER_CANNOT_ADD_CRITERION_OF_THIS_TYPE" - Only allowlisted customers
	// can add criteria of this type.
	//   "CANNOT_TARGET_SIMILAR_USER_LIST" - Targeting for Similar audiences is not
	// supported, since this feature has been deprecated. See
	// https://support.google.com/google-ads/answer/12463119 to learn more.
	//   "CANNOT_ADD_AUDIENCE_SEGMENT_CRITERION_WHEN_AUDIENCE_GROUPED_IS_SET" -
	// Audience segment criteria cannot be added when use_audience_grouped bit is
	// set.
	//   "ONE_AUDIENCE_ALLOWED_PER_AD_GROUP" - Only one audience is allowed in an
	// ad group.
	//   "INVALID_DETAILED_DEMOGRAPHIC" - Invalid detailed demographics criterion.
	//   "CANNOT_RECOGNIZE_BRAND" - The brand criteria has a brand input that is
	// not recognized as a valid brand.
	//   "BRAND_SHARED_SET_DOES_NOT_EXIST" - The brand_list.shared_set_id
	// references a shared set that does not exist.
	//   "CANNOT_ADD_REMOVED_BRAND_SHARED_SET" - Cannot create a brand list with
	// deleted shared set.
	//   "ONLY_EXCLUSION_BRAND_LIST_ALLOWED_FOR_CAMPAIGN_TYPE" - Brand list can
	// only be negatively targeted for the campaign type.
	//   "LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN" - Cannot
	// positively target locations outside of restricted area for campaign.
	//   "ONLY_INCLUSION_BRAND_LIST_ALLOWED_FOR_AD_GROUPS" - Ad group level brand
	// list criteria only support inclusionary targeting. Negative targeting at
	// this level is not supported.
	//   "CANNOT_ADD_REMOVED_PLACEMENT_LIST_SHARED_SET" - Cannot create a placement
	// list with deleted shared set.
	//   "PLACEMENT_LIST_SHARED_SET_DOES_NOT_EXIST" - The
	// placement_list.shared_set_id references a shared set that does not exist.
	//   "AI_MAX_MUST_BE_ENABLED" - This feature is only available for AI Max
	// campaigns.
	//   "NOT_AVAILABLE_FOR_AI_MAX_CAMPAIGNS" - This feature is not available for
	// AI Max campaigns.
	//   "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION" - The operation failed
	// because the campaign is missing the self-declaration on political
	// advertising status in the EU.
	//   "INVALID_CAMPAIGN_TYPE_FOR_THIRD_PARTY_PARTNER_DATA_LIST" - Targeting this
	// UserList is not allowed for this campaign type.
	//   "CANNOT_ADD_USER_LIST_PENDING_PRIVACY_REVIEW" - The user list cannot be
	// used while it is pending privacy review.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_DOES_NOT_EXIST" - The referenced
	// Vertical Ads item group rule list shared set does not exist.
	//   "CANNOT_ADD_REMOVED_VERTICAL_ADS_ITEM_GROUP_RULE_LIST_SHARED_SET" - Cannot
	// add Vertical Ads Item Group Rule List with deleted shared set.
	//
	// "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLE
	// D_TRAVEL_FEED" - Vertical Ads Item Group Rule List is not supported for
	// campaigns that do not have an active travel feed.
	//
	// "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX
	// " - Vertical Ads Item Group Rule List is not supported for campaigns that do
	// not have AI max enabled.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE" - The
	// dimension of the Vertical Ads Item Group Rule criterion is not supported for
	// the shared set vertical type.
	CriterionError string `json:"criterionError,omitempty"`
	// CurrencyCodeError: The reasons for the currency code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED" - The currency code is not supported.
	CurrencyCodeError string `json:"currencyCodeError,omitempty"`
	// CurrencyError: The reasons for the currency errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT" - Bid must be a multiple of billable
	// unit.
	CurrencyError string `json:"currencyError,omitempty"`
	// CustomAudienceError: The reasons for the custom audience error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_USED" - New name in the custom audience is duplicated
	// ignoring cases.
	//   "CANNOT_REMOVE_WHILE_IN_USE" - Cannot remove a custom audience while it's
	// still being used as targeting.
	//   "RESOURCE_ALREADY_REMOVED" - Cannot update or remove a custom audience
	// that is already removed.
	//   "MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED" - The pair of [type, value]
	// already exists in members.
	//   "INVALID_MEMBER_TYPE" - Member type is invalid.
	//   "MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH" - Member type does not have
	// associated value.
	//   "POLICY_VIOLATION" - Custom audience contains a member that violates
	// policy.
	//   "INVALID_TYPE_CHANGE" - Change in custom audience type is not allowed.
	CustomAudienceError string `json:"customAudienceError,omitempty"`
	// CustomColumnError: The reasons for the custom column error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOM_COLUMN_NOT_FOUND" - The custom column has not been found.
	//   "CUSTOM_COLUMN_NOT_AVAILABLE" - The custom column is not available.
	CustomColumnError string `json:"customColumnError,omitempty"`
	// CustomConversionGoalError: The reasons for the custom conversion goal error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CONVERSION_ACTION" - Cannot find a conversion action with the
	// specified id.
	//   "CONVERSION_ACTION_NOT_ENABLED" - The conversion action is not enabled so
	// it cannot be included in a custom conversion goal.
	//   "CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL" - The custom conversion goal
	// cannot be removed because it's linked to a campaign.
	//   "CUSTOM_GOAL_DUPLICATE_NAME" - Custom goal with the same name already
	// exists.
	//   "DUPLICATE_CONVERSION_ACTION_LIST" - Custom goal with the same conversion
	// action list already exists.
	//   "NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL" - Conversion
	// types that cannot be biddable should not be included in custom goal.
	CustomConversionGoalError string `json:"customConversionGoalError,omitempty"`
	// CustomInterestError: The reasons for the custom interest error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_USED" - Duplicate custom interest name ignoring case.
	//   "CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE" - In
	// the remove custom interest member operation, both member ID and pair [type,
	// parameter] are not present.
	//   "TYPE_AND_PARAMETER_NOT_FOUND" - The pair of [type, parameter] does not
	// exist.
	//   "TYPE_AND_PARAMETER_ALREADY_EXISTED" - The pair of [type, parameter]
	// already exists.
	//   "INVALID_CUSTOM_INTEREST_MEMBER_TYPE" - Unsupported custom interest member
	// type.
	//   "CANNOT_REMOVE_WHILE_IN_USE" - Cannot remove a custom interest while it's
	// still being targeted.
	//   "CANNOT_CHANGE_TYPE" - Cannot mutate custom interest type.
	CustomInterestError string `json:"customInterestError,omitempty"`
	// CustomerClientLinkError: The reasons for the customer client link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER" - Trying to manage a client that
	// already in being managed by customer.
	//   "CLIENT_ALREADY_MANAGED_IN_HIERARCHY" - Already managed by some other
	// manager in the hierarchy.
	//   "CYCLIC_LINK_NOT_ALLOWED" - Attempt to create a cycle in the hierarchy.
	//   "CUSTOMER_HAS_TOO_MANY_ACCOUNTS" - Managed accounts has the maximum number
	// of linked accounts.
	//   "CLIENT_HAS_TOO_MANY_INVITATIONS" - Invitor has the maximum pending
	// invitations.
	//   "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS" - Attempt to change hidden status
	// of a link that is not active.
	//   "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER" - Parent manager account has
	// the maximum number of linked accounts.
	//   "CLIENT_HAS_TOO_MANY_MANAGERS" - Client has too many managers.
	CustomerClientLinkError string `json:"customerClientLinkError,omitempty"`
	// CustomerCustomizerError: The reasons for the customer customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	CustomerCustomizerError string `json:"customerCustomizerError,omitempty"`
	// CustomerError: The reasons for the customer error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "STATUS_CHANGE_DISALLOWED" - Customer status is not allowed to be changed
	// from DRAFT and CLOSED. Currency code and at least one of country code and
	// time zone needs to be set when status is changed to ENABLED.
	//   "ACCOUNT_NOT_SET_UP" - CustomerService cannot get a customer that has not
	// been fully set up.
	//   "CREATION_DENIED_FOR_POLICY_VIOLATION" - Customer creation is denied for
	// policy violation.
	//   "CREATION_DENIED_INELIGIBLE_MCC" - Manager account is ineligible to create
	// new accounts.
	CustomerError string `json:"customerError,omitempty"`
	// CustomerFeedError: The reasons for the customer feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this customer and place holder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED" - The CustomerFeed already
	// exists. Update should be used to modify the existing CustomerFeed.
	//   "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED" - Cannot update removed customer
	// feed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED" - Placeholder not allowed
	// at the account level.
	CustomerFeedError string `json:"customerFeedError,omitempty"`
	// CustomerLifecycleGoalError: The reasons for the customer lifecycle goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_ACQUISITION_VALUE_MISSING" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be
	// set.
	//   "CUSTOMER_ACQUISITION_INVALID_VALUE" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be
	// no less than 0.01.
	//   "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_
	// value must be no less than 0.01. Also, to set this field,
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must
	// also be present, and high_lifetime_value must be greater than value.
	//   "CUSTOMER_ACQUISITION_VALUE_CANNOT_BE_CLEARED" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value cannot
	// be cleared. This value would have no effect as long as none of your
	// campaigns adopt the customer acquisitiong goal.
	//   "CUSTOMER_ACQUISITION_HIGH_LIFETIME_VALUE_CANNOT_BE_CLEARED" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_
	// value cannot be cleared. This value would have no effect as long as none of
	// your campaigns adopt the high value optimization of customer acquisitiong
	// goal.
	//   "INVALID_EXISTING_USER_LIST" - Found invalid value in
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_us
	// er_lists. The userlist must be accessible, active and belong to one of the
	// following types: CRM_BASED, RULE_BASED, REMARKETING.
	//   "INVALID_HIGH_LIFETIME_VALUE_USER_LIST" - Found invalid value in
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifeti
	// me_value_user_lists. The userlist must be accessible, active and belong to
	// one of the following types: CRM_BASED, RULE_BASED, REMARKETING.
	CustomerLifecycleGoalError string `json:"customerLifecycleGoalError,omitempty"`
	// CustomerManagerLinkError: The reasons for the customer manager link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_PENDING_INVITE" - No pending invitation.
	//   "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL" - Attempt to operate on the same
	// client more than once in the same call.
	//   "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS" - Manager account has the
	// maximum number of linked accounts.
	//   "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER" - If no active user on account
	// it cannot be unlinked from its manager.
	//   "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER" - Account should have at least
	// one active owner on it before being unlinked.
	//   "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER" - Only account owners may change
	// their permission role.
	//   "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT" - When a client's link to
	// its manager is not active, the link role cannot be changed.
	//   "DUPLICATE_CHILD_FOUND" - Attempt to link a child to a parent that
	// contains or will contain duplicate children.
	//   "TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS" - The authorized customer is
	// a test account. It can add no more than the allowed number of accounts
	CustomerManagerLinkError string `json:"customerManagerLinkError,omitempty"`
	// CustomerSkAdNetworkConversionValueSchemaError: The reasons for the customer
	// SK Ad network conversion value schema error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_LINK_ID" - The customer link ID provided is invalid.
	//   "INVALID_APP_ID" - The app ID provided is invalid.
	//   "INVALID_SCHEMA" - The conversion value schema provided is invalid.
	//   "LINK_CODE_NOT_FOUND" - The customer link id provided could not be found.
	//   "INVALID_EVENT_COUNTER" - The SkAdNetwork event counter provided is
	// invalid.
	//   "INVALID_EVENT_NAME" - The SkAdNetwork event name provided is invalid.
	CustomerSkAdNetworkConversionValueSchemaError string `json:"customerSkAdNetworkConversionValueSchemaError,omitempty"`
	// CustomerUserAccessError: The reasons for the customer user access mutate
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_ID" - There is no user associated with the user id
	// specified.
	//   "REMOVAL_DISALLOWED" - Unable to remove the access between the user and
	// customer.
	//   "DISALLOWED_ACCESS_ROLE" - Unable to add or update the access role as
	// specified.
	//   "LAST_ADMIN_USER_OF_SERVING_CUSTOMER" - The user can't remove itself from
	// an active serving customer if it's the last admin user and the customer
	// doesn't have any owner manager
	//   "LAST_ADMIN_USER_OF_MANAGER" - Last admin user cannot be removed from a
	// manager.
	CustomerUserAccessError string `json:"customerUserAccessError,omitempty"`
	// CustomizerAttributeError: The reasons for the customizer attribute error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME" - CustomizerAttribute name matches
	// that of another active CustomizerAttribute.
	CustomizerAttributeError string `json:"customizerAttributeError,omitempty"`
	// DataLinkError: The reasons for the data link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "YOUTUBE_CHANNEL_ID_INVALID" - The requested YouTube Channel ID is
	// invalid.
	//   "YOUTUBE_VIDEO_ID_INVALID" - The requested YouTube Video ID is invalid.
	//   "YOUTUBE_VIDEO_FROM_DIFFERENT_CHANNEL" - The requested YouTube Video ID
	// doesn't belong to the requested YouTube Channel ID.
	//   "PERMISSION_DENIED" - A link cannot be created because the customer
	// doesn't have the permission.
	//   "INVALID_STATUS" - A link can not be removed or updated because the status
	// is invalid.
	//   "INVALID_UPDATE_STATUS" - The input status in the update request is
	// invalid.
	//   "INVALID_RESOURCE_NAME" - The input resource name is invalid.
	DataLinkError string `json:"dataLinkError,omitempty"`
	// DatabaseError: The reasons for the database error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCURRENT_MODIFICATION" - Multiple requests were attempting to modify
	// the same resource at once. Retry the request.
	//   "DATA_CONSTRAINT_VIOLATION" - The request conflicted with existing data.
	// This error will usually be replaced with a more specific error if the
	// request is retried.
	//   "REQUEST_TOO_LARGE" - The data written is too large. Split the request
	// into smaller requests.
	DatabaseError string `json:"databaseError,omitempty"`
	// DateError: The reasons for the date error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not correspond to a
	// valid date.
	//   "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not correspond
	// to a valid date time.
	//   "INVALID_STRING_DATE" - The string date's format should be yyyy-mm-dd.
	//   "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.ssssss.
	//   "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.
	//   "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date time's
	// format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
	//   "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum.
	//   "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum.
	//   "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range bounds are
	// not in order.
	//   "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in range are
	// null.
	//   "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY" - This campaign
	// type doesn't support a start date time that isn't the start of the day.
	//   "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY" - This campaign type
	// doesn't support an end date time that isn't the end of the day.
	DateError string `json:"dateError,omitempty"`
	// DateRangeError: The reasons for the date range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_DATE" - Invalid date.
	//   "START_DATE_AFTER_END_DATE" - The start date was after the end date.
	//   "CANNOT_SET_DATE_TO_PAST" - Cannot set date to past time
	//   "AFTER_MAXIMUM_ALLOWABLE_DATE" - A date was used that is past the system
	// "last" date.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a resource that has started.
	DateRangeError string `json:"dateRangeError,omitempty"`
	// DistinctError: The reasons for the distinct error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ELEMENT" - Duplicate element.
	//   "DUPLICATE_TYPE" - Duplicate type.
	DistinctError string `json:"distinctError,omitempty"`
	// EnumError: The reason for enum error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ENUM_VALUE_NOT_PERMITTED" - The enum value is not permitted.
	EnumError string `json:"enumError,omitempty"`
	// ExperimentArmError: The reasons for the experiment arm error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED" - Number of experiment arms is above
	// limit.
	//   "INVALID_CAMPAIGN_STATUS" - Cannot add campaign with invalid status to the
	// experiment arm.
	//   "DUPLICATE_EXPERIMENT_ARM_NAME" - Cannot add duplicate experiment arm name
	// in one experiment.
	//   "CANNOT_SET_TREATMENT_ARM_CAMPAIGN" - Cannot set campaigns of treatment
	// experiment arm.
	//   "CANNOT_MODIFY_CAMPAIGN_IDS" - Cannot edit campaign ids in trial arms in
	// non SETUP experiment.
	//   "CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET" - Cannot modify the campaigns
	// in the control arm if there is not a suffix set in the trial.
	//   "CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START" - Traffic split related settings
	// (like traffic share bounds) can't be modified after the trial has started.
	//   "CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET" - Cannot use shared budget on
	// experiment's control campaign.
	//   "CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET" - Cannot use custom budget on
	// experiment's control campaigns.
	//   "CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED" - Cannot have
	// enable_dynamic_assets turned on in experiment's campaigns.
	//   "UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE" - Cannot use
	// campaign's advertising channel sub type in experiment.
	//   "CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE" - Experiment date range must be
	// within base campaign's date range.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS" - Bidding strategy is not
	// supported in experiments.
	//   "TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE" - Traffic split is not
	// supported for some channel types.
	ExperimentArmError string `json:"experimentArmError,omitempty"`
	// ExperimentError: The reasons for the experiment error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_SET_START_DATE_IN_PAST" - The start date of an experiment cannot
	// be set in the past. Use a start date in the future.
	//   "END_DATE_BEFORE_START_DATE" - The end date of an experiment is before its
	// start date. Use an end date after the start date.
	//   "START_DATE_TOO_FAR_IN_FUTURE" - The start date of an experiment is too
	// far in the future. Use a start date no more than 1 year in the future.
	//   "DUPLICATE_EXPERIMENT_NAME" - The experiment has the same name as an
	// existing active experiment.
	//   "CANNOT_MODIFY_REMOVED_EXPERIMENT" - Experiments can only be modified when
	// they are ENABLED.
	//   "START_DATE_ALREADY_PASSED" - The start date of an experiment cannot be
	// modified if the existing start date has already passed.
	//   "CANNOT_SET_END_DATE_IN_PAST" - The end date of an experiment cannot be
	// set in the past.
	//   "CANNOT_SET_STATUS_TO_REMOVED" - The status of an experiment cannot be set
	// to REMOVED.
	//   "CANNOT_MODIFY_PAST_END_DATE" - The end date of an expired experiment
	// cannot be modified.
	//   "INVALID_STATUS" - The status is invalid.
	//   "INVALID_CAMPAIGN_CHANNEL_TYPE" - Experiment arm contains campaigns with
	// invalid advertising channel type.
	//   "OVERLAPPING_MEMBERS_AND_DATE_RANGE" - A pair of trials share members and
	// have overlapping date ranges.
	//   "INVALID_TRIAL_ARM_TRAFFIC_SPLIT" - Experiment arm contains invalid
	// traffic split.
	//   "TRAFFIC_SPLIT_OVERLAPPING" - Experiment contains trial arms with
	// overlapping traffic split.
	//   "SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR" - The
	// total traffic split of trial arms is not equal to 100.
	//   "CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START" - Traffic split related settings
	// (like traffic share bounds) can't be modified after the experiment has
	// started.
	//   "EXPERIMENT_NOT_FOUND" - The experiment could not be found.
	//   "EXPERIMENT_NOT_YET_STARTED" - Experiment has not begun.
	//   "CANNOT_HAVE_MULTIPLE_CONTROL_ARMS" - The experiment cannot have more than
	// one control arm.
	//   "IN_DESIGN_CAMPAIGNS_NOT_SET" - The experiment doesn't set in-design
	// campaigns.
	//   "CANNOT_SET_STATUS_TO_GRADUATED" - Clients must use the graduate action to
	// graduate experiments and cannot set the status to GRADUATED directly.
	//   "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET" - Cannot use shared
	// budget on base campaign when scheduling an experiment.
	//   "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET" - Cannot use custom
	// budget on base campaign when scheduling an experiment.
	//   "STATUS_TRANSITION_INVALID" - Invalid status transition.
	//   "DUPLICATE_EXPERIMENT_CAMPAIGN_NAME" - The experiment campaign name
	// conflicts with a pre-existing campaign.
	//   "CANNOT_REMOVE_IN_CREATION_EXPERIMENT" - Cannot remove in creation
	// experiments.
	//   "CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES" - Cannot add campaign with
	// deprecated ad types. Deprecated ad types: ENHANCED_DISPLAY, GALLERY, GMAIL,
	// KEYWORDLESS, TEXT.
	//   "CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE" - Sync can only be
	// enabled for supported experiment types. Supported experiment types:
	// SEARCH_CUSTOM, DISPLAY_CUSTOM, DISPLAY_AUTOMATED_BIDDING_STRATEGY,
	// SEARCH_AUTOMATED_BIDDING_STRATEGY.
	//   "INVALID_DURATION_FOR_AN_EXPERIMENT" - Experiment length cannot be longer
	// than max length.
	//   "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION" - The experiment's
	// campaigns must self-declare whether they contain political advertising that
	// targets the European Union.
	ExperimentError string `json:"experimentError,omitempty"`
	// ExtensionFeedItemError: The reasons for the extension feed item error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VALUE_OUT_OF_RANGE" - Value is not within the accepted range.
	//   "URL_LIST_TOO_LONG" - Url list is too long.
	//   "CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING" - Cannot have a geo
	// targeting restriction without having geo targeting.
	//   "CANNOT_SET_WITH_FINAL_URLS" - Cannot simultaneously set sitelink field
	// with final urls.
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Must set field with final urls.
	//   "INVALID_PHONE_NUMBER" - Phone number for a call extension is invalid.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number for a call
	// extension is not supported for the given country code.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - A carrier specific number in
	// short format is not allowed for call extensions.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate numbers are not allowed
	// for call extensions.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type for a call extension is not
	// allowed. For example, personal number is not allowed for a call extension in
	// most regions.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number for a call extension
	// does not meet domestic format requirements.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone numbers (for example,
	// those including letters) are not allowed for call extensions.
	//   "INVALID_CALL_CONVERSION_ACTION" - Call conversion action provided for a
	// call extension is invalid.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING" - For a call extension, the
	// customer is not on the allow-list for call tracking.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for the given country for a call extension.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer hasn't consented
	// for call recording, which is required for creating/updating call feed items.
	// See https://support.google.com/google-ads/answer/7412639.
	//   "INVALID_APP_ID" - App id provided for an app extension is invalid.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Quotation marks present in the
	// review text for a review extension.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Hyphen character present in the
	// review text for a review extension.
	//   "REVIEW_EXTENSION_SOURCE_INELIGIBLE" - A denylisted review source name or
	// url was provided for a review extension.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review source name should not be
	// found in the review text.
	//   "INCONSISTENT_CURRENCY_CODES" - Inconsistent currency codes.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Price extension cannot have
	// duplicated headers.
	//   "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Price item cannot
	// have duplicated header and description.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items.
	//   "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS" - Price extension has too many items.
	//   "UNSUPPORTED_VALUE" - The input value is not currently supported.
	//   "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE" - The input value is not
	// currently supported in the selected language of an extension.
	//   "INVALID_DEVICE_PREFERENCE" - Unknown or unsupported device preference.
	//   "INVALID_SCHEDULE_END" - Invalid feed item schedule end time (for example,
	// endHour = 24 and endMinute != 0).
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "INVALID_SNIPPETS_HEADER" - Invalid structured snippet header.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM" - Cannot operate on removed feed
	// item.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// not supported when call tracking enabled for country.
	//   "CONFLICTING_CALL_CONVERSION_SETTINGS" - Cannot set call_conversion_action
	// while call_conversion_tracking_enabled is set to true.
	//   "EXTENSION_TYPE_MISMATCH" - The type of the input extension feed item
	// doesn't match the existing extension feed item.
	//   "EXTENSION_SUBTYPE_REQUIRED" - The oneof field extension for example,
	// subtype of extension feed item is required.
	//   "EXTENSION_TYPE_UNSUPPORTED" - The referenced feed item is not mapped to a
	// supported extension type.
	//   "CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS" - Cannot operate on a Feed
	// with more than one active FeedMapping.
	//   "CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES" - Cannot operate on a Feed
	// that has key attributes.
	//   "INVALID_PRICE_FORMAT" - Input price is not in a valid format.
	//   "PROMOTION_INVALID_TIME" - The promotion time is invalid.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - This field has too many decimal
	// places specified.
	//   "CONCRETE_EXTENSION_TYPE_REQUIRED" - Concrete sub type of
	// ExtensionFeedItem is required for this operation.
	//   "SCHEDULE_END_NOT_AFTER_START" - Feed item schedule end time must be after
	// start time.
	ExtensionFeedItemError string `json:"extensionFeedItemError,omitempty"`
	// ExtensionSettingError: The reasons for the extension setting error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXTENSIONS_REQUIRED" - A platform restriction was provided without input
	// extensions or existing extensions.
	//   "FEED_TYPE_EXTENSION_TYPE_MISMATCH" - The provided feed type does not
	// correspond to the provided extensions.
	//   "INVALID_FEED_TYPE" - The provided feed type cannot be used.
	//   "INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING" - The provided feed
	// type cannot be used at the customer level.
	//   "CANNOT_CHANGE_FEED_ITEM_ON_CREATE" - Cannot change a feed item field on a
	// CREATE operation.
	//   "CANNOT_UPDATE_NEWLY_CREATED_EXTENSION" - Cannot update an extension that
	// is not already in this setting.
	//   "NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// AdGroupExtensionSetting for this type.
	//   "NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// CampaignExtensionSetting for this type.
	//   "NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// CustomerExtensionSetting for this type.
	//   "AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS" - The AdGroupExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// AdGroupExtensionSetting.
	//   "CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS" - The CampaignExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// CampaignExtensionSetting.
	//   "CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS" - The CustomerExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// CustomerExtensionSetting.
	//   "AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active ad group
	// feed already exists for this place holder type.
	//   "CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active campaign
	// feed already exists for this place holder type.
	//   "CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active customer
	// feed already exists for this place holder type.
	//   "VALUE_OUT_OF_RANGE" - Value is not within the accepted range.
	//   "CANNOT_SET_FIELD_WITH_FINAL_URLS" - Cannot simultaneously set specified
	// field with final urls.
	//   "FINAL_URLS_NOT_SET" - Must set field with final urls.
	//   "INVALID_PHONE_NUMBER" - Phone number for a call extension is invalid.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number for a call
	// extension is not supported for the given country code.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - A carrier specific number in
	// short format is not allowed for call extensions.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate numbers are not allowed
	// for call extensions.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type for a call extension is not
	// allowed.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number for a call extension
	// does not meet domestic format requirements.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone numbers (for example,
	// those including letters) are not allowed for call extensions.
	//   "INVALID_COUNTRY_CODE" - Country code provided for a call extension is
	// invalid.
	//   "INVALID_CALL_CONVERSION_TYPE_ID" - Call conversion type id provided for a
	// call extension is invalid.
	//   "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING" - For a call extension, the
	// customer is not on the allow-list for call tracking.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for the given country for a call extension.
	//   "INVALID_APP_ID" - App id provided for an app extension is invalid.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Quotation marks present in the
	// review text for a review extension.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Hyphen character present in the
	// review text for a review extension.
	//   "REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE" - A blocked review source name or
	// url was provided for a review extension.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review source name should not be
	// found in the review text.
	//   "MISSING_FIELD" - Field must be set.
	//   "INCONSISTENT_CURRENCY_CODES" - Inconsistent currency codes.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Price extension cannot have
	// duplicated headers.
	//   "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Price item cannot
	// have duplicated header and description.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items
	//   "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS" - Price extension has too many items
	//   "UNSUPPORTED_VALUE" - The input value is not currently supported.
	//   "INVALID_DEVICE_PREFERENCE" - Unknown or unsupported device preference.
	//   "INVALID_SCHEDULE_END" - Invalid feed item schedule end time (for example,
	// endHour = 24 and endMinute != 0).
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "OVERLAPPING_SCHEDULES_NOT_ALLOWED" - Overlapping feed item schedule times
	// (for example, 7-10AM and 8-11AM) are not allowed.
	//   "SCHEDULE_END_NOT_AFTER_START" - Feed item schedule end time must be after
	// start time.
	//   "TOO_MANY_SCHEDULES_PER_DAY" - There are too many feed item schedules per
	// day.
	//   "DUPLICATE_EXTENSION_FEED_ITEM_EDIT" - Cannot edit the same extension feed
	// item more than once in the same request.
	//   "INVALID_SNIPPETS_HEADER" - Invalid structured snippet header.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// with call tracking enabled is not supported for the specified country.
	//   "CAMPAIGN_TARGETING_MISMATCH" - The targeted adgroup must belong to the
	// targeted campaign.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED" - The feed used by the ExtensionSetting
	// is removed and cannot be operated on. Remove the ExtensionSetting to allow a
	// new one to be created using an active feed.
	//   "EXTENSION_TYPE_REQUIRED" - The ExtensionFeedItem type is required for
	// this operation.
	//   "INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION" - The matching function that
	// links the extension feed to the customer, campaign, or ad group is not
	// compatible with the ExtensionSetting services.
	//   "START_DATE_AFTER_END_DATE" - Start date must be before end date.
	//   "INVALID_PRICE_FORMAT" - Input price is not in a valid format.
	//   "PROMOTION_INVALID_TIME" - The promotion time is invalid.
	//   "PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT" - Cannot set
	// both percent discount and money discount fields.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Cannot set
	// both promotion code and orders over amount fields.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - This field has too many decimal
	// places specified.
	//   "INVALID_LANGUAGE_CODE" - The language code is not valid.
	//   "UNSUPPORTED_LANGUAGE" - The language is not supported.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer hasn't consented
	// for call recording, which is required for adding/updating call extensions.
	// See https://support.google.com/google-ads/answer/7412639.
	//   "EXTENSION_SETTING_UPDATE_IS_A_NOOP" - The UPDATE operation does not
	// specify any fields other than the resource name in the update mask.
	//   "DISALLOWED_TEXT" - The extension contains text which has been prohibited
	// on policy grounds.
	ExtensionSettingError string `json:"extensionSettingError,omitempty"`
	// FeedAttributeReferenceError: The reasons for the feed attribute reference
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_REFERENCE_REMOVED_FEED" - A feed referenced by ID has been
	// removed.
	//   "INVALID_FEED_NAME" - There is no enabled feed with the given name.
	//   "INVALID_FEED_ATTRIBUTE_NAME" - There is no feed attribute in an enabled
	// feed with the given name.
	FeedAttributeReferenceError string `json:"feedAttributeReferenceError,omitempty"`
	// FeedError: The reasons for the feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ATTRIBUTE_NAMES_NOT_UNIQUE" - The names of the FeedAttributes must be
	// unique.
	//   "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES" - The attribute list must be
	// an exact copy of the existing list if the attribute ID's are present.
	//   "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED" - Cannot specify USER origin
	// for a system generated feed.
	//   "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED" - Cannot specify GOOGLE
	// origin for a non-system generated feed.
	//   "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED" - Cannot specify feed
	// attributes for system feed.
	//   "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE" - Cannot update
	// FeedAttributes on feed with origin GOOGLE.
	//   "FEED_REMOVED" - The given ID refers to a removed Feed. Removed Feeds are
	// immutable.
	//   "INVALID_ORIGIN_VALUE" - The origin of the feed is not valid for the
	// client.
	//   "FEED_ORIGIN_IS_NOT_USER" - A user can only create and modify feeds with
	// USER origin.
	//   "INVALID_AUTH_TOKEN_FOR_EMAIL" - Invalid auth token for the given email.
	//   "INVALID_EMAIL" - Invalid email specified.
	//   "DUPLICATE_FEED_NAME" - Feed name matches that of another active Feed.
	//   "INVALID_FEED_NAME" - Name of feed is not allowed.
	//   "MISSING_OAUTH_INFO" - Missing OAuthInfo.
	//   "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY" - New FeedAttributes must not
	// affect the unique key.
	//   "TOO_MANY_ATTRIBUTES" - Too many FeedAttributes for a Feed.
	//   "INVALID_BUSINESS_ACCOUNT" - The business account is not valid.
	//   "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT" - Business account
	// cannot access Business Profile.
	//   "INVALID_AFFILIATE_CHAIN_ID" - Invalid chain ID provided for affiliate
	// location feed.
	//   "DUPLICATE_SYSTEM_FEED" - There is already a feed with the given system
	// feed generation data.
	//   "GMB_ACCESS_ERROR" - An error occurred accessing Business Profile.
	//   "CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS" - A customer cannot
	// have both LOCATION and AFFILIATE_LOCATION feeds.
	//   "LEGACY_EXTENSION_TYPE_READ_ONLY" - Feed-based extension is read-only for
	// this extension type.
	FeedError string `json:"feedError,omitempty"`
	// FeedItemError: The reasons for the feed item error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING" - Cannot convert the feed
	// attribute value from string to its real type.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM" - Cannot operate on removed feed
	// item.
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "KEY_ATTRIBUTES_NOT_FOUND" - Feed item with the key attributes could not
	// be found.
	//   "INVALID_URL" - Url feed attribute value is not valid.
	//   "MISSING_KEY_ATTRIBUTES" - Some key attributes are missing.
	//   "KEY_ATTRIBUTES_NOT_UNIQUE" - Feed item has same key attributes as another
	// feed item.
	//   "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE" - Cannot modify key attributes on an
	// existing feed item.
	//   "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE" - The feed attribute value is
	// too large.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	FeedItemError string `json:"feedItemError,omitempty"`
	// FeedItemSetError: The reasons for the feed item set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ITEM_SET_REMOVED" - The given ID refers to a removed FeedItemSet.
	//   "CANNOT_CLEAR_DYNAMIC_FILTER" - The dynamic filter of a feed item set
	// cannot be cleared on UPDATE if it exists. A set is either static or dynamic
	// once added, and that cannot change.
	//   "CANNOT_CREATE_DYNAMIC_FILTER" - The dynamic filter of a feed item set
	// cannot be created on UPDATE if it does not exist. A set is either static or
	// dynamic once added, and that cannot change.
	//   "INVALID_FEED_TYPE" - FeedItemSets can only be made for location or
	// affiliate location feeds.
	//   "DUPLICATE_NAME" - FeedItemSets duplicate name. Name should be unique
	// within an account.
	//   "WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE" - The feed type of the parent Feed is
	// not compatible with the type of dynamic filter being set. For example, you
	// can only set dynamic_location_set_filter for LOCATION feed item sets.
	//   "DYNAMIC_FILTER_INVALID_CHAIN_IDS" - Chain ID specified for
	// AffiliateLocationFeedData is invalid.
	FeedItemSetError string `json:"feedItemSetError,omitempty"`
	// FeedItemSetLinkError: The reasons for the feed item set link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ID_MISMATCH" - The feed IDs of the FeedItemSet and FeedItem do not
	// match. Only FeedItems in a given Feed can be linked to a FeedItemSet in that
	// Feed.
	//   "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET" - Cannot add or remove links to a
	// dynamic set.
	FeedItemSetLinkError string `json:"feedItemSetLinkError,omitempty"`
	// FeedItemTargetError: The reasons for the feed item target error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MUST_SET_TARGET_ONEOF_ON_CREATE" - On CREATE, the FeedItemTarget must
	// have a populated field in the oneof target.
	//   "FEED_ITEM_TARGET_ALREADY_EXISTS" - The specified feed item target already
	// exists, so it cannot be added.
	//   "FEED_ITEM_SCHEDULES_CANNOT_OVERLAP" - The schedules for a given feed item
	// cannot overlap.
	//   "TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE" - Too many targets of a given type
	// were added for a single feed item.
	//   "TOO_MANY_SCHEDULES_PER_DAY" - Too many AdSchedules are enabled for the
	// feed item for the given day.
	//   "CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS" - A feed item
	// may either have an enabled campaign target or an enabled ad group target.
	//   "DUPLICATE_AD_SCHEDULE" - Duplicate ad schedules aren't allowed.
	//   "DUPLICATE_KEYWORD" - Duplicate keywords aren't allowed.
	FeedItemTargetError string `json:"feedItemTargetError,omitempty"`
	// FeedItemValidationError: The reasons for the feed item validation error
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STRING_TOO_SHORT" - String is too short.
	//   "STRING_TOO_LONG" - String is too long.
	//   "VALUE_NOT_SPECIFIED" - Value is not provided.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number format is invalid
	// for region.
	//   "INVALID_PHONE_NUMBER" - String does not represent a phone number.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number format is not
	// compatible with country code.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate number is not allowed.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type is not allowed.
	//   "VALUE_OUT_OF_RANGE" - Specified value is outside of the valid range.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// in the selected country.
	//   "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING" - Customer is not on the
	// allow-list for call tracking.
	//   "INVALID_COUNTRY_CODE" - Country code is invalid.
	//   "INVALID_APP_ID" - The specified mobile app id is invalid.
	//   "MISSING_ATTRIBUTES_FOR_FIELDS" - Some required field attributes are
	// missing.
	//   "INVALID_TYPE_ID" - Invalid email button type for email extension.
	//   "INVALID_EMAIL_ADDRESS" - Email address is invalid.
	//   "INVALID_HTTPS_URL" - The HTTPS URL in email extension is invalid.
	//   "MISSING_DELIVERY_ADDRESS" - Delivery address is missing from email
	// extension.
	//   "START_DATE_AFTER_END_DATE" - FeedItem scheduling start date comes after
	// end date.
	//   "MISSING_FEED_ITEM_START_TIME" - FeedItem scheduling start time is
	// missing.
	//   "MISSING_FEED_ITEM_END_TIME" - FeedItem scheduling end time is missing.
	//   "MISSING_FEED_ITEM_ID" - Cannot compute system attributes on a FeedItem
	// that has no FeedItemId.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Call extension vanity phone numbers
	// are not supported.
	//   "INVALID_REVIEW_EXTENSION_SNIPPET" - Invalid review text.
	//   "INVALID_NUMBER_FORMAT" - Invalid format for numeric value in ad
	// parameter.
	//   "INVALID_DATE_FORMAT" - Invalid format for date value in ad parameter.
	//   "INVALID_PRICE_FORMAT" - Invalid format for price value in ad parameter.
	//   "UNKNOWN_PLACEHOLDER_FIELD" - Unrecognized type given for value in ad
	// parameter.
	//   "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE" - Enhanced sitelinks must
	// have both description lines specified.
	//   "REVIEW_EXTENSION_SOURCE_INELIGIBLE" - Review source is ineligible.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain hyphens
	// or dashes.
	//   "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain
	// double quote characters.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain quote
	// characters.
	//   "INVALID_FORM_ENCODED_PARAMS" - Parameters are encoded in the wrong
	// format.
	//   "INVALID_URL_PARAMETER_NAME" - URL parameter name must contain only
	// letters, numbers, underscores, and dashes.
	//   "NO_GEOCODING_RESULT" - Cannot find address location.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review extension text has source
	// name.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Some phone numbers can be
	// shorter than usual. Some of these short numbers are carrier-specific, and we
	// disallow those in ad extensions because they will not be available to all
	// users.
	//   "INVALID_PLACEHOLDER_FIELD_ID" - Triggered when a request references a
	// placeholder field id that does not exist.
	//   "INVALID_URL_TAG" - URL contains invalid ValueTrack tags or format.
	//   "LIST_TOO_LONG" - Provided list exceeds acceptable size.
	//   "INVALID_ATTRIBUTES_COMBINATION" - Certain combinations of attributes
	// aren't allowed to be specified in the same feed item.
	//   "DUPLICATE_VALUES" - An attribute has the same value repeatedly.
	//   "INVALID_CALL_CONVERSION_ACTION_ID" - Advertisers can link a conversion
	// action with a phone number to indicate that sufficiently long calls
	// forwarded to that phone number should be counted as conversions of the
	// specified type. This is an error message indicating that the conversion
	// action specified is invalid (for example, the conversion action does not
	// exist within the appropriate Google Ads account, or it is a type of
	// conversion not appropriate to phone call conversions).
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Tracking template requires final url to
	// be set.
	//   "APP_ID_DOESNT_EXIST_IN_APP_STORE" - An app id was provided that doesn't
	// exist in the given app store.
	//   "INVALID_FINAL_URL" - Invalid U2 final url.
	//   "INVALID_TRACKING_URL" - Invalid U2 tracking url.
	//   "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL" - Final URL should start from App
	// download URL.
	//   "LIST_TOO_SHORT" - List provided is too short.
	//   "INVALID_USER_ACTION" - User Action field has invalid value.
	//   "INVALID_TYPE_NAME" - Type field has invalid value.
	//   "INVALID_EVENT_CHANGE_STATUS" - Change status for event is invalid.
	//   "INVALID_SNIPPETS_HEADER" - The header of a structured snippets extension
	// is not one of the valid headers.
	//   "INVALID_ANDROID_APP_LINK" - Android app link is not formatted correctly
	//   "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Phone number
	// incompatible with call tracking for country.
	//   "RESERVED_KEYWORD_OTHER" - The input is identical to a reserved keyword
	//   "DUPLICATE_OPTION_LABELS" - Each option label in the message extension
	// must be unique.
	//   "DUPLICATE_OPTION_PREFILLS" - Each option prefill in the message extension
	// must be unique.
	//   "UNEQUAL_LIST_LENGTHS" - In message extensions, the number of optional
	// labels and optional prefills must be the same.
	//   "INCONSISTENT_CURRENCY_CODES" - All currency codes in an ad extension must
	// be the same.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Headers in price extension are
	// not unique.
	//   "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Header and description in
	// an item are the same.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items.
	//   "UNSUPPORTED_VALUE" - The given value is not supported.
	//   "INVALID_FINAL_MOBILE_URL" - Invalid final mobile url.
	//   "INVALID_KEYWORDLESS_AD_RULE_LABEL" - The given string value of Label
	// contains invalid characters
	//   "VALUE_TRACK_PARAMETER_NOT_SUPPORTED" - The given URL contains value track
	// parameters.
	//   "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE" - The given value is not
	// supported in the selected language of an extension.
	//   "INVALID_IOS_APP_LINK" - The iOS app link is not formatted correctly.
	//   "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID" - iOS app link or iOS app store
	// id is missing.
	//   "PROMOTION_INVALID_TIME" - Promotion time is invalid.
	//   "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF" - Both the percent
	// off and money amount off fields are set.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Both the
	// promotion code and orders over amount fields are set.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - Too many decimal places are
	// specified.
	//   "AD_CUSTOMIZERS_NOT_ALLOWED" - Ad Customizers are present and not allowed.
	//   "INVALID_LANGUAGE_CODE" - Language code is not valid.
	//   "UNSUPPORTED_LANGUAGE" - Language is not supported.
	//   "IF_FUNCTION_NOT_ALLOWED" - IF Function is present and not allowed.
	//   "INVALID_FINAL_URL_SUFFIX" - Final url suffix is not valid.
	//   "INVALID_TAG_IN_FINAL_URL_SUFFIX" - Final url suffix contains an invalid
	// tag.
	//   "INVALID_FINAL_URL_SUFFIX_FORMAT" - Final url suffix is formatted
	// incorrectly.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Consent for call
	// recording, which is required for the use of call extensions, was not
	// provided by the advertiser. See
	// https://support.google.com/google-ads/answer/7412639.
	//   "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED" - Multiple message delivery options
	// are set.
	//   "NO_DELIVERY_OPTION_IS_SET" - No message delivery option is set.
	//   "INVALID_CONVERSION_REPORTING_STATE" - String value of conversion
	// reporting state field is not valid.
	//   "IMAGE_SIZE_WRONG" - Image size is not right.
	//   "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY" - Email delivery is not
	// supported in the country specified in the country code field.
	//   "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY" - Auto reply is not supported in the
	// country specified in the country code field.
	//   "INVALID_LATITUDE_VALUE" - Invalid value specified for latitude.
	//   "INVALID_LONGITUDE_VALUE" - Invalid value specified for longitude.
	//   "TOO_MANY_LABELS" - Too many label fields provided.
	//   "INVALID_IMAGE_URL" - Invalid image url.
	//   "MISSING_LATITUDE_VALUE" - Latitude value is missing.
	//   "MISSING_LONGITUDE_VALUE" - Longitude value is missing.
	//   "ADDRESS_NOT_FOUND" - Unable to find address.
	//   "ADDRESS_NOT_TARGETABLE" - Cannot target provided address.
	//   "INVALID_ASSET_ID" - The specified asset ID does not exist.
	//   "INCOMPATIBLE_ASSET_TYPE" - The asset type cannot be set for the field.
	//   "IMAGE_ERROR_UNEXPECTED_SIZE" - The image has unexpected size.
	//   "IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED" - The image aspect ratio is not
	// allowed.
	//   "IMAGE_ERROR_FILE_TOO_LARGE" - The image file is too large.
	//   "IMAGE_ERROR_FORMAT_NOT_ALLOWED" - The image format is unsupported.
	//   "IMAGE_ERROR_CONSTRAINTS_VIOLATED" - Image violates constraints without
	// more details.
	//   "IMAGE_ERROR_SERVER_ERROR" - An error occurred when validating image.
	FeedItemValidationError string `json:"feedItemValidationError,omitempty"`
	// FeedMappingError: The reasons for the feed mapping error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_PLACEHOLDER_FIELD" - The given placeholder field does not exist.
	//   "INVALID_CRITERION_FIELD" - The given criterion field does not exist.
	//   "INVALID_PLACEHOLDER_TYPE" - The given placeholder type does not exist.
	//   "INVALID_CRITERION_TYPE" - The given criterion type does not exist.
	//   "NO_ATTRIBUTE_FIELD_MAPPINGS" - A feed mapping must contain at least one
	// attribute field mapping.
	//   "FEED_ATTRIBUTE_TYPE_MISMATCH" - The type of the feed attribute referenced
	// in the attribute field mapping must match the type of the placeholder field.
	//   "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED" - A feed mapping
	// for a system generated feed cannot be operated on.
	//   "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE" - Only one feed mapping for a
	// placeholder type is allowed per feed or customer (depending on the
	// placeholder type).
	//   "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE" - Only one feed mapping for a
	// criterion type is allowed per customer.
	//   "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD" - Only one feed attribute
	// mapping for a placeholder field is allowed (depending on the placeholder
	// type).
	//   "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD" - Only one feed attribute mapping
	// for a criterion field is allowed (depending on the criterion type).
	//   "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS" - This feed mapping may not contain
	// any explicit attribute field mappings.
	//   "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS" - Location placeholder feed
	// mappings can only be created for Places feeds.
	//   "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED" - Mappings for typed feeds cannot
	// be modified.
	//   "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED" - The given
	// placeholder type can only be mapped to system generated feeds.
	//   "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE" - The given
	// placeholder type cannot be mapped to a system generated feed with the given
	// type.
	//   "ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD" - The "field" oneof was not set in
	// an AttributeFieldMapping.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	FeedMappingError string `json:"feedMappingError,omitempty"`
	// FieldError: The reasons for the field error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUIRED" - The required field was not present.
	//   "IMMUTABLE_FIELD" - The field attempted to be mutated is immutable.
	//   "INVALID_VALUE" - The field's value is invalid.
	//   "VALUE_MUST_BE_UNSET" - The field cannot be set.
	//   "REQUIRED_NONEMPTY_LIST" - The required repeated field was empty.
	//   "FIELD_CANNOT_BE_CLEARED" - The field cannot be cleared.
	//   "BLOCKED_VALUE" - The field's value is on a deny-list for this field.
	//   "FIELD_CAN_ONLY_BE_CLEARED" - The field's value cannot be modified, except
	// for clearing.
	FieldError string `json:"fieldError,omitempty"`
	// FieldMaskError: An error with a field mask
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FIELD_MASK_MISSING" - The field mask must be provided for update
	// operations.
	//   "FIELD_MASK_NOT_ALLOWED" - The field mask must be empty for create and
	// remove operations.
	//   "FIELD_NOT_FOUND" - The field mask contained an invalid field.
	//   "FIELD_HAS_SUBFIELDS" - The field mask updated a field with subfields.
	// Fields with subfields may be cleared, but not updated. To fix this, the
	// field mask should select all the subfields of the invalid field.
	FieldMaskError string `json:"fieldMaskError,omitempty"`
	// FinalUrlExpansionAssetViewError: The reasons for the final url expansion
	// asset view error
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MISSING_REQUIRED_FILTER" - At least one required filter has to be applied
	// in the query.
	//   "REQUIRES_ADVERTISING_CHANNEL_TYPE_FILTER" - Advertising channel type
	// filter is required.
	//   "INVALID_ADVERTISING_CHANNEL_TYPE_IN_FILTER" - Advertising channel type
	// filter has an invalid value.
	//   "CANNOT_SELECT_ASSET_GROUP" - Asset group cannot be selected in the query.
	//   "CANNOT_SELECT_AD_GROUP" - Ad group cannot be selected in the query.
	//   "REQUIRES_FILTER_BY_SINGLE_RESOURCE" - A selected field/resource requires
	// filtering by a single resource.
	//   "CANNOT_SELECT_BOTH_AD_GROUP_AND_ASSET_GROUP" - Both ad group and asset
	// group cannot be selected in the query.
	//   "CANNOT_FILTER_BY_BOTH_AD_GROUP_AND_ASSET_GROUP" - Both ad group and asset
	// group cannot be filtered in the query.
	FinalUrlExpansionAssetViewError string `json:"finalUrlExpansionAssetViewError,omitempty"`
	// FunctionError: The reasons for the function error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FUNCTION_FORMAT" - The format of the function is not recognized
	// as a supported function format.
	//   "DATA_TYPE_MISMATCH" - Operand data types do not match.
	//   "INVALID_CONJUNCTION_OPERANDS" - The operands cannot be used together in a
	// conjunction.
	//   "INVALID_NUMBER_OF_OPERANDS" - Invalid numer of Operands.
	//   "INVALID_OPERAND_TYPE" - Operand Type not supported.
	//   "INVALID_OPERATOR" - Operator not supported.
	//   "INVALID_REQUEST_CONTEXT_TYPE" - Request context type not supported.
	//   "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER" - The matching function is not
	// allowed for call placeholders
	//   "INVALID_FUNCTION_FOR_PLACEHOLDER" - The matching function is not allowed
	// for the specified placeholder
	//   "INVALID_OPERAND" - Invalid operand.
	//   "MISSING_CONSTANT_OPERAND_VALUE" - Missing value for the constant operand.
	//   "INVALID_CONSTANT_OPERAND_VALUE" - The value of the constant operand is
	// invalid.
	//   "INVALID_NESTING" - Invalid function nesting.
	//   "MULTIPLE_FEED_IDS_NOT_SUPPORTED" - The Feed ID was different from another
	// Feed ID in the same function.
	//   "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA" - The matching function is
	// invalid for use with a feed with a fixed schema.
	//   "INVALID_ATTRIBUTE_NAME" - Invalid attribute name.
	FunctionError string `json:"functionError,omitempty"`
	// FunctionParsingError: The reasons for the function parsing error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_MORE_INPUT" - Unexpected end of function string.
	//   "EXPECTED_CHARACTER" - Could not find an expected character.
	//   "UNEXPECTED_SEPARATOR" - Unexpected separator character.
	//   "UNMATCHED_LEFT_BRACKET" - Unmatched left bracket or parenthesis.
	//   "UNMATCHED_RIGHT_BRACKET" - Unmatched right bracket or parenthesis.
	//   "TOO_MANY_NESTED_FUNCTIONS" - Functions are nested too deeply.
	//   "MISSING_RIGHT_HAND_OPERAND" - Missing right-hand-side operand.
	//   "INVALID_OPERATOR_NAME" - Invalid operator/function name.
	//   "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER" - Feed attribute operand's
	// argument is not an integer.
	//   "NO_OPERANDS" - Missing function operands.
	//   "TOO_MANY_OPERANDS" - Function had too many operands.
	FunctionParsingError string `json:"functionParsingError,omitempty"`
	// GeoTargetConstantSuggestionError: The reasons for the geo target constant
	// suggestion error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "LOCATION_NAME_SIZE_LIMIT" - A location name cannot be greater than 300
	// characters.
	//   "LOCATION_NAME_LIMIT" - At most 25 location names can be specified in a
	// SuggestGeoTargetConstants method.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	//   "REQUEST_PARAMETERS_UNSET" - Geo target constant resource names or
	// location names must be provided in the request.
	GeoTargetConstantSuggestionError string `json:"geoTargetConstantSuggestionError,omitempty"`
	// GoalError: The reasons for the goal error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RETENTION_GOAL_ALREADY_EXISTS" - Retention goal already exists.
	//   "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT" - When using customer
	// lifecycle optimization goal, if high lifetime value is present then value
	// should be present.
	//   "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE" - When using customer
	// lifecycle optimization goal, high lifetime value should be greater than
	// value.
	//   "CUSTOMER_LIFECYCLE_OPTIMIZATION_ACCOUNT_TYPE_NOT_ALLOWED" - Only Google
	// Ads account can have customer lifecycle optimization goal.
	GoalError string `json:"goalError,omitempty"`
	// HeaderError: The reasons for the header error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_LOGIN_CUSTOMER_ID" - The login customer ID could not be
	// validated.
	//   "INVALID_LINKED_CUSTOMER_ID" - The linked customer ID could not be
	// validated.
	HeaderError string `json:"headerError,omitempty"`
	// IdError: The reasons for the id error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_FOUND" - ID not found
	IdError string `json:"idError,omitempty"`
	// IdentityVerificationError: The reasons for an identity verification error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_EFFECTIVE_BILLING" - No effective billing linked to this customer.
	//   "BILLING_NOT_ON_MONTHLY_INVOICING" - Customer is not on monthly invoicing.
	//   "VERIFICATION_ALREADY_STARTED" - Verification for this program type was
	// already started.
	IdentityVerificationError string `json:"identityVerificationError,omitempty"`
	// ImageError: The reasons for the image error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_IMAGE" - The image is not valid.
	//   "STORAGE_ERROR" - The image could not be stored.
	//   "BAD_REQUEST" - There was a problem with the request.
	//   "UNEXPECTED_SIZE" - The image is not of legal dimensions.
	//   "ANIMATED_NOT_ALLOWED" - Animated image are not permitted.
	//   "ANIMATION_TOO_LONG" - Animation is too long.
	//   "SERVER_ERROR" - There was an error on the server.
	//   "CMYK_JPEG_NOT_ALLOWED" - Image cannot be in CMYK color format.
	//   "FLASH_NOT_ALLOWED" - Flash images are not permitted.
	//   "FLASH_WITHOUT_CLICKTAG" - Flash images must support clickTag.
	//   "FLASH_ERROR_AFTER_FIXING_CLICK_TAG" - A flash error has occurred after
	// fixing the click tag.
	//   "ANIMATED_VISUAL_EFFECT" - Unacceptable visual effects.
	//   "FLASH_ERROR" - There was a problem with the flash image.
	//   "LAYOUT_PROBLEM" - Incorrect image layout.
	//   "PROBLEM_READING_IMAGE_FILE" - There was a problem reading the image file.
	//   "ERROR_STORING_IMAGE" - There was an error storing the image.
	//   "ASPECT_RATIO_NOT_ALLOWED" - The aspect ratio of the image is not allowed.
	//   "FLASH_HAS_NETWORK_OBJECTS" - Flash cannot have network objects.
	//   "FLASH_HAS_NETWORK_METHODS" - Flash cannot have network methods.
	//   "FLASH_HAS_URL" - Flash cannot have a Url.
	//   "FLASH_HAS_MOUSE_TRACKING" - Flash cannot use mouse tracking.
	//   "FLASH_HAS_RANDOM_NUM" - Flash cannot have a random number.
	//   "FLASH_SELF_TARGETS" - Ad click target cannot be '_self'.
	//   "FLASH_BAD_GETURL_TARGET" - GetUrl method should only use '_blank'.
	//   "FLASH_VERSION_NOT_SUPPORTED" - Flash version is not supported.
	//   "FLASH_WITHOUT_HARD_CODED_CLICK_URL" - Flash movies need to have hard
	// coded click URL or clickTAG
	//   "INVALID_FLASH_FILE" - Uploaded flash file is corrupted.
	//   "FAILED_TO_FIX_CLICK_TAG_IN_FLASH" - Uploaded flash file can be parsed,
	// but the click tag can not be fixed properly.
	//   "FLASH_ACCESSES_NETWORK_RESOURCES" - Flash movie accesses network
	// resources
	//   "FLASH_EXTERNAL_JS_CALL" - Flash movie attempts to call external
	// javascript code
	//   "FLASH_EXTERNAL_FS_CALL" - Flash movie attempts to call flash system
	// commands
	//   "FILE_TOO_LARGE" - Image file is too large.
	//   "IMAGE_DATA_TOO_LARGE" - Image data is too large.
	//   "IMAGE_PROCESSING_ERROR" - Error while processing the image.
	//   "IMAGE_TOO_SMALL" - Image is too small.
	//   "INVALID_INPUT" - Input was invalid.
	//   "PROBLEM_READING_FILE" - There was a problem reading the image file.
	//   "IMAGE_CONSTRAINTS_VIOLATED" - Image constraints are violated, but details
	// like ASPECT_RATIO_NOT_ALLOWED can't be provided. This happens when asset
	// spec contains more than one constraint and different criteria of different
	// constraints are violated.
	//   "FORMAT_NOT_ALLOWED" - Image format is not allowed.
	ImageError string `json:"imageError,omitempty"`
	// IncentiveError: The reasons for the incentive error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_INCENTIVE_ID" - The incentive ID is either invalid or not
	// supported for the given country.
	IncentiveError string `json:"incentiveError,omitempty"`
	// InternalError: An unexpected server-side error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INTERNAL_ERROR" - API encountered unexpected internal error.
	//   "ERROR_CODE_NOT_PUBLISHED" - The intended error code doesn't exist in
	// specified API version. It will be released in a future API version.
	//   "TRANSIENT_ERROR" - API encountered an unexpected transient error. The
	// user should retry their request in these cases.
	//   "DEADLINE_EXCEEDED" - The request took longer than a deadline.
	InternalError string `json:"internalError,omitempty"`
	// InvalidParameterError: The reasons for invalid parameter errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CURRENCY_CODE" - The specified currency code is invalid.
	InvalidParameterError string `json:"invalidParameterError,omitempty"`
	// InvoiceError: The reasons for the invoice error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "YEAR_MONTH_TOO_OLD" - Cannot request invoices issued before 2019-01-01.
	//   "NOT_INVOICED_CUSTOMER" - Cannot request invoices for customer who doesn't
	// receive invoices.
	//   "BILLING_SETUP_NOT_APPROVED" - Cannot request invoices for a non approved
	// billing setup.
	//   "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING" - Cannot request invoices for a
	// billing setup that is not on monthly invoicing.
	//   "NON_SERVING_CUSTOMER" - Cannot request invoices for a non serving
	// customer.
	InvoiceError string `json:"invoiceError,omitempty"`
	// KeywordPlanAdGroupError: The reason for keyword plan ad group error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_NAME" - The keyword plan ad group name is missing, empty, longer
	// than allowed limit or contains invalid chars.
	//   "DUPLICATE_NAME" - The keyword plan ad group name is duplicate to an
	// existing keyword plan AdGroup name or other keyword plan AdGroup name in the
	// request.
	KeywordPlanAdGroupError string `json:"keywordPlanAdGroupError,omitempty"`
	// KeywordPlanAdGroupKeywordError: The reason for keyword plan ad group keyword
	// error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_KEYWORD_MATCH_TYPE" - A keyword or negative keyword has invalid
	// match type.
	//   "DUPLICATE_KEYWORD" - A keyword or negative keyword with same text and
	// match type already exists.
	//   "KEYWORD_TEXT_TOO_LONG" - Keyword or negative keyword text exceeds the
	// allowed limit.
	//   "KEYWORD_HAS_INVALID_CHARS" - Keyword or negative keyword text has invalid
	// characters or symbols.
	//   "KEYWORD_HAS_TOO_MANY_WORDS" - Keyword or negative keyword text has too
	// many words.
	//   "INVALID_KEYWORD_TEXT" - Keyword or negative keyword has invalid text.
	//   "NEGATIVE_KEYWORD_HAS_CPC_BID" - Cpc Bid set for negative keyword.
	//   "NEW_BMM_KEYWORDS_NOT_ALLOWED" - New broad match modifier (BMM)
	// KpAdGroupKeywords are not allowed.
	KeywordPlanAdGroupKeywordError string `json:"keywordPlanAdGroupKeywordError,omitempty"`
	// KeywordPlanCampaignError: The reason for keyword plan campaign error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_NAME" - A keyword plan campaign name is missing, empty, longer
	// than allowed limit or contains invalid chars.
	//   "INVALID_LANGUAGES" - A keyword plan campaign contains one or more
	// untargetable languages.
	//   "INVALID_GEOS" - A keyword plan campaign contains one or more invalid geo
	// targets.
	//   "DUPLICATE_NAME" - The keyword plan campaign name is duplicate to an
	// existing keyword plan campaign name or other keyword plan campaign name in
	// the request.
	//   "MAX_GEOS_EXCEEDED" - The number of geo targets in the keyword plan
	// campaign exceeds limits.
	//   "MAX_LANGUAGES_EXCEEDED" - The number of languages in the keyword plan
	// campaign exceeds limits.
	KeywordPlanCampaignError string `json:"keywordPlanCampaignError,omitempty"`
	// KeywordPlanCampaignKeywordError: The reason for keyword plan campaign
	// keyword error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_KEYWORD_IS_POSITIVE" - Keyword plan campaign keyword is
	// positive.
	KeywordPlanCampaignKeywordError string `json:"keywordPlanCampaignKeywordError,omitempty"`
	// KeywordPlanError: The reason for keyword plan error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BID_MULTIPLIER_OUT_OF_RANGE" - The plan's bid multiplier value is outside
	// the valid range.
	//   "BID_TOO_HIGH" - The plan's bid value is too high.
	//   "BID_TOO_LOW" - The plan's bid value is too low.
	//   "BID_TOO_MANY_FRACTIONAL_DIGITS" - The plan's cpc bid is not a multiple of
	// the minimum billable unit.
	//   "DAILY_BUDGET_TOO_LOW" - The plan's daily budget value is too low.
	//   "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS" - The plan's daily budget is not
	// a multiple of the minimum billable unit.
	//   "INVALID_VALUE" - The input has an invalid value.
	//   "KEYWORD_PLAN_HAS_NO_KEYWORDS" - The plan has no keyword.
	//   "KEYWORD_PLAN_NOT_ENABLED" - The plan is not enabled and API cannot
	// provide mutation, forecast or stats.
	//   "KEYWORD_PLAN_NOT_FOUND" - The requested plan cannot be found for
	// providing forecast or stats.
	//   "MISSING_BID" - The plan is missing a cpc bid.
	//   "MISSING_FORECAST_PERIOD" - The plan is missing required forecast_period
	// field.
	//   "INVALID_FORECAST_DATE_RANGE" - The plan's forecast_period has invalid
	// forecast date range.
	//   "INVALID_NAME" - The plan's name is invalid.
	KeywordPlanError string `json:"keywordPlanError,omitempty"`
	// KeywordPlanIdeaError: The reason for keyword idea error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "URL_CRAWL_ERROR" - Error when crawling the input URL.
	//   "INVALID_VALUE" - The input has an invalid value.
	KeywordPlanIdeaError string `json:"keywordPlanIdeaError,omitempty"`
	// LabelError: The reason for the label error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_APPLY_INACTIVE_LABEL" - An inactive label cannot be applied.
	//   "CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION" - A label cannot be
	// applied to a disabled ad group criterion.
	//   "CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION" - A label cannot be
	// applied to a negative ad group criterion.
	//   "EXCEEDED_LABEL_LIMIT_PER_TYPE" - Cannot apply more than 50 labels per
	// resource.
	//   "INVALID_RESOURCE_FOR_MANAGER_LABEL" - Labels from a manager account
	// cannot be applied to campaign, ad group, ad group ad, or ad group criterion
	// resources.
	//   "DUPLICATE_NAME" - Label names must be unique.
	//   "INVALID_LABEL_NAME" - Label names cannot be empty.
	//   "CANNOT_ATTACH_LABEL_TO_DRAFT" - Labels cannot be applied to a draft.
	//   "CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER" - Labels not from a manager
	// account cannot be applied to the customer resource.
	LabelError string `json:"labelError,omitempty"`
	// LanguageCodeError: The reasons for the language code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "LANGUAGE_CODE_NOT_FOUND" - The input language code is not recognized.
	//   "INVALID_LANGUAGE_CODE" - The language code is not supported.
	LanguageCodeError string `json:"languageCodeError,omitempty"`
	// ListOperationError: An error with a list operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUIRED_FIELD_MISSING" - Field required in value is missing.
	//   "DUPLICATE_VALUES" - Duplicate or identical value is sent in multiple list
	// operations.
	ListOperationError string `json:"listOperationError,omitempty"`
	// ManagerLinkError: The reasons for the manager link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING" - The manager and client have
	// incompatible account types.
	//   "TOO_MANY_MANAGERS" - Client is already linked to too many managers.
	//   "TOO_MANY_INVITES" - Manager has too many pending invitations.
	//   "ALREADY_INVITED_BY_THIS_MANAGER" - Client is already invited by this
	// manager.
	//   "ALREADY_MANAGED_BY_THIS_MANAGER" - The client is already managed by this
	// manager.
	//   "ALREADY_MANAGED_IN_HIERARCHY" - Client is already managed in hierarchy.
	//   "DUPLICATE_CHILD_FOUND" - Manager and sub-manager to be linked have
	// duplicate client.
	//   "CLIENT_HAS_NO_ADMIN_USER" - Client has no active user that can access the
	// client account.
	//   "MAX_DEPTH_EXCEEDED" - Adding this link would exceed the maximum hierarchy
	// depth.
	//   "CYCLE_NOT_ALLOWED" - Adding this link will create a cycle.
	//   "TOO_MANY_ACCOUNTS" - Manager account has the maximum number of linked
	// clients.
	//   "TOO_MANY_ACCOUNTS_AT_MANAGER" - Parent manager account has the maximum
	// number of linked clients.
	//   "NON_OWNER_USER_CANNOT_MODIFY_LINK" - The account is not authorized owner.
	//   "SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS" - Your manager account is
	// suspended, and you are no longer allowed to link to clients.
	//   "CLIENT_OUTSIDE_TREE" - You are not allowed to move a client to a manager
	// that is not under your current hierarchy.
	//   "INVALID_STATUS_CHANGE" - The changed status for mutate link is invalid.
	//   "INVALID_CHANGE" - The change for mutate link is invalid.
	//   "CUSTOMER_CANNOT_MANAGE_SELF" - You are not allowed to link a manager
	// account to itself.
	//   "CREATING_ENABLED_LINK_NOT_ALLOWED" - The link was created with status
	// ACTIVE and not PENDING.
	ManagerLinkError string `json:"managerLinkError,omitempty"`
	// MediaBundleError: The reasons for the media bundle error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BAD_REQUEST" - There was a problem with the request.
	//   "DOUBLECLICK_BUNDLE_NOT_ALLOWED" - HTML5 ads using DoubleClick Studio
	// created ZIP files are not supported.
	//   "EXTERNAL_URL_NOT_ALLOWED" - Cannot reference URL external to the media
	// bundle.
	//   "FILE_TOO_LARGE" - Media bundle file is too large.
	//   "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED" - ZIP file from Google Web
	// Designer is not published.
	//   "INVALID_INPUT" - Input was invalid.
	//   "INVALID_MEDIA_BUNDLE" - There was a problem with the media bundle.
	//   "INVALID_MEDIA_BUNDLE_ENTRY" - There was a problem with one or more of the
	// media bundle entries.
	//   "INVALID_MIME_TYPE" - The media bundle contains a file with an unknown
	// mime type
	//   "INVALID_PATH" - The media bundle contain an invalid asset path.
	//   "INVALID_URL_REFERENCE" - HTML5 ad is trying to reference an asset not in
	// .ZIP file
	//   "MEDIA_DATA_TOO_LARGE" - Media data is too large.
	//   "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY" - The media bundle contains no
	// primary entry.
	//   "SERVER_ERROR" - There was an error on the server.
	//   "STORAGE_ERROR" - The image could not be stored.
	//   "SWIFFY_BUNDLE_NOT_ALLOWED" - Media bundle created with the Swiffy tool is
	// not allowed.
	//   "TOO_MANY_FILES" - The media bundle contains too many files.
	//   "UNEXPECTED_SIZE" - The media bundle is not of legal dimensions.
	//   "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT" - Google Web Designer not
	// created for "Google Ads" environment.
	//   "UNSUPPORTED_HTML5_FEATURE" - Unsupported HTML5 feature in HTML5 asset.
	//   "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT" - URL in HTML5 entry is not ssl
	// compliant.
	//   "CUSTOM_EXIT_NOT_ALLOWED" - Custom exits not allowed in HTML5 entry.
	MediaBundleError string `json:"mediaBundleError,omitempty"`
	// MediaFileError: The reasons for the media file error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_CREATE_STANDARD_ICON" - Cannot create a standard icon type.
	//   "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES" - May only select Standard
	// Icons alone.
	//   "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA" - Image contains both a media file
	// ID and data.
	//   "DUPLICATE_MEDIA" - A media file with given type and reference ID already
	// exists.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "RESOURCE_REFERENCED_IN_MULTIPLE_OPS" - A media file may only be modified
	// once per call.
	//   "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE" - Field is not supported for the
	// media sub type.
	//   "INVALID_MEDIA_FILE_ID" - The media file ID is invalid.
	//   "INVALID_MEDIA_SUB_TYPE" - The media subtype is invalid.
	//   "INVALID_MEDIA_FILE_TYPE" - The media file type is invalid.
	//   "INVALID_MIME_TYPE" - The mimetype is invalid.
	//   "INVALID_REFERENCE_ID" - The media reference ID is invalid.
	//   "INVALID_YOU_TUBE_ID" - The YouTube video ID is invalid.
	//   "MEDIA_FILE_FAILED_TRANSCODING" - Media file has failed transcoding
	//   "MEDIA_NOT_TRANSCODED" - Media file has not been transcoded.
	//   "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE" - The media type does not
	// match the actual media file's type.
	//   "NO_FIELDS_SPECIFIED" - None of the fields have been specified.
	//   "NULL_REFERENCE_ID_AND_MEDIA_ID" - One of reference ID or media file ID
	// must be specified.
	//   "TOO_LONG" - The string has too many characters.
	//   "UNSUPPORTED_TYPE" - The specified type is not supported.
	//   "YOU_TUBE_SERVICE_UNAVAILABLE" - YouTube is unavailable for requesting
	// video data.
	//   "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION" - The YouTube video has a non
	// positive duration.
	//   "YOU_TUBE_VIDEO_NOT_FOUND" - The YouTube video ID is syntactically valid
	// but the video was not found.
	MediaFileError string `json:"mediaFileError,omitempty"`
	// MediaUploadError: The reasons for media uploading errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FILE_TOO_BIG" - The uploaded file is too big.
	//   "UNPARSEABLE_IMAGE" - Image data is unparseable.
	//   "ANIMATED_IMAGE_NOT_ALLOWED" - Animated images are not allowed.
	//   "FORMAT_NOT_ALLOWED" - The image or media bundle format is not allowed.
	//   "EXTERNAL_URL_NOT_ALLOWED" - Cannot reference URL external to the media
	// bundle.
	//   "INVALID_URL_REFERENCE" - HTML5 ad is trying to reference an asset not in
	// .ZIP file.
	//   "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY" - The media bundle contains no
	// primary entry.
	//   "ANIMATED_VISUAL_EFFECT" - Animation has disallowed visual effects.
	//   "ANIMATION_TOO_LONG" - Animation longer than the allowed 30 second limit.
	//   "ASPECT_RATIO_NOT_ALLOWED" - The aspect ratio of the image does not match
	// the expected aspect ratios provided in the asset spec.
	//   "AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE" - Audio files are not allowed in
	// bundle.
	//   "CMYK_JPEG_NOT_ALLOWED" - CMYK jpegs are not supported.
	//   "FLASH_NOT_ALLOWED" - Flash movies are not allowed.
	//   "FRAME_RATE_TOO_HIGH" - The frame rate of the video is higher than the
	// allowed 5fps.
	//   "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED" - ZIP file from Google Web
	// Designer is not published.
	//   "IMAGE_CONSTRAINTS_VIOLATED" - Image constraints are violated, but more
	// details (like DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be
	// provided. This happens when asset spec contains more than one constraint and
	// criteria of different constraints are violated.
	//   "INVALID_MEDIA_BUNDLE" - Media bundle data is unrecognizable.
	//   "INVALID_MEDIA_BUNDLE_ENTRY" - There was a problem with one or more of the
	// media bundle entries.
	//   "INVALID_MIME_TYPE" - The asset has an invalid mime type.
	//   "INVALID_PATH" - The media bundle contains an invalid asset path.
	//   "LAYOUT_PROBLEM" - Image has layout problem.
	//   "MALFORMED_URL" - An asset had a URL reference that is malformed per RFC
	// 1738 convention.
	//   "MEDIA_BUNDLE_NOT_ALLOWED" - The uploaded media bundle format is not
	// allowed.
	//   "MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE" - The media bundle is not
	// compatible with the asset spec product type. (For example, Gmail, dynamic
	// remarketing, etc.)
	//   "MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS" - A bundle being uploaded
	// that is incompatible with multiple assets for different reasons.
	//   "TOO_MANY_FILES_IN_MEDIA_BUNDLE" - The media bundle contains too many
	// files.
	//   "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT" - Google Web Designer not
	// created for "Google Ads" environment.
	//   "UNSUPPORTED_HTML5_FEATURE" - Unsupported HTML5 feature in HTML5 asset.
	//   "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT" - URL in HTML5 entry is not SSL
	// compliant.
	//   "VIDEO_FILE_NAME_TOO_LONG" - Video file name is longer than the 50 allowed
	// characters.
	//   "VIDEO_MULTIPLE_FILES_WITH_SAME_NAME" - Multiple videos with same name in
	// a bundle.
	//   "VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE" - Videos are not allowed in media
	// bundle.
	//   "CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API" - This type of media cannot be
	// uploaded through the Google Ads API.
	//   "DIMENSIONS_NOT_ALLOWED" - The dimensions of the image are not allowed.
	MediaUploadError string `json:"mediaUploadError,omitempty"`
	// MerchantCenterError: Container for enum describing possible merchant center
	// errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MERCHANT_ID_CANNOT_BE_ACCESSED" - Merchant ID is either not found or not
	// linked to the Google Ads customer.
	//   "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX" - Customer not
	// allowlisted for Shopping in Performance Max Campaign.
	MerchantCenterError string `json:"merchantCenterError,omitempty"`
	// MultiplierError: The reasons for the multiplier error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MULTIPLIER_TOO_HIGH" - Multiplier value is too high
	//   "MULTIPLIER_TOO_LOW" - Multiplier value is too low
	//   "TOO_MANY_FRACTIONAL_DIGITS" - Too many fractional digits
	//   "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY" - A multiplier cannot be set
	// for this bidding strategy
	//   "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING" - A multiplier cannot be
	// set when there is no base bid (for example, content max cpc)
	//   "NO_MULTIPLIER_SPECIFIED" - A bid multiplier must be specified
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET" - Multiplier causes bid to
	// exceed daily budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET" - Multiplier causes bid
	// to exceed monthly budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET" - Multiplier causes bid to
	// exceed custom budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID" - Multiplier causes bid
	// to exceed maximum allowed bid
	//   "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER" - Multiplier causes bid to
	// become less than the minimum bid allowed
	//   "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH" - Multiplier type (cpc
	// versus cpm) needs to match campaign's bidding strategy
	MultiplierError string `json:"multiplierError,omitempty"`
	// MutateError: An error with a mutate
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NOT_FOUND" - Requested resource was not found.
	//   "ID_EXISTS_IN_MULTIPLE_MUTATES" - Cannot mutate the same resource twice in
	// one request.
	//   "INCONSISTENT_FIELD_VALUES" - The field's contents don't match another
	// field that represents the same data.
	//   "MUTATE_NOT_ALLOWED" - Mutates are not allowed for the requested resource.
	//   "RESOURCE_NOT_IN_GOOGLE_ADS" - The resource isn't in Google Ads. It
	// belongs to another ads system.
	//   "RESOURCE_ALREADY_EXISTS" - The resource being created already exists.
	//   "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY" - This resource cannot be used
	// with "validate_only".
	//   "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE" - This operation cannot be
	// used with "partial_failure".
	//   "RESOURCE_READ_ONLY" - Attempt to write to read-only fields.
	//   "EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED" - Mutates are generally
	// not allowed if the customer contains non-exempt campaigns without the EU
	// political advertising declaration.
	MutateError string `json:"mutateError,omitempty"`
	// NewResourceCreationError: The reasons for the new resource creation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_SET_ID_FOR_CREATE" - Do not set the id field while creating new
	// resources.
	//   "DUPLICATE_TEMP_IDS" - Creating more than one resource with the same temp
	// ID is not allowed.
	//   "TEMP_ID_RESOURCE_HAD_ERRORS" - Parent resource with specified temp ID
	// failed validation, so no validation will be done for this child resource.
	NewResourceCreationError string `json:"newResourceCreationError,omitempty"`
	// NotAllowlistedError: The reasons for the not allowlisted error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE" - Customer is not allowlisted
	// for accessing this feature.
	NotAllowlistedError string `json:"notAllowlistedError,omitempty"`
	// NotEmptyError: The reasons for the not empty error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EMPTY_LIST" - Empty list.
	NotEmptyError string `json:"notEmptyError,omitempty"`
	// NullError: The reasons for the null error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NULL_CONTENT" - Specified list/container must not contain any null
	// elements
	NullError string `json:"nullError,omitempty"`
	// OfflineUserDataJobError: The reasons for the offline user data job error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_LIST_ID" - The user list ID provided for the job is invalid.
	//   "INVALID_USER_LIST_TYPE" - Type of the user list is not applicable for the
	// job.
	//   "NOT_ON_ALLOWLIST_FOR_USER_ID" - Customer is not allowisted for using user
	// ID in upload data.
	//   "INCOMPATIBLE_UPLOAD_KEY_TYPE" - Upload data is not compatible with the
	// upload key type of the associated user list.
	//   "MISSING_USER_IDENTIFIER" - The user identifier is missing valid data.
	//   "INVALID_MOBILE_ID_FORMAT" - The mobile ID is malformed.
	//   "TOO_MANY_USER_IDENTIFIERS" - Maximum number of user identifiers allowed
	// per request is 100,000 and per operation is 20.
	//   "NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT" - Customer is not on the
	// allow-list for store sales direct data.
	//   "NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES" - Customer is not on the
	// allow-list for unified store sales data.
	//   "INVALID_PARTNER_ID" - The partner ID in store sales direct metadata is
	// invalid.
	//   "INVALID_ENCODING" - The data in user identifier should not be encoded.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	//   "INCOMPATIBLE_USER_IDENTIFIER" - Incompatible user identifier when using
	// third_party_user_id for store sales direct first party data or not using
	// third_party_user_id for store sales third party data.
	//   "FUTURE_TRANSACTION_TIME" - A transaction time in the future is not
	// allowed.
	//   "INVALID_CONVERSION_ACTION" - The conversion_action specified in
	// transaction_attributes is used to report conversions to a conversion action
	// configured in Google Ads. This error indicates there is no such conversion
	// action in the account.
	//   "MOBILE_ID_NOT_SUPPORTED" - Mobile ID is not supported for store sales
	// direct data.
	//   "INVALID_OPERATION_ORDER" - When a remove-all operation is provided, it
	// has to be the first operation of the operation list.
	//   "CONFLICTING_OPERATION" - Mixing creation and removal of offline data in
	// the same job is not allowed.
	//   "EXTERNAL_UPDATE_ID_ALREADY_EXISTS" - The external update ID already
	// exists.
	//   "JOB_ALREADY_STARTED" - Once the upload job is started, new operations
	// cannot be added.
	//   "REMOVE_NOT_SUPPORTED" - Remove operation is not allowed for store sales
	// direct updates.
	//   "REMOVE_ALL_NOT_SUPPORTED" - Remove-all is not supported for certain
	// offline user data job types.
	//   "INVALID_SHA256_FORMAT" - The SHA256 encoded value is malformed.
	//   "CUSTOM_KEY_DISABLED" - The custom key specified is not enabled for the
	// unified store sales upload.
	//   "CUSTOM_KEY_NOT_PREDEFINED" - The custom key specified is not predefined
	// through the Google Ads UI.
	//   "CUSTOM_KEY_NOT_SET" - The custom key specified is not set in the upload.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - The customer has not
	// accepted the customer data terms in the conversion settings page.
	//   "ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST" - User attributes
	// cannot be uploaded into a user list.
	//   "LIFETIME_VALUE_BUCKET_NOT_IN_RANGE" - Lifetime bucket value must be a
	// number from 0 to 10; 0 is only accepted for remove operations
	//   "INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES" - Identifiers not supported
	// for Customer Match attributes. User attributes can only be provided with
	// contact info (email, phone, address) user identifiers.
	//   "FUTURE_TIME_NOT_ALLOWED" - A time in the future is not allowed.
	//   "LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME" - Last purchase date time
	// cannot be less than acquisition date time.
	//   "CUSTOMER_IDENTIFIER_NOT_ALLOWED" - Only emails are accepted as user
	// identifiers for shopping loyalty match. {-- api.dev/not-precedent: The
	// identifier is not limited to ids, but also include other user info eg. phone
	// numbers.}
	//   "INVALID_ITEM_ID" - Provided item ID is invalid.
	//   "FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME" - First purchase
	// date time cannot be greater than the last purchase date time.
	//   "INVALID_LIFECYCLE_STAGE" - Provided lifecycle stage is invalid.
	//   "INVALID_EVENT_VALUE" - The event value of the Customer Match user
	// attribute is invalid.
	//   "EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED" - All the fields are not present
	// in the EventAttribute of the Customer Match.
	//   "OPERATION_LEVEL_CONSENT_PROVIDED" - Consent was provided at the operation
	// level for an OfflineUserDataJobType that expects it at the job level. The
	// provided operation-level consent will be ignored.
	OfflineUserDataJobError string `json:"offlineUserDataJobError,omitempty"`
	// OperationAccessDeniedError: The reasons for the operation access denied
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACTION_NOT_PERMITTED" - Unauthorized invocation of a service's method
	// (get, mutate, etc.)
	//   "CREATE_OPERATION_NOT_PERMITTED" - Unauthorized CREATE operation in
	// invoking a service's mutate method.
	//   "REMOVE_OPERATION_NOT_PERMITTED" - Unauthorized REMOVE operation in
	// invoking a service's mutate method.
	//   "UPDATE_OPERATION_NOT_PERMITTED" - Unauthorized UPDATE operation in
	// invoking a service's mutate method.
	//   "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT" - A mutate action is not allowed
	// on this resource, from this client.
	//   "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE" - This operation is not
	// permitted on this campaign type
	//   "CREATE_AS_REMOVED_NOT_PERMITTED" - A CREATE operation may not set status
	// to REMOVED.
	//   "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE" - This operation is not
	// allowed because the resource is removed.
	//   "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE" - This operation is not
	// permitted on this ad group type.
	//   "MUTATE_NOT_PERMITTED_FOR_CUSTOMER" - The mutate is not allowed for this
	// customer.
	OperationAccessDeniedError string `json:"operationAccessDeniedError,omitempty"`
	// OperatorError: The reasons for the operator error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATOR_NOT_SUPPORTED" - Operator not supported.
	OperatorError string `json:"operatorError,omitempty"`
	// PartialFailureError: The reasons for the mutate job error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "PARTIAL_FAILURE_MODE_REQUIRED" - The partial failure field was false in
	// the request. This method requires this field be set to true.
	PartialFailureError string `json:"partialFailureError,omitempty"`
	// PaymentsAccountError: The reasons for errors in payments accounts service
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER" - Manager customers are not supported
	// for payments account service.
	PaymentsAccountError string `json:"paymentsAccountError,omitempty"`
	// PolicyFindingError: The reasons for the policy finding error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "POLICY_FINDING" - The resource has been disapproved since the policy
	// summary includes policy topics of type PROHIBITED.
	//   "POLICY_TOPIC_NOT_FOUND" - The given policy topic does not exist.
	PolicyFindingError string `json:"policyFindingError,omitempty"`
	// PolicyValidationParameterError: The reasons for the policy validation
	// parameter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS" - Ignorable policy
	// topics are not supported for the ad type.
	//   "UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS" - Exempt policy
	// violation keys are not supported for the ad type.
	//   "CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS"
	// - Cannot set ignorable policy topics and exempt policy violation keys in the
	// same policy violation parameter.
	PolicyValidationParameterError string `json:"policyValidationParameterError,omitempty"`
	// PolicyViolationError: The reasons for the policy violation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "POLICY_ERROR" - A policy was violated. See PolicyViolationDetails for
	// more detail.
	PolicyViolationError string `json:"policyViolationError,omitempty"`
	// ProductLinkError: The reasons for the product link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_OPERATION" - The requested operation is invalid. For example, you
	// are not allowed to remove a link from a partner account.
	//   "CREATION_NOT_PERMITTED" - The creation request is not permitted.
	//   "INVITATION_EXISTS" - A link cannot be created because a pending link
	// already exists.
	//   "LINK_EXISTS" - A link cannot be created because an active link already
	// exists.
	ProductLinkError string `json:"productLinkError,omitempty"`
	// ProductLinkInvitationError: The reasons for the product link invitation
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in the version.
	//   "INVALID_STATUS" - The invitation status is invalid.
	//   "PERMISSION_DENIED" - The customer doesn't have the permission to perform
	// this action
	//   "NO_INVITATION_REQUIRED" - An invitation could not be created, since the
	// user already has admin access to the invited account. Use the
	// ProductLinkService to directly create an active link.
	//   "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION" - The customer is not
	// permitted to create the invitation.
	ProductLinkInvitationError string `json:"productLinkInvitationError,omitempty"`
	// QueryError: An error with the query
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "QUERY_ERROR" - Returned if all other query error reasons are not
	// applicable.
	//   "BAD_ENUM_CONSTANT" - A condition used in the query references an invalid
	// enum constant.
	//   "BAD_ESCAPE_SEQUENCE" - Query contains an invalid escape sequence.
	//   "BAD_FIELD_NAME" - Field name is invalid.
	//   "BAD_LIMIT_VALUE" - Limit value is invalid (for example, not a number)
	//   "BAD_NUMBER" - Encountered number can not be parsed.
	//   "BAD_OPERATOR" - Invalid operator encountered.
	//   "BAD_PARAMETER_NAME" - Parameter unknown or not supported.
	//   "BAD_PARAMETER_VALUE" - Parameter have invalid value.
	//   "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE" - Invalid resource type was specified
	// in the FROM clause.
	//   "BAD_SYMBOL" - Non-ASCII symbol encountered outside of strings.
	//   "BAD_VALUE" - Value is invalid.
	//   "DATE_RANGE_TOO_WIDE" - Date filters fail to restrict date to a range
	// smaller than 31 days. Applicable if the query is segmented by date.
	//   "DATE_RANGE_TOO_NARROW" - Filters on date/week/month/quarter have a start
	// date after end date.
	//   "EXPECTED_AND" - Expected AND between values with BETWEEN operator.
	//   "EXPECTED_BY" - Expecting ORDER BY to have BY.
	//   "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE" - There was no dimension field
	// selected.
	//   "EXPECTED_FILTERS_ON_DATE_RANGE" - Missing filters on date related fields.
	//   "EXPECTED_FROM" - Missing FROM clause.
	//   "EXPECTED_LIST" - The operator used in the conditions requires the value
	// to be a list.
	//   "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE" - Fields used in WHERE or
	// ORDER BY clauses are missing from the SELECT clause.
	//   "EXPECTED_SELECT" - SELECT is missing at the beginning of query.
	//   "EXPECTED_SINGLE_VALUE" - A list was passed as a value to a condition
	// whose operator expects a single value.
	//   "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR" - Missing one or both values with
	// BETWEEN operator.
	//   "INVALID_DATE_FORMAT" - Invalid date format. Expected 'YYYY-MM-DD'.
	//   "MISALIGNED_DATE_FOR_FILTER" - Misaligned date value for the filter. The
	// date should be the start of a week/month/quarter if the filtered field is
	// segments.week/segments.month/segments.quarter.
	//   "INVALID_STRING_VALUE" - Value passed was not a string when it should have
	// been. For example, it was a number or unquoted literal.
	//   "INVALID_VALUE_WITH_BETWEEN_OPERATOR" - A String value passed to the
	// BETWEEN operator does not parse as a date.
	//   "INVALID_VALUE_WITH_DURING_OPERATOR" - The value passed to the DURING
	// operator is not a Date range literal
	//   "INVALID_VALUE_WITH_LIKE_OPERATOR" - A value was passed to the LIKE
	// operator.
	//   "OPERATOR_FIELD_MISMATCH" - An operator was provided that is inapplicable
	// to the field being filtered.
	//   "PROHIBITED_EMPTY_LIST_IN_CONDITION" - A Condition was found with an empty
	// list.
	//   "PROHIBITED_ENUM_CONSTANT" - A condition used in the query references an
	// unsupported enum constant.
	//   "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE" - Fields that are not
	// allowed to be selected together were included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE" - A field that is not orderable was
	// included in the ORDER BY clause.
	//   "PROHIBITED_FIELD_IN_SELECT_CLAUSE" - A field that is not selectable was
	// included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_WHERE_CLAUSE" - A field that is not filterable was
	// included in the WHERE clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE" - Resource type specified in the
	// FROM clause is not supported by this service.
	//   "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE" - A field that comes from an
	// incompatible resource was included in the SELECT clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE" - A field that comes from an
	// incompatible resource was included in the WHERE clause.
	//   "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A metric incompatible with
	// the main resource or other selected segmenting resources was included in the
	// SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE" - A segment incompatible
	// with the main resource or other selected segmenting resources was included
	// in the SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A segment in
	// the SELECT clause is incompatible with a metric in the SELECT or WHERE
	// clause.
	//   "PROHIBITED_FIELD_OR_SEGMENT_WITH_METRIC" - A metric may not be selected
	// with one of the selected resource fields, or segmented by one of the
	// selected segment fields.
	//   "LIMIT_VALUE_TOO_LOW" - The value passed to the limit clause is too low.
	//   "PROHIBITED_NEWLINE_IN_STRING" - Query has a string containing a newline
	// character.
	//   "PROHIBITED_VALUE_COMBINATION_IN_LIST" - List contains values of different
	// types.
	//   "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR" - The values passed
	// to the BETWEEN operator are not of the same type.
	//   "STRING_NOT_TERMINATED" - Query contains unterminated string.
	//   "TOO_MANY_SEGMENTS" - Too many segments are specified in SELECT clause.
	//   "UNEXPECTED_END_OF_QUERY" - Query is incomplete and cannot be parsed.
	//   "UNEXPECTED_FROM_CLAUSE" - FROM clause cannot be specified in this query.
	//   "UNRECOGNIZED_FIELD" - Query contains one or more unrecognized fields.
	//   "UNEXPECTED_INPUT" - Query has an unexpected extra part.
	//   "REQUESTED_METRICS_FOR_MANAGER" - Metrics cannot be requested for a
	// manager account. To retrieve metrics, issue separate requests against each
	// client account under the manager account.
	//   "FILTER_HAS_TOO_MANY_VALUES" - The number of values (right-hand-side
	// operands) in a filter exceeds the limit.
	//   "REQUIRED_SEGMENT_FIELD_MISSING" - Required segment field is missing.
	QueryError string `json:"queryError,omitempty"`
	// QuotaError: An error with the amount of quota remaining.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_EXHAUSTED" - Too many requests.
	//   "ACCESS_PROHIBITED" - Access is prohibited.
	//   "RESOURCE_TEMPORARILY_EXHAUSTED" - Too many requests in a short amount of
	// time.
	//   "EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION" - Too many expensive
	// requests from query pattern over a short amount of time.
	//   "EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION" - Too many expensive
	// requests from query pattern over an extended duration of time.
	//   "PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED" - To activate ad serving
	// in a customer account, it has to be linked with a payment profile (also
	// known as a Billing Customer Number, or BCN), which is then billed for the
	// costs incurred by that customer account. This error will be thrown if too
	// many customer accounts are activated in a short period of time for the same
	// payment profile. Once this rate limit is exceeded, the customer should wait
	// for a week before trying again, or contact Google Ads customer support to
	// reset the rate limits. See
	// https://support.google.com/google-ads/answer/6372658 to learn more about
	// this limit.
	QuotaError string `json:"quotaError,omitempty"`
	// RangeError: The reasons for the range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_LOW" - Too low.
	//   "TOO_HIGH" - Too high.
	RangeError string `json:"rangeError,omitempty"`
	// ReachPlanError: The reasons for the reach plan error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_FORECASTABLE_MISSING_RATE" - Not forecastable due to missing rate
	// card data.
	//   "NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY" - Not forecastable due to not
	// enough inventory.
	//   "NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED" - Not forecastable due to account
	// not being enabled.
	ReachPlanError string `json:"reachPlanError,omitempty"`
	// RecommendationError: The reasons for error in applying a recommendation
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BUDGET_AMOUNT_TOO_SMALL" - The specified budget amount is too low for
	// example, lower than minimum currency unit or lower than ad group minimum
	// cost-per-click.
	//   "BUDGET_AMOUNT_TOO_LARGE" - The specified budget amount is too large.
	//   "INVALID_BUDGET_AMOUNT" - The specified budget amount is not a valid
	// amount, for example, not a multiple of minimum currency unit.
	//   "POLICY_ERROR" - The specified keyword or ad violates ad policy.
	//   "INVALID_BID_AMOUNT" - The specified bid amount is not valid, for example,
	// too many fractional digits, or negative amount.
	//   "ADGROUP_KEYWORD_LIMIT" - The number of keywords in ad group have reached
	// the maximum allowed.
	//   "RECOMMENDATION_ALREADY_APPLIED" - The recommendation requested to apply
	// has already been applied.
	//   "RECOMMENDATION_INVALIDATED" - The recommendation requested to apply has
	// been invalidated.
	//   "TOO_MANY_OPERATIONS" - The number of operations in a single request
	// exceeds the maximum allowed.
	//   "NO_OPERATIONS" - There are no operations in the request.
	//   "DIFFERENT_TYPES_NOT_SUPPORTED" - Operations with multiple recommendation
	// types are not supported when partial failure mode is not enabled.
	//   "DUPLICATE_RESOURCE_NAME" - Request contains multiple operations with the
	// same resource_name.
	//   "RECOMMENDATION_ALREADY_DISMISSED" - The recommendation requested to
	// dismiss has already been dismissed.
	//   "INVALID_APPLY_REQUEST" - The recommendation apply request was malformed
	// and invalid.
	//   "RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED" - The type of recommendation
	// requested to apply is not supported.
	//   "INVALID_MULTIPLIER" - The target multiplier specified is invalid.
	//   "ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED" - The passed in
	// advertising_channel_type is not supported.
	//   "RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED" - The passed in
	// recommendation_type is not supported.
	//   "RECOMMENDATION_TYPES_CANNOT_BE_EMPTY" - One or more recommendation_types
	// need to be passed into the generate recommendations request.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO" - Bidding info
	// is required for the CAMPAIGN_BUDGET recommendation type.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE" -
	// Bidding strategy type is required for the CAMPAIGN_BUDGET recommendation
	// type.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO" - Asset
	// group info is required for the campaign budget recommendation type.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL
	// " - Asset group info with final url is required for the CAMPAIGN_BUDGET
	// recommendation type.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNE
	// L" - Country codes are required for the CAMPAIGN_BUDGET recommendation type
	// for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL"
	//  - Country code is invalid for the CAMPAIGN_BUDGET recommendation type for
	// SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANN
	// EL" - Language codes are required for the CAMPAIGN_BUDGET recommendation
	// type for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOC
	// ATION_IDS_FOR_SEARCH_CHANNEL" - Either positive or negative location ids are
	// required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNE
	// L" - Ad group info is required for the CAMPAIGN_BUDGET recommendation type
	// for SEARCH channel.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL"
	// - Keywords are required for the CAMPAIGN_BUDGET recommendation type for
	// SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION" - Location is required
	// for the CAMPAIGN_BUDGET recommendation type for bidding strategy type
	// TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS"
	// - Target impression share micros are required for the CAMPAIGN_BUDGET
	// recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1
	// _AND_1000000" - Target impression share micros are required to be between 1
	// and 1000000 for the CAMPAIGN_BUDGET recommendation type for bidding strategy
	// type TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO" -
	// Target impression share info is required for the CAMPAIGN_BUDGET
	// recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.
	//   "MERCHANT_CENTER_ACCOUNT_ID_NOT_SUPPORTED_ADVERTISING_CHANNEL_TYPE" -
	// Merchant Center Account ID is only supported for advertising_channel_type
	// PERFORMANCE_MAX.
	RecommendationError string `json:"recommendationError,omitempty"`
	// RecommendationSubscriptionError: The reasons for the recommendation
	// subscription error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	RecommendationSubscriptionError string `json:"recommendationSubscriptionError,omitempty"`
	// RegionCodeError: The reasons for the region code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_REGION_CODE" - Invalid region code.
	RegionCodeError string `json:"regionCodeError,omitempty"`
	// RequestError: An error caused by the request
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NAME_MISSING" - Resource name is required for this request.
	//   "RESOURCE_NAME_MALFORMED" - Resource name provided is malformed.
	//   "BAD_RESOURCE_ID" - Resource name provided is malformed.
	//   "INVALID_CUSTOMER_ID" - Customer ID is invalid.
	//   "OPERATION_REQUIRED" - Mutate operation should have either create, update,
	// or remove specified.
	//   "RESOURCE_NOT_FOUND" - Requested resource not found.
	//   "INVALID_PAGE_TOKEN" - Next page token specified in user request is
	// invalid.
	//   "EXPIRED_PAGE_TOKEN" - Next page token specified in user request has
	// expired.
	//   "INVALID_PAGE_SIZE" - Page size specified in user request is invalid.
	//   "PAGE_SIZE_NOT_SUPPORTED" - Setting the page size is not supported, and
	// will be unavailable in a future version.
	//   "REQUIRED_FIELD_MISSING" - Required field is missing.
	//   "IMMUTABLE_FIELD" - The field cannot be modified because it's immutable.
	// It's also possible that the field can be modified using 'create' operation
	// but not 'update'.
	//   "TOO_MANY_MUTATE_OPERATIONS" - Received too many entries in request.
	//   "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT" - Request cannot be executed by a
	// manager account.
	//   "CANNOT_MODIFY_FOREIGN_FIELD" - Mutate request was attempting to modify a
	// readonly field. For instance, Budget fields can be requested for Ad Group,
	// but are read-only for adGroups:mutate.
	//   "INVALID_ENUM_VALUE" - Enum value is not permitted.
	//   "DEVELOPER_TOKEN_PARAMETER_MISSING" - The developer-token parameter is
	// required for all requests.
	//   "LOGIN_CUSTOMER_ID_PARAMETER_MISSING" - The login-customer-id parameter is
	// required for this request.
	//   "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN" - page_token is set in the validate
	// only request
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS" -
	// return_summary_row cannot be enabled if request did not select any metrics
	// field.
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS" -
	// return_summary_row should not be enabled for validate only requests.
	//   "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE" - return_summary_row parameter
	// value should be the same between requests with page_token field set and
	// their original request.
	//   "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED" - The total results count
	// cannot be returned if it was not requested in the original request.
	//   "RPC_DEADLINE_TOO_SHORT" - Deadline specified by the client was too short.
	//   "UNSUPPORTED_VERSION" - This API version has been sunset and is no longer
	// supported.
	//   "CLOUD_PROJECT_NOT_FOUND" - The Google Cloud project in the request was
	// not found.
	RequestError string `json:"requestError,omitempty"`
	// ResourceAccessDeniedError: The reasons for the resource access denied error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "WRITE_ACCESS_DENIED" - User did not have write access.
	ResourceAccessDeniedError string `json:"resourceAccessDeniedError,omitempty"`
	// ResourceCountLimitExceededError: The reasons for the resource count limit
	// exceeded error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACCOUNT_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources for the Google Ads account. The exact resource type and
	// limit being checked can be inferred from accountLimitType.
	//   "CAMPAIGN_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources in a Campaign. The exact resource type and limit being
	// checked can be inferred from accountLimitType, and the numeric id of the
	// Campaign involved is given by enclosingId.
	//   "ADGROUP_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources in an ad group. The exact resource type and limit being
	// checked can be inferred from accountLimitType, and the numeric id of the ad
	// group involved is given by enclosingId.
	//   "AD_GROUP_AD_LIMIT" - Indicates that this request would exceed the number
	// of allowed resources in an ad group ad. The exact resource type and limit
	// being checked can be inferred from accountLimitType, and the enclosingId
	// contains the ad group id followed by the ad id, separated by a single comma
	// (,).
	//   "AD_GROUP_CRITERION_LIMIT" - Indicates that this request would exceed the
	// number of allowed resources in an ad group criterion. The exact resource
	// type and limit being checked can be inferred from accountLimitType, and the
	// enclosingId contains the ad group id followed by the criterion id, separated
	// by a single comma (,).
	//   "SHARED_SET_LIMIT" - Indicates that this request would exceed the number
	// of allowed resources in this shared set. The exact resource type and limit
	// being checked can be inferred from accountLimitType, and the numeric id of
	// the shared set involved is given by enclosingId.
	//   "MATCHING_FUNCTION_LIMIT" - Exceeds a limit related to a matching
	// function.
	//   "RESPONSE_ROW_LIMIT_EXCEEDED" - The response for this request would exceed
	// the maximum number of rows that can be returned.
	//   "RESOURCE_LIMIT" - This request would exceed a limit on the number of
	// allowed resources. The details of which type of limit was exceeded will
	// eventually be returned in ErrorDetails.
	ResourceCountLimitExceededError string `json:"resourceCountLimitExceededError,omitempty"`
	// SearchTermInsightError: The reasons for the Search term insight error
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FILTERING_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot be
	// filtered by metrics when segmenting.
	//   "LIMIT_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot have a
	// LIMIT when segmenting.
	//   "MISSING_FIELD_IN_SELECT_CLAUSE" - A selected field requires another field
	// to be selected with it.
	//   "REQUIRES_FILTER_BY_SINGLE_RESOURCE" - A selected field/resource requires
	// filtering by a single resource.
	//   "SORTING_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot be
	// sorted when segmenting.
	//   "SUMMARY_ROW_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot have
	// a summary row when segmenting.
	SearchTermInsightError string `json:"searchTermInsightError,omitempty"`
	// SettingError: The reasons for the setting error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "SETTING_TYPE_IS_NOT_AVAILABLE" - The campaign setting is not available
	// for this Google Ads account.
	//   "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN" - The setting is not
	// compatible with the campaign.
	//   "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP" - The supplied
	// TargetingSetting contains an invalid CriterionTypeGroup. See
	// CriterionTypeGroup documentation for CriterionTypeGroups allowed in Campaign
	// or AdGroup TargetingSettings.
	//
	// "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_AL
	// L" - TargetingSetting must not explicitly set any of the Demographic
	// CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) to false (it's
	// okay to not set them at all, in which case the system will set them to true
	// automatically).
	//
	// "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERIO
	// N_TYPE_GROUP" - TargetingSetting cannot change any of the Demographic
	// CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) from true to
	// false.
	//   "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT" - At
	// least one feed id should be present.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME" - The supplied
	// DynamicSearchAdsSetting contains an invalid domain name.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME" - The supplied
	// DynamicSearchAdsSetting contains a subdomain name.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE" - The supplied
	// DynamicSearchAdsSetting contains an invalid language code.
	//   "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN" -
	// TargetingSettings in search campaigns should not have
	// CriterionTypeGroup.PLACEMENT set to targetAll.
	//   "SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN" - The setting value is not
	// compatible with the campaign type.
	//   "BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING" -
	// Switching from observation setting to targeting setting is not allowed for
	// Customer Match lists. See
	// https://support.google.com/google-ads/answer/6299717.
	SettingError string `json:"settingError,omitempty"`
	// ShareablePreviewError: The reasons for the shareable preview error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_MANY_ASSET_GROUPS_IN_REQUEST" - The maximum of 10 asset groups was
	// exceeded.
	//   "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER" - asset group does not
	// exist under this customer.
	ShareablePreviewError string `json:"shareablePreviewError,omitempty"`
	// SharedCriterionError: The reasons for the shared criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE" - The criterion is not
	// appropriate for the shared set type.
	SharedCriterionError string `json:"sharedCriterionError,omitempty"`
	// SharedSetError: The reasons for the shared set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE" - The customer cannot
	// create this type of shared set.
	//   "DUPLICATE_NAME" - A shared set with this name already exists.
	//   "SHARED_SET_REMOVED" - Removed shared sets cannot be mutated.
	//   "SHARED_SET_IN_USE" - The shared set cannot be removed because it is in
	// use.
	SharedSetError string `json:"sharedSetError,omitempty"`
	// ShoppingProductError: The reasons for error in querying shopping product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MISSING_CAMPAIGN_FILTER" - A filter on the `campaign` resource name is
	// missing.
	//   "MISSING_AD_GROUP_FILTER" - A filter on the `ad_group` resource name is
	// missing.
	//   "UNSUPPORTED_DATE_SEGMENTATION" - Date segmentation is not supported.
	ShoppingProductError string `json:"shoppingProductError,omitempty"`
	// SizeLimitError: The reasons for the size limit error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUEST_SIZE_LIMIT_EXCEEDED" - The number of entries in the request
	// exceeds the system limit, or the contents of the operations exceed
	// transaction limits due to their size or complexity. Try reducing the number
	// of entries per request.
	//   "RESPONSE_SIZE_LIMIT_EXCEEDED" - The number of entries in the response
	// exceeds the system limit.
	SizeLimitError string `json:"sizeLimitError,omitempty"`
	// SmartCampaignError: The reasons for the Smart campaign error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_BUSINESS_LOCATION_ID" - The business location id is invalid.
	//   "INVALID_CAMPAIGN" - The SmartCampaignSetting resource is only applicable
	// for campaigns with advertising channel type SMART.
	//   "BUSINESS_NAME_OR_BUSINESS_LOCATION_ID_MISSING" - The business name or
	// business location id is required.
	//   "REQUIRED_SUGGESTION_FIELD_MISSING" - A Smart campaign suggestion request
	// field is required.
	//   "GEO_TARGETS_REQUIRED" - A location list or proximity is required.
	//   "CANNOT_DETERMINE_SUGGESTION_LOCALE" - The locale could not be determined.
	//   "FINAL_URL_NOT_CRAWLABLE" - The final URL could not be crawled.
	SmartCampaignError string `json:"smartCampaignError,omitempty"`
	// StringFormatError: The reasons for the string format error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ILLEGAL_CHARS" - The input string value contains disallowed characters.
	//   "INVALID_FORMAT" - The input string value is invalid for the associated
	// field.
	StringFormatError string `json:"stringFormatError,omitempty"`
	// StringLengthError: The reasons for the string length error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EMPTY" - The specified field should have a least one non-whitespace
	// character in it.
	//   "TOO_SHORT" - Too short.
	//   "TOO_LONG" - Too long.
	StringLengthError string `json:"stringLengthError,omitempty"`
	// ThirdPartyAppAnalyticsLinkError: The reasons for the third party app
	// analytics link mutate error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_ANALYTICS_PROVIDER_ID" - The provided analytics provider ID is
	// invalid.
	//   "INVALID_MOBILE_APP_ID" - The provided mobile app ID is invalid.
	//   "MOBILE_APP_IS_NOT_ENABLED" - The mobile app corresponding to the provided
	// app ID is not active/enabled.
	//   "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK" - Regenerating
	// shareable link ID is only allowed on active links
	ThirdPartyAppAnalyticsLinkError string `json:"thirdPartyAppAnalyticsLinkError,omitempty"`
	// TimeZoneError: The reasons for the time zone error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_TIME_ZONE" - Time zone is not valid.
	TimeZoneError string `json:"timeZoneError,omitempty"`
	// UrlFieldError: An error with a URL field mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_TRACKING_URL_TEMPLATE" - The tracking url template is invalid.
	//   "INVALID_TAG_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// contains invalid tag.
	//   "MISSING_TRACKING_URL_TEMPLATE_TAG" - The tracking url template must
	// contain at least one tag (for example, {lpurl}), This applies only to
	// tracking url template associated with website ads or product ads.
	//   "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// must start with a valid protocol (or lpurl tag).
	//   "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// starts with an invalid protocol.
	//   "MALFORMED_TRACKING_URL_TEMPLATE" - The tracking url template contains
	// illegal characters.
	//   "MISSING_HOST_IN_TRACKING_URL_TEMPLATE" - The tracking url template must
	// contain a host name (or lpurl tag).
	//   "INVALID_TLD_IN_TRACKING_URL_TEMPLATE" - The tracking url template has an
	// invalid or missing top level domain extension.
	//   "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG" - The tracking url template
	// contains nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "INVALID_FINAL_URL" - The final url is invalid.
	//   "INVALID_TAG_IN_FINAL_URL" - The final url contains invalid tag.
	//   "REDUNDANT_NESTED_FINAL_URL_TAG" - The final url contains nested
	// occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL_IN_FINAL_URL" - The final url must start with a valid
	// protocol.
	//   "INVALID_PROTOCOL_IN_FINAL_URL" - The final url starts with an invalid
	// protocol.
	//   "MALFORMED_FINAL_URL" - The final url contains illegal characters.
	//   "MISSING_HOST_IN_FINAL_URL" - The final url must contain a host name.
	//   "INVALID_TLD_IN_FINAL_URL" - The tracking url template has an invalid or
	// missing top level domain extension.
	//   "INVALID_FINAL_MOBILE_URL" - The final mobile url is invalid.
	//   "INVALID_TAG_IN_FINAL_MOBILE_URL" - The final mobile url contains invalid
	// tag.
	//   "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG" - The final mobile url contains
	// nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL" - The final mobile url must start
	// with a valid protocol.
	//   "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL" - The final mobile url starts with
	// an invalid protocol.
	//   "MALFORMED_FINAL_MOBILE_URL" - The final mobile url contains illegal
	// characters.
	//   "MISSING_HOST_IN_FINAL_MOBILE_URL" - The final mobile url must contain a
	// host name.
	//   "INVALID_TLD_IN_FINAL_MOBILE_URL" - The tracking url template has an
	// invalid or missing top level domain extension.
	//   "INVALID_FINAL_APP_URL" - The final app url is invalid.
	//   "INVALID_TAG_IN_FINAL_APP_URL" - The final app url contains invalid tag.
	//   "REDUNDANT_NESTED_FINAL_APP_URL_TAG" - The final app url contains nested
	// occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MULTIPLE_APP_URLS_FOR_OSTYPE" - More than one app url found for the same
	// OS type.
	//   "INVALID_OSTYPE" - The OS type given for an app url is not valid.
	//   "INVALID_PROTOCOL_FOR_APP_URL" - The protocol given for an app url is not
	// valid. (For example, "android-app://")
	//   "INVALID_PACKAGE_ID_FOR_APP_URL" - The package id (app id) given for an
	// app url is not valid.
	//   "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT" - The number of url custom
	// parameters for an resource exceeds the maximum limit allowed.
	//   "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY" - An invalid character
	// appears in the parameter key.
	//   "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE" - An invalid character
	// appears in the parameter value.
	//   "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE" - The url custom parameter
	// value fails url tag validation.
	//   "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG" - The custom parameter
	// contains nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL" - The protocol (http:// or https://) is missing.
	//   "INVALID_PROTOCOL" - Unsupported protocol in URL. Only http and https are
	// supported.
	//   "INVALID_URL" - The url is invalid.
	//   "DESTINATION_URL_DEPRECATED" - Destination Url is deprecated.
	//   "INVALID_TAG_IN_URL" - The url contains invalid tag.
	//   "MISSING_URL_TAG" - The url must contain at least one tag (for example,
	// {lpurl}).
	//   "DUPLICATE_URL_ID" - Duplicate url id.
	//   "INVALID_URL_ID" - Invalid url id.
	//   "FINAL_URL_SUFFIX_MALFORMED" - The final url suffix cannot begin with '?'
	// or '&' characters and must be a valid query string.
	//   "INVALID_TAG_IN_FINAL_URL_SUFFIX" - The final url suffix cannot contain
	// {lpurl} related or {ignore} tags.
	//   "INVALID_TOP_LEVEL_DOMAIN" - The top level domain is invalid, for example,
	// not a public top level domain listed in publicsuffix.org.
	//   "MALFORMED_TOP_LEVEL_DOMAIN" - Malformed top level domain in URL.
	//   "MALFORMED_URL" - Malformed URL.
	//   "MISSING_HOST" - No host found in URL.
	//   "NULL_CUSTOM_PARAMETER_VALUE" - Custom parameter value cannot be null.
	//   "VALUE_TRACK_PARAMETER_NOT_SUPPORTED" - Track parameter is not supported.
	//   "UNSUPPORTED_APP_STORE" - The app store connected to the url is not
	// supported.
	UrlFieldError string `json:"urlFieldError,omitempty"`
	// UserDataError: The reasons for the user data error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED" - Customer is not allowed to
	// perform operations related to Customer Match.
	//   "TOO_MANY_USER_IDENTIFIERS" - Maximum number of user identifiers allowed
	// for each request is 100 and for each operation is 20.
	//   "USER_LIST_NOT_APPLICABLE" - Current user list is not applicable for the
	// given customer.
	UserDataError string `json:"userDataError,omitempty"`
	// UserListCustomerTypeError: The reasons for a user list customer type error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONFLICTING_CUSTOMER_TYPES" - Cannot add the conflicting customer types
	// to the same user list. Conflicting labels: 1. Purchasers - Converted Leads
	// 2. Purchasers - Qualified Leads 3. Purchasers - Cart Abandoners 4. Qualified
	// Leads - Converted Leads 5. Disengaged customers - Converted Leads 6.
	// Disengaged customers - Qualified Leads 7. Disengaged customers - Cart
	// Abandoners 8. Converted Leads - Loyalty Tier X Members (X = 1..7) 9.
	// Qualified Leads - Loyalty Tier X Members (X = 1..7) 10. Loyalty Tier X
	// Members - Loyalty Tier Y Members (X != Y)
	//   "NO_ACCESS_TO_USER_LIST" - The account does not have access to the user
	// list.
	//   "USERLIST_NOT_ELIGIBLE" - The given user list is not eligible for applying
	// customer types. The user list must belong to one of the following types:
	// CRM_BASED, RULE_BASED, ADVERTISER_DATA_MODEL_BASED, GCN.
	//   "CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT" - To edit the
	// user list customer type, conversion tracking must be enabled in your
	// account. If cross-tracking is enabled, your account must be a MCC manager
	// account to modify user list customer types. More info at
	// https://support.google.com/google-ads/answer/3030657
	//   "TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE" - Too many user lists for the
	// customer type.
	UserListCustomerTypeError string `json:"userListCustomerTypeError,omitempty"`
	// UserListError: The reasons for the user list error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED" - Creating and
	// updating external remarketing user lists is not supported.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of user list is required.
	//   "CONVERSION_TYPE_ID_REQUIRED" - Creating/updating user list conversion
	// types requires specifying the conversion type Id.
	//   "DUPLICATE_CONVERSION_TYPES" - Remarketing user list cannot have duplicate
	// conversion types.
	//   "INVALID_CONVERSION_TYPE" - Conversion type is invalid/unknown.
	//   "INVALID_DESCRIPTION" - User list description is empty or invalid.
	//   "INVALID_NAME" - User list name is empty or invalid.
	//   "INVALID_TYPE" - Type of the UserList does not match.
	//   "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND" - Embedded logical user
	// lists are not allowed.
	//   "INVALID_USER_LIST_LOGICAL_RULE_OPERAND" - User list rule operand is
	// invalid.
	//   "NAME_ALREADY_USED" - Name is already being used for another user list for
	// the account.
	//   "NEW_CONVERSION_TYPE_NAME_REQUIRED" - Name is required when creating a new
	// conversion type.
	//   "CONVERSION_TYPE_NAME_ALREADY_USED" - The given conversion type name has
	// been used.
	//   "OWNERSHIP_REQUIRED_FOR_SET" - Only an owner account may edit a user list.
	//   "USER_LIST_MUTATE_NOT_SUPPORTED" - Creating user list without setting type
	// in oneof user_list field, or creating/updating read-only user list types is
	// not allowed.
	//   "INVALID_RULE" - Rule is invalid.
	//   "INVALID_DATE_RANGE" - The specified date range is empty.
	//   "CAN_NOT_MUTATE_SENSITIVE_USERLIST" - A UserList which is privacy
	// sensitive or legal rejected cannot be mutated by external users.
	//   "MAX_NUM_RULEBASED_USERLISTS" - Maximum number of rulebased user lists a
	// customer can have.
	//   "CANNOT_MODIFY_BILLABLE_RECORD_COUNT" - BasicUserList's billable record
	// field cannot be modified once it is set.
	//   "APP_ID_NOT_SET" - crm_based_user_list.app_id field must be set when
	// upload_key_type is MOBILE_ADVERTISING_ID.
	//   "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST" - Name of the user list is
	// reserved for system generated lists and cannot be used.
	//   "ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA" - Advertiser needs
	// to be on the allow-list to use remarketing lists created from advertiser
	// uploaded data (for example, Customer Match lists).
	//   "RULE_TYPE_IS_NOT_SUPPORTED" - The provided rule_type is not supported for
	// the user list.
	//   "CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND" - Similar user
	// list cannot be used as a logical user list operand.
	//   "CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS" - Logical user
	// list should not have a mix of CRM based user list and other types of lists
	// in its rules.
	//   "APP_ID_NOT_ALLOWED" - crm_based_user_list.app_id field can only be set
	// when upload_key_type is MOBILE_ADVERTISING_ID.
	//   "CANNOT_MUTATE_SYSTEM_LIST" - Google system generated user lists cannot be
	// mutated.
	//   "MOBILE_APP_IS_SENSITIVE" - The mobile app associated with the remarketing
	// list is sensitive.
	//   "SEED_LIST_DOES_NOT_EXIST" - One or more given seed lists do not exist.
	//   "INVALID_SEED_LIST_ACCESS_REASON" - One or more given seed lists are not
	// accessible to the current user.
	//   "INVALID_SEED_LIST_TYPE" - One or more given seed lists have an
	// unsupported type.
	//   "INVALID_COUNTRY_CODES" - One or more invalid country codes are added to
	// Lookalike UserList.
	//   "PARTNER_AUDIENCE_SOURCE_NOT_SUPPORTED_FOR_USER_LIST_TYPE" - The partner
	// audience source is not supported for the user list type.
	//   "COMMERCE_PARTNER_NOT_ALLOWED" - The commerce partner is only supported
	// for COMMERCE_AUDIENCE.
	//   "PARTNER_AUDIENCE_INFO_NOT_SUPPORTED_FOR_USER_LIST_TYPE" - The partner
	// audience info is not supported for the user list type.
	//   "PARTNER_MANAGER_ACCOUNT_DISALLOWED" - Manager account is not allowed to
	// create this UserList.
	//   "PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA" - This UserList can
	// only be created by allowlisted partners.
	//   "ADVERTISER_TOS_NOT_ACCEPTED" - The advertiser must accept the Terms of
	// Service to create this UserList.
	//   "ADVERTISER_PARTNER_LINK_MISSING" - The advertiser must have an active
	// link to the partner to create this UserList.
	//   "ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA" - This UserList
	// can only be created for allowlisted advertisers.
	//   "ACCOUNT_SETTING_TYPE_NOT_ALLOWED" - This UserList is not allowed for this
	// account type.
	UserListError string `json:"userListError,omitempty"`
	// VideoCampaignError: An error with a Video Campaign mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MUTATE_REQUIRES_RESERVATION" - Cannot modify the video campaign without
	// reservation. See https://support.google.com/google-ads/answer/9547606.
	VideoCampaignError string `json:"videoCampaignError,omitempty"`
	// YoutubeVideoRegistrationError: The reasons for YouTube video registration
	// errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VIDEO_NOT_FOUND" - Video to be registered wasn't found.
	//   "VIDEO_NOT_ACCESSIBLE" - Video to be registered is not accessible (for
	// example, private).
	//   "VIDEO_NOT_ELIGIBLE" - Video to be registered is not eligible (for
	// example, mature content).
	YoutubeVideoRegistrationError string `json:"youtubeVideoRegistrationError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessInvitationError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessInvitationError") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorCode) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorDetails: Additional error details.
type GoogleAdsSearchads360V23Errors__ErrorDetails struct {
	// BudgetPerDayMinimumErrorDetails: Details for a budget below per-day minimum
	// error.
	BudgetPerDayMinimumErrorDetails *GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails `json:"budgetPerDayMinimumErrorDetails,omitempty"`
	// PolicyFindingDetails: Describes policy violation findings.
	PolicyFindingDetails *GoogleAdsSearchads360V23Errors__PolicyFindingDetails `json:"policyFindingDetails,omitempty"`
	// PolicyViolationDetails: Describes an ad policy violation.
	PolicyViolationDetails *GoogleAdsSearchads360V23Errors__PolicyViolationDetails `json:"policyViolationDetails,omitempty"`
	// QuotaErrorDetails: Details on the quota error, including the scope (account
	// or developer), the rate bucket name and the retry delay.
	QuotaErrorDetails *GoogleAdsSearchads360V23Errors__QuotaErrorDetails `json:"quotaErrorDetails,omitempty"`
	// ResourceCountDetails: Details for a resource count limit exceeded error.
	ResourceCountDetails *GoogleAdsSearchads360V23Errors__ResourceCountDetails `json:"resourceCountDetails,omitempty"`
	// UnpublishedErrorCode: The error code that should have been returned, but
	// wasn't. This is used when the error code is not published in the client
	// specified version.
	UnpublishedErrorCode string `json:"unpublishedErrorCode,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BudgetPerDayMinimumErrorDetails") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetPerDayMinimumErrorDetails")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorLocation: Describes the part of the
// request proto that caused the error.
type GoogleAdsSearchads360V23Errors__ErrorLocation struct {
	// FieldPathElements: A field path that indicates which field was invalid in
	// the request.
	FieldPathElements []*GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement `json:"fieldPathElements,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPathElements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPathElements") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__PolicyFindingDetails: Error returned as part
// of a mutate response. This error indicates one or more policy findings in
// the fields of a resource.
type GoogleAdsSearchads360V23Errors__PolicyFindingDetails struct {
	// PolicyTopicEntries: The list of policy topics for the resource. Contains the
	// PROHIBITED or FULLY_LIMITED policy topic entries that prevented the resource
	// from being saved (among any other entries the resource may also have).
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyTopicEntries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyTopicEntries") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__PolicyFindingDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__PolicyFindingDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__PolicyViolationDetails: Error returned as
// part of a mutate response. This error indicates single policy violation by
// some text in one of the fields.
type GoogleAdsSearchads360V23Errors__PolicyViolationDetails struct {
	// ExternalPolicyDescription: Human readable description of policy violation.
	ExternalPolicyDescription string `json:"externalPolicyDescription,omitempty"`
	// ExternalPolicyName: Human readable name of the policy.
	ExternalPolicyName string `json:"externalPolicyName,omitempty"`
	// IsExemptible: Whether user can file an exemption request for this violation.
	IsExemptible bool `json:"isExemptible,omitempty"`
	// Key: Unique identifier for this violation. If policy is exemptible, this key
	// may be used to request exemption.
	Key *GoogleAdsSearchads360V23Common__PolicyViolationKey `json:"key,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalPolicyDescription")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalPolicyDescription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__PolicyViolationDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__PolicyViolationDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__QuotaErrorDetails: Additional quota error
// details when there is QuotaError.
type GoogleAdsSearchads360V23Errors__QuotaErrorDetails struct {
	// RateName: The high level description of the quota bucket. Examples are "Get
	// requests for standard access" or "Requests per account".
	RateName string `json:"rateName,omitempty"`
	// RateScope: The rate scope of the quota limit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified enum
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCOUNT" - Per customer account quota
	//   "DEVELOPER" - Per project quota
	RateScope string `json:"rateScope,omitempty"`
	// RetryDelay: Backoff period that customers should wait before sending next
	// request.
	RetryDelay string `json:"retryDelay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RateName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RateName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__QuotaErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__QuotaErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ResourceCountDetails: Error details returned
// when an resource count limit was exceeded.
type GoogleAdsSearchads360V23Errors__ResourceCountDetails struct {
	// EnclosingId: The ID of the resource whose limit was exceeded. External
	// customer ID if the limit is for a customer.
	EnclosingId string `json:"enclosingId,omitempty"`
	// EnclosingResource: The name of the resource ( etc.) whose limit was
	// exceeded.
	EnclosingResource string `json:"enclosingResource,omitempty"`
	// ExistingCount: The count of existing entities.
	ExistingCount int64 `json:"existingCount,omitempty"`
	// Limit: The limit which was exceeded.
	Limit int64 `json:"limit,omitempty"`
	// LimitType: The resource limit type which was exceeded.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// operation unknown in this version.
	//   "CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED campaigns per
	// customer.
	//   "BASE_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED base
	// campaigns per customer.
	//   "EXPERIMENT_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED
	// experiment campaigns per customer.
	//   "HOTEL_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED Hotel
	// campaigns per customer.
	//   "SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED
	// Smart Shopping campaigns per customer.
	//   "AD_GROUPS_PER_CAMPAIGN" - Number of ENABLED ad groups per campaign.
	//   "AD_GROUPS_PER_SHOPPING_CAMPAIGN" - Number of ENABLED ad groups per
	// Shopping campaign.
	//   "AD_GROUPS_PER_HOTEL_CAMPAIGN" - Number of ENABLED ad groups per Hotel
	// campaign.
	//   "REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN" - Number of ENABLED reporting ad
	// groups per local campaign.
	//   "REPORTING_AD_GROUPS_PER_APP_CAMPAIGN" - Number of ENABLED reporting ad
	// groups per App campaign. It includes app campaign and app campaign for
	// engagement.
	//   "MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN" - Number of ENABLED managed ad
	// groups per smart campaign.
	//   "AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ENABLED ad group criteria per
	// customer. An ad group criterion is considered as ENABLED if: 1. it's not
	// REMOVED 2. its ad group is not REMOVED 3. its campaign is not REMOVED.
	//   "BASE_AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ad group criteria across
	// all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ad group criteria
	// across all experiment campaigns for a customer.
	//   "AD_GROUP_CRITERIA_PER_CAMPAIGN" - Number of ENABLED ad group criteria per
	// campaign. An ad group criterion is considered as ENABLED if: 1. it's not
	// REMOVED 2. its ad group is not REMOVED.
	//   "CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign criteria per
	// customer.
	//   "BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign
	// criteria across all base campaigns for a customer.
	//   "EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign
	// criteria across all experiment campaigns for a customer.
	//   "WEBPAGE_CRITERIA_PER_CUSTOMER" - Number of ENABLED webpage criteria per
	// customer, including campaign level and ad group level.
	//   "BASE_WEBPAGE_CRITERIA_PER_CUSTOMER" - Number of ENABLED webpage criteria
	// across all base campaigns for a customer.
	//   "EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER" - Meximum number of ENABLED
	// webpage criteria across all experiment campaigns for a customer.
	//   "COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP" - Number of combined audience
	// criteria per ad group.
	//   "CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER" - Limit for placement
	// criterion type group in customer negative criterion.
	//   "CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER" - Limit for
	// YouTube TV channels in customer negative criterion.
	//   "CRITERIA_PER_AD_GROUP" - Number of ENABLED criteria per ad group.
	//   "LISTING_GROUPS_PER_AD_GROUP" - Number of listing group criteria per ad
	// group.
	//   "EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER" - Number of ENABLED explicitly
	// shared budgets per customer.
	//   "IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER" - Number of ENABLED implicitly
	// shared budgets per customer.
	//   "COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN" - Number of combined audience
	// criteria per campaign.
	//   "NEGATIVE_KEYWORDS_PER_CAMPAIGN" - Number of negative keywords per
	// campaign.
	//   "NEGATIVE_PLACEMENTS_PER_CAMPAIGN" - Number of excluded campaign criteria
	// in placement dimension, for example, placement, mobile application, YouTube
	// channel, etc. The API criterion type is NOT limited to placement only, and
	// this does not include exclusions at the ad group or other levels.
	//   "GEO_TARGETS_PER_CAMPAIGN" - Number of geo targets per campaign.
	//   "NEGATIVE_IP_BLOCKS_PER_CAMPAIGN" - Number of negative IP blocks per
	// campaign.
	//   "PROXIMITIES_PER_CAMPAIGN" - Number of proximity targets per campaign.
	//   "LISTING_SCOPES_PER_SHOPPING_CAMPAIGN" - Number of listing scopes per
	// Shopping campaign.
	//   "LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN" - Number of listing scopes per
	// non-Shopping campaign.
	//   "NEGATIVE_KEYWORDS_PER_SHARED_SET" - Number of criteria per negative
	// keyword shared set.
	//   "NEGATIVE_PLACEMENTS_PER_SHARED_SET" - Number of criteria per negative
	// placement shared set.
	//   "SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT" - Default number of shared
	// sets allowed per type per customer.
	//   "SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER" - Number of
	// shared sets of negative placement list type for a manager customer.
	//   "HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP" - Number of
	// hotel_advance_booking_window bid modifiers per ad group.
	//   "BIDDING_STRATEGIES_PER_CUSTOMER" - Number of ENABLED shared bidding
	// strategies per customer.
	//   "BASIC_USER_LISTS_PER_CUSTOMER" - Number of open basic user lists per
	// customer.
	//   "LOGICAL_USER_LISTS_PER_CUSTOMER" - Number of open logical user lists per
	// customer.
	//   "RULE_BASED_USER_LISTS_PER_CUSTOMER" - Number of open rule based user
	// lists per customer.
	//   "BASE_AD_GROUP_ADS_PER_CUSTOMER" - Number of ENABLED and PAUSED ad group
	// ads across all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER" - Number of ENABLED and PAUSED ad
	// group ads across all experiment campaigns for a customer.
	//   "AD_GROUP_ADS_PER_CAMPAIGN" - Number of ENABLED and PAUSED ad group ads
	// per campaign.
	//   "TEXT_AND_OTHER_ADS_PER_AD_GROUP" - Number of ENABLED ads per ad group
	// that do not fall in to other buckets. Includes text and many other types.
	//   "IMAGE_ADS_PER_AD_GROUP" - Number of ENABLED image ads per ad group.
	//   "SHOPPING_SMART_ADS_PER_AD_GROUP" - Number of ENABLED shopping smart ads
	// per ad group.
	//   "RESPONSIVE_SEARCH_ADS_PER_AD_GROUP" - Number of ENABLED responsive search
	// ads per ad group.
	//   "APP_ADS_PER_AD_GROUP" - Number of ENABLED app ads per ad group.
	//   "APP_ENGAGEMENT_ADS_PER_AD_GROUP" - Number of ENABLED app engagement ads
	// per ad group.
	//   "LOCAL_ADS_PER_AD_GROUP" - Number of ENABLED local ads per ad group.
	//   "VIDEO_ADS_PER_AD_GROUP" - Number of ENABLED video ads per ad group.
	//   "LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED lead form
	// CampaignAssets per campaign.
	//   "PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED promotion
	// CustomerAssets per customer.
	//   "PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED promotion
	// CampaignAssets per campaign.
	//   "PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED promotion
	// AdGroupAssets per ad group.
	//   "CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED callout
	// CustomerAssets per customer.
	//   "CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED callout
	// CampaignAssets per campaign.
	//   "CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED callout
	// AdGroupAssets per ad group.
	//   "SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED sitelink
	// CustomerAssets per customer.
	//   "SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED sitelink
	// CampaignAssets per campaign.
	//   "SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED sitelink
	// AdGroupAssets per ad group.
	//   "STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED
	// structured snippet CustomerAssets per customer.
	//   "STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED
	// structured snippet CampaignAssets per campaign.
	//   "STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED
	// structured snippet AdGroupAssets per ad group.
	//   "MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED mobile app
	// CustomerAssets per customer.
	//   "MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED mobile app
	// CampaignAssets per campaign.
	//   "MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED mobile app
	// AdGroupAssets per ad group.
	//   "HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED hotel
	// callout CustomerAssets per customer.
	//   "HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED hotel
	// callout CampaignAssets per campaign.
	//   "HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED hotel
	// callout AdGroupAssets per ad group.
	//   "CALL_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED call
	// CustomerAssets per customer.
	//   "CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED call
	// CampaignAssets per campaign.
	//   "CALL_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED call AdGroupAssets
	// per ad group.
	//   "PRICE_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED price
	// CustomerAssets per customer.
	//   "PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED price
	// CampaignAssets per campaign.
	//   "PRICE_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED price
	// AdGroupAssets per ad group.
	//   "AD_IMAGE_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED ad image
	// CampaignAssets per campaign.
	//   "AD_IMAGE_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED ad image
	// AdGroupAssets per ad group.
	//   "PAGE_FEED_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED page feed asset
	// sets per customer.
	//   "DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED
	// dynamic education feed asset sets per customer.
	//   "ASSETS_PER_PAGE_FEED_ASSET_SET" - Number of ENABLED assets per page feed
	// asset set.
	//   "ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET" - Number of ENABLED assets
	// per dynamic education asset set.
	//   "DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// real estate asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET" - Number of ENABLED assets per
	// dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// custom asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET" - Number of ENABLED assets per
	// dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED
	// dynamic hotels and rentals asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET" - Number of ENABLED
	// assets per dynamic hotels and rentals asset set.
	//   "DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic local
	// asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET" - Number of ENABLED assets per
	// dynamic local asset set.
	//   "DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// flights asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET" - Number of ENABLED assets per
	// dynamic flights asset set.
	//   "DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// travel asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET" - Number of ENABLED assets per
	// dynamic travel asset set.
	//   "DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic jobs
	// asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_JOBS_ASSET_SET" - Number of ENABLED assets per dynamic
	// jobs asset set.
	//   "BUSINESS_NAME_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED business
	// name CampaignAssets per campaign.
	//   "BUSINESS_LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED business
	// logo CampaignAssets per campaign.
	//   "VERSIONS_PER_AD" - Number of versions per ad.
	//   "USER_FEEDS_PER_CUSTOMER" - Number of ENABLED user feeds per customer.
	//   "SYSTEM_FEEDS_PER_CUSTOMER" - Number of ENABLED system feeds per customer.
	//   "FEED_ATTRIBUTES_PER_FEED" - Number of feed attributes per feed.
	//   "FEED_ITEMS_PER_CUSTOMER" - Number of ENABLED feed items per customer.
	//   "CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign feeds per
	// customer.
	//   "BASE_CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign feeds
	// across all base campaigns for a customer.
	//   "EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign
	// feeds across all experiment campaigns for a customer.
	//   "AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group feeds per
	// customer.
	//   "BASE_AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group feeds
	// across all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group
	// feeds across all experiment campaigns for a customer.
	//   "AD_GROUP_FEEDS_PER_CAMPAIGN" - Number of ENABLED ad group feeds per
	// campaign.
	//   "FEED_ITEM_SETS_PER_CUSTOMER" - Number of ENABLED feed items per customer.
	//   "FEED_ITEMS_PER_FEED_ITEM_SET" - Number of feed items per feed item set.
	//   "CAMPAIGN_EXPERIMENTS_PER_CUSTOMER" - Number of ENABLED campaign
	// experiments per customer.
	//   "EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT" - Number of video experiment arms
	// per experiment.
	//   "OWNED_LABELS_PER_CUSTOMER" - Number of owned labels per customer.
	//   "LABELS_PER_CAMPAIGN" - Number of applied labels per campaign.
	//   "LABELS_PER_AD_GROUP" - Number of applied labels per ad group.
	//   "LABELS_PER_AD_GROUP_AD" - Number of applied labels per ad group ad.
	//   "LABELS_PER_AD_GROUP_CRITERION" - Number of applied labels per ad group
	// criterion.
	//   "TARGET_CUSTOMERS_PER_LABEL" - Number of customers with a single label
	// applied.
	//   "KEYWORD_PLANS_PER_USER_PER_CUSTOMER" - Number of ENABLED keyword plans
	// per user per customer. The limit is applied per pair because by default a
	// plan is private to a user of a customer. Each user of a customer has their
	// own independent limit.
	//   "KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN" - Number of keyword plan
	// ad group keywords per keyword plan.
	//   "KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN" - Number of keyword plan ad
	// groups per keyword plan.
	//   "KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN" - Number of keyword plan
	// negative keywords (both campaign and ad group) per keyword plan.
	//   "KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN" - Number of keyword plan
	// campaigns per keyword plan.
	//   "CONVERSION_ACTIONS_PER_CUSTOMER" - Number of ENABLED conversion actions
	// per customer.
	//   "BATCH_JOB_OPERATIONS_PER_JOB" - Number of operations in a single batch
	// job.
	//   "BATCH_JOBS_PER_CUSTOMER" - Number of PENDING or ENABLED batch jobs per
	// customer.
	//   "HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP" - Number of hotel
	// check-in date range bid modifiers per ad agroup.
	//   "SHARED_SETS_PER_ACCOUNT_FOR_ACCOUNT_LEVEL_NEGATIVE_KEYWORDS" - Number of
	// shared sets of type ACCOUNT_LEVEL_NEGATIVE_KEYWORDS per account.
	//   "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS_PER_SHARED_SET" - Number of keywords per
	// ACCOUNT_LEVEL_NEGATIVE_KEYWORDS shared set.
	//   "ENABLED_ASSET_PER_HOTEL_PROPERTY_ASSET_SET" - Maximum number of asset per
	// hotel property asset set.
	//   "ENABLED_HOTEL_PROPERTY_ASSET_LINKS_PER_ASSET_GROUP" - Maximum number of
	// enabled hotel property assets per asset group.
	//   "BRANDS_PER_SHARED_SET" - Number of criteria per brand shared set.
	//   "ENABLED_BRAND_LIST_CRITERIA_PER_CAMPAIGN" - Number of active brand list
	// criteria per campaign.
	//   "SHARED_SETS_PER_ACCOUNT_FOR_BRAND" - Maximum number of shared sets of
	// brand type for an account.
	//   "LOOKALIKE_USER_LISTS_PER_CUSTOMER" - Maximum number of lookalike lists
	// per customer.
	//   "LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Total number of enabled IMAGE
	// CampaignAssets with LOGO and LANDSCAPE_LOGO field types per campaign.
	//   "BUSINESS_MESSAGE_ASSET_LINKS_PER_CUSTOMER" - Maximum number of active
	// business message asset links at customer level.
	//   "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_CAMPAIGN" - Maximum number of
	// active WhatsApp business message asset links at campaign level.
	//   "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_AD_GROUP" - Maximum number of
	// active WhatsApp business message asset links at ad group level.
	//   "BRAND_LIST_CRITERIA_PER_AD_GROUP" - Number of ENABLED brand list criteria
	// per ad group.
	LimitType string `json:"limitType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnclosingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnclosingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ResourceCountDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ResourceCountDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__SearchAds360Error: Search Ads 360-specific
// error.
type GoogleAdsSearchads360V23Errors__SearchAds360Error struct {
	// Details: Additional error details, which are returned by certain error
	// codes. Most error codes do not include details.
	Details *GoogleAdsSearchads360V23Errors__ErrorDetails `json:"details,omitempty"`
	// ErrorCode: An enum value that indicates which error occurred.
	ErrorCode *GoogleAdsSearchads360V23Errors__ErrorCode `json:"errorCode,omitempty"`
	// Location: Describes the part of the request proto that caused the error.
	Location *GoogleAdsSearchads360V23Errors__ErrorLocation `json:"location,omitempty"`
	// Message: A human-readable description of the error.
	Message string `json:"message,omitempty"`
	// Trigger: The value that triggered the error.
	Trigger *GoogleAdsSearchads360V23Common__Value `json:"trigger,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__SearchAds360Error) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__SearchAds360Error
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__SearchAds360Failure: Describes how a Search
// Ads 360 API call failed. It's returned inside google.rpc.Status.details when
// a call fails.
type GoogleAdsSearchads360V23Errors__SearchAds360Failure struct {
	// Errors: The list of errors that occurred.
	Errors []*GoogleAdsSearchads360V23Errors__SearchAds360Error `json:"errors,omitempty"`
	// RequestId: The unique ID of the request that is used for debugging purposes.
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__SearchAds360Failure) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__SearchAds360Failure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata: Additional
// information about the batch job. This message is also used as metadata
// returned in batch job Long Running Operations.
type GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata struct {
	// CompletionDateTime: Output only. The time when this batch job was completed.
	// Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00"
	CompletionDateTime string `json:"completionDateTime,omitempty"`
	// CreationDateTime: Output only. The time when this batch job was created.
	// Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// EstimatedCompletionRatio: Output only. The fraction (between 0.0 and 1.0) of
	// mutates that have been processed. This is empty if the job hasn't started
	// running yet.
	EstimatedCompletionRatio float64 `json:"estimatedCompletionRatio,omitempty"`
	// ExecutedOperationCount: Output only. The number of mutate operations
	// executed by the batch job. Present only if the job has started running.
	ExecutedOperationCount int64 `json:"executedOperationCount,omitempty,string"`
	// ExecutionLimitSeconds: Immutable. The approximate upper bound for how long a
	// batch job can be executed, in seconds. If the job runs more than the given
	// upper bound, the job will be canceled.
	ExecutionLimitSeconds int64 `json:"executionLimitSeconds,omitempty"`
	// OperationCount: Output only. The number of mutate operations in the batch
	// job.
	OperationCount int64 `json:"operationCount,omitempty,string"`
	// StartDateTime: Output only. The time when this batch job started running.
	// Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30"
	StartDateTime string `json:"startDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletionDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletionDateTime") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata
	var s1 struct {
		EstimatedCompletionRatio gensupport.JSONFloat64 `json:"estimatedCompletionRatio"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.EstimatedCompletionRatio = float64(s1.EstimatedCompletionRatio)
	return nil
}

// GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata: Metadata of
// offline user data job.
type GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata struct {
	// MatchRateRange: Output only. Match rate of the Customer Match user list
	// upload. Describes the estimated match rate when the status of the job is
	// "RUNNING" and final match rate when the final match rate is available after
	// the status of the job is "SUCCESS/FAILED".
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Default value for match rate range.
	//   "MATCH_RANGE_LESS_THAN_20" - Match rate range for offline data upload
	// entity is between 0% and 19%.
	//   "MATCH_RANGE_20_TO_30" - Match rate range for offline data upload entity
	// is between 20% and 30%.
	//   "MATCH_RANGE_31_TO_40" - Match rate range for offline data upload entity
	// is between 31% and 40%.
	//   "MATCH_RANGE_41_TO_50" - Match rate range for offline data upload entity
	// is between 41% and 50%.
	//   "MATCH_RANGE_51_TO_60" - Match rate range for offline data upload entity
	// is between 51% and 60%.
	//   "MATCH_RANGE_61_TO_70" - Match rate range for offline data upload entity
	// is between 61% and 70%.
	//   "MATCH_RANGE_71_TO_80" - Match rate range for offline data upload entity
	// is between 71% and 80%.
	//   "MATCH_RANGE_81_TO_90" - Match rate range for offline data upload entity
	// is between 81% and 90%.
	//   "MATCH_RANGE_91_TO_100" - Match rate range for offline data upload entity
	// is more than or equal to 91%.
	MatchRateRange string `json:"matchRateRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchRateRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchRateRange") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PromoteExperimentMetadata: The metadata of
// the promoted experiment.
type GoogleAdsSearchads360V23Services__PromoteExperimentMetadata struct {
	// Experiment: Required. The promoted experiment.
	Experiment string `json:"experiment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Experiment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Experiment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PromoteExperimentMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PromoteExperimentMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata: The metadata
// of the scheduled experiment.
type GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata struct {
	// Experiment: Required. The scheduled experiment.
	Experiment string `json:"experiment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Experiment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Experiment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CustomersListAccessibleCustomersCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListAccessibleCustomers: Returns resource names of customers directly
// accessible by the user authenticating the call. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
func (r *CustomersService) ListAccessibleCustomers() *CustomersListAccessibleCustomersCall {
	c := &CustomersListAccessibleCustomersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersListAccessibleCustomersCall) Fields(s ...googleapi.Field) *CustomersListAccessibleCustomersCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersListAccessibleCustomersCall) IfNoneMatch(entityTag string) *CustomersListAccessibleCustomersCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersListAccessibleCustomersCall) Context(ctx context.Context) *CustomersListAccessibleCustomersCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersListAccessibleCustomersCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersListAccessibleCustomersCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers:listAccessibleCustomers")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.listAccessibleCustomers", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.listAccessibleCustomers" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse.ServerRespo
// nse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *CustomersListAccessibleCustomersCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.listAccessibleCustomers", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomColumnsGetCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Returns the requested custom column in full detail.
//
// - resourceName: The resource name of the custom column to fetch.
func (r *CustomersCustomColumnsService) Get(resourceName string) *CustomersCustomColumnsGetCall {
	c := &CustomersCustomColumnsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomColumnsGetCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersCustomColumnsGetCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomColumnsGetCall) Context(ctx context.Context) *CustomersCustomColumnsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomColumnsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomColumnsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/{+resourceName}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customColumns.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Resources__CustomColumn.ServerResponse.Header or (if
// a response was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *CustomersCustomColumnsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Resources__CustomColumn, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Resources__CustomColumn{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomColumnsListCall struct {
	s            *Service
	customerId   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns all the custom columns associated with the customer in full
// detail.
//
//   - customerId: The ID of the customer to apply the CustomColumn list
//     operation to.
func (r *CustomersCustomColumnsService) List(customerId string) *CustomersCustomColumnsListCall {
	c := &CustomersCustomColumnsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomColumnsListCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersCustomColumnsListCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomColumnsListCall) Context(ctx context.Context) *CustomersCustomColumnsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomColumnsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomColumnsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers/{+customerId}/customColumns")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customColumns.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Services__ListCustomColumnsResponse.ServerResponse.He
// ader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *CustomersCustomColumnsListCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__ListCustomColumnsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Services__ListCustomColumnsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSearchAds360SearchCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v0services__searchsearchads360request *GoogleAdsSearchads360V0Services__SearchSearchAds360Request
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Search: Returns all rows that match the search query. List of thrown errors:
// AuthenticationError () [AuthorizationError]() ChangeEventError ()
// [ChangeStatusError]() ClickViewError () [HeaderError]() InternalError ()
// [QueryError]() QuotaError () [RequestError]()
//
// - customerId: The ID of the customer being queried.
func (r *CustomersSearchAds360Service) Search(customerId string, googleadssearchads360v0services__searchsearchads360request *GoogleAdsSearchads360V0Services__SearchSearchAds360Request) *CustomersSearchAds360SearchCall {
	c := &CustomersSearchAds360SearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v0services__searchsearchads360request = googleadssearchads360v0services__searchsearchads360request
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSearchAds360SearchCall) Fields(s ...googleapi.Field) *CustomersSearchAds360SearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSearchAds360SearchCall) Context(ctx context.Context) *CustomersSearchAds360SearchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSearchAds360SearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSearchAds360SearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v0services__searchsearchads360request)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/customers/{+customerId}/searchAds360:search")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.searchAds360.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Services__SearchSearchAds360Response.ServerResponse.H
// eader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *CustomersSearchAds360SearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__SearchSearchAds360Response, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Services__SearchSearchAds360Response{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.search", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersSearchAds360SearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V0Services__SearchSearchAds360Response) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleadssearchads360v0services__searchsearchads360request.PageToken = pt }(c.googleadssearchads360v0services__searchsearchads360request.PageToken)
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.googleadssearchads360v0services__searchsearchads360request.PageToken = x.NextPageToken
	}
}

type SearchAds360FieldsGetCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Returns just the requested field. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
// - resourceName: The resource name of the field to get.
func (r *SearchAds360FieldsService) Get(resourceName string) *SearchAds360FieldsGetCall {
	c := &SearchAds360FieldsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *SearchAds360FieldsGetCall) Fields(s ...googleapi.Field) *SearchAds360FieldsGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *SearchAds360FieldsGetCall) IfNoneMatch(entityTag string) *SearchAds360FieldsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *SearchAds360FieldsGetCall) Context(ctx context.Context) *SearchAds360FieldsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *SearchAds360FieldsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *SearchAds360FieldsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/{+resourceName}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.searchAds360Fields.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Resources__SearchAds360Field.ServerResponse.Header
// or (if a response was returned at all) in error.(*googleapi.Error).Header.
// Use googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *SearchAds360FieldsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Resources__SearchAds360Field, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Resources__SearchAds360Field{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type SearchAds360FieldsSearchCall struct {
	s                                                                *Service
	googleadssearchads360v0services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Search: Returns all fields that match the search query
// (/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_detail
// s). List of thrown errors: AuthenticationError () [AuthorizationError]()
// HeaderError () [InternalError]() QueryError () [QuotaError]() RequestError
// ()
func (r *SearchAds360FieldsService) Search(googleadssearchads360v0services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest) *SearchAds360FieldsSearchCall {
	c := &SearchAds360FieldsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v0services__searchsearchads360fieldsrequest = googleadssearchads360v0services__searchsearchads360fieldsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *SearchAds360FieldsSearchCall) Fields(s ...googleapi.Field) *SearchAds360FieldsSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *SearchAds360FieldsSearchCall) Context(ctx context.Context) *SearchAds360FieldsSearchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *SearchAds360FieldsSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *SearchAds360FieldsSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v0services__searchsearchads360fieldsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v0/searchAds360Fields:search")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.searchAds360Fields.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse.ServerResp
// onse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *SearchAds360FieldsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.search", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *SearchAds360FieldsSearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken = pt }(c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken)
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.googleadssearchads360v0services__searchsearchads360fieldsrequest.PageToken = x.NextPageToken
	}
}
